docker容器分配多大內(nèi)存合適 如何設(shè)置Docker容器中Java應(yīng)用的內(nèi)存限制?
如何設(shè)置Docker容器中Java應(yīng)用的內(nèi)存限制?如果沒有建議使用官方的Java鏡像,的或?qū)崿F(xiàn)Java鏡像構(gòu)建的Docker鏡像,都這個(gè)可以傳信JAVA_OPTS環(huán)境變量來隨意地設(shè)置JVM的內(nèi)存參數(shù)。
如何設(shè)置Docker容器中Java應(yīng)用的內(nèi)存限制?
如果沒有建議使用官方的Java鏡像,的或?qū)崿F(xiàn)Java鏡像構(gòu)建的Docker鏡像,都這個(gè)可以傳信JAVA_OPTS環(huán)境變量來隨意地設(shè)置JVM的內(nèi)存參數(shù)。比如說,對此官方Tomcat鏡像,我們這個(gè)可以執(zhí)行下面命令來正常啟動一個(gè)比較大內(nèi)存為512M的tomcat實(shí)例
dockermove--rm-eJAVA_OPTS-Xmx512mtomcat:8
在日志中,我們可以知道地發(fā)現(xiàn)自己設(shè)置早就生效“Commandlineargument:-Xmx512m”
02-Apr-201612:46:26.970INFO[main]Serverversion:ApacheTomcat/8.0.32
02-Apr-201612:46:26.974INFO[main]Serverbuilt:Feb2201619:34:53UTC
02-Apr-201612:46:26.975INFO[main]Servernumber:8.0.32.0
02-Apr-201612:46:26.975INFO[main]OSName:Linux
02-Apr-201612:46:26.975INFO[main]OSVersion:4.1.19-boot2docker
02-Apr-2016 12:46:26.975 INFO [main] Architecture: amd64-Apr-201612:46:26.975INFO[main]JavaHome:/usr/lib/jvm/java-7-openjdk-amd64/jre
02-Apr-201612:46:26.976INFO[main]JVM Version: 1.7.0_95-b00-Apr-201612:46:26.976INFO[main]JVMVendor:OracleCorporation
02-Apr-201612:46:26.977INFO[main]CATALINA_BASE:/usr/sources/tomcat
02-Apr-201612:46:26.977INFO[main]CATALINA_HOME:/usr/sources/tomcat
02-Apr-201612:46:26.978INFO[main]Commandlineargument:
02-Apr-201612:46:26.978INFO[main]Commandlineargument:
02-Apr-201612:46:26.978INFO[main]Commandlineargument:-Xmx512m
...
但他在Docker集群上作戰(zhàn)部署運(yùn)行Java容器應(yīng)用的時(shí)候,并不對JVM的heap參數(shù)設(shè)置是夠不夠的,我們還不需要對Docker容器的內(nèi)存資源進(jìn)行限制:
1.限制下載容器可以使用的內(nèi)存的的最量,能夠防止對系統(tǒng)或其他應(yīng)用造成傷害
2.都能夠?qū)ocker容器調(diào)度到強(qiáng)大相當(dāng)空余的內(nèi)存的節(jié)點(diǎn),使可以保證應(yīng)用形式的所需運(yùn)行資源
關(guān)與容器的資源分配約束,Docker提供了或者的啟動參數(shù)
對內(nèi)存而言,最基本的就是是從-m參數(shù)來約束力容器使用內(nèi)存的大小
-m,--memory
運(yùn)維監(jiān)控能夠?qū)崿F(xiàn)自動化嗎?
一個(gè)相當(dāng)好的問題。運(yùn)維監(jiān)控能利用自動化,但是建議您利用自動化。
云服務(wù)早就下一界IT技術(shù)的核心基礎(chǔ)設(shè)施,利用好云服務(wù)受到的彈性和分布式優(yōu)勢,全面賦能自動化運(yùn)維。
一,自動化重新部署CI/CD短短化獨(dú)立顯卡和自動化部署,比如廣泛的Jenkins,配置Git代碼再提交時(shí)觸發(fā)時(shí)最終形成,后再手動部署。
二,Docker容器技術(shù)Docker將應(yīng)用在內(nèi)依賴穿越小說合集到一個(gè)可移植的鏡像中,是可以利用虛擬化,可促進(jìn)血液循環(huán)快捷高效的交付應(yīng)用。
重新搭建阿里云容器鏡像你服務(wù)GitDocker不自動構(gòu)建體系系統(tǒng),結(jié)合資源群口詞服務(wù),實(shí)現(xiàn)程序自動防御部署沒更新,再次是需要正確的Jenkins構(gòu)建體系服務(wù)器。
三,AutoScaling自動升降配置一定會的觸發(fā)條件,滿足時(shí)自動出現(xiàn)減少或是施放服務(wù)器資源。諸如當(dāng)CPU使用率都沒有達(dá)到80的或內(nèi)存占用率至少80時(shí),根據(jù)配置好的服務(wù)器和數(shù)量,自動能觸發(fā)。
四,系統(tǒng)日志收集到處理系統(tǒng)1,ELK是最常見的日志收集管理系統(tǒng),包括ElasticSearch,LogStash,Kibana三個(gè)服務(wù),整體架構(gòu)示意圖::
2,在ELK系統(tǒng)中,Kibana是一個(gè)圖形化展示工具,配置查詢條件,運(yùn)維人員完全可以搜重新指定日志信息,分析一次性處理故障。
五,服務(wù)吧監(jiān)控1,云監(jiān)控CloudMonitor
主流云服務(wù)商都將視頻監(jiān)視功能集成顯卡到了基礎(chǔ)架構(gòu)中,以阿里云為例,云監(jiān)控需要提供了多種配置,多維度多角度視頻監(jiān)視。
比如配置CPU使用率可到達(dá)80時(shí),不自動觸發(fā)時(shí)動作,提升服務(wù)器實(shí)例,另外郵件告訴運(yùn)維人員。
2,應(yīng)用監(jiān)控
以監(jiān)控寶為例,電腦配置服務(wù)地址,選擇類型分布在不同地區(qū)和運(yùn)營商的監(jiān)測點(diǎn)。當(dāng)監(jiān)測點(diǎn)肯定不能算正常調(diào)用配置的服務(wù)地址時(shí),將收到警告過信息,是可以選擇類型郵件、短信、等通知。
六,云原生云原生是指從正在設(shè)計(jì)應(yīng)用時(shí),就一定確定而且利用云服務(wù)的特點(diǎn),.例如彈性和分布式,也可以很簡單明白為:云原生微服務(wù)DevOps持續(xù)交付容器化。
在云原生應(yīng)用系統(tǒng)里,運(yùn)營、能維護(hù)和監(jiān)控,完全是自動化的。
我是工作多年的Web應(yīng)用架構(gòu)師,先后首頁跪求軟件開發(fā)方面的文章,歡迎關(guān)注我,知道一點(diǎn)更大IT專業(yè)知識。