最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker生產(chǎn)環(huán)境jvm性能優(yōu)化方式

 更新時(shí)間:2023年08月28日 10:40:05   作者:lipengxs  
這篇文章主要介紹了docker生產(chǎn)環(huán)境jvm性能優(yōu)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

docker生產(chǎn)環(huán)境jvm性能優(yōu)化

1、xmx與xms設(shè)置多大合適

docker獲得的mem_usage的大小是從外部得到的java進(jìn)程的內(nèi)存大小,不僅僅是 -Xmx設(shè)置的大小,如果 -Xmx和docker分配的內(nèi)存一致的話,由于java應(yīng)用其他的地方還要占用不少的內(nèi)存,導(dǎo)致還沒有到達(dá) -Xmx的時(shí)候就沒有可以用的內(nèi)存了,所以被docker容器給干掉了,從而出現(xiàn)了oom的情況。

java程序啟動(dòng)的時(shí)候需要哪些方面的內(nèi)存呢?

  • java程序的堆內(nèi)存,最大就是 -Xmx設(shè)置的這個(gè)值
  • Garbage collection在垃圾回收的時(shí)候使用的內(nèi)存
  • JIT optimization使用的內(nèi)存
  • java程序的Off-heap所使用的內(nèi)存
  • java程序的Metaspace所使用的內(nèi)存
  • JNI Code所占用的內(nèi)存
  • jvm啟動(dòng)的時(shí)候所占用的內(nèi)存。

如何大體估算java進(jìn)程使用的內(nèi)存呢?

Max memory = [-Xmx] + [-XX:MaxPermSize] + number_of_threads * [-Xss]

猜測(cè)在設(shè)置jvm啟動(dòng)參數(shù)的時(shí)候 -Xmx的這個(gè)值一般要小于docker限制內(nèi)存數(shù),經(jīng)過(guò)生產(chǎn)環(huán)境實(shí)驗(yàn) -Xmx:docker的比例為 2/3 - 3/4,

一般生產(chǎn)環(huán)境都是用的sunjdk

所以建議xmx與xms設(shè)置一樣大

  • 避免JVM在運(yùn)行過(guò)程中向OS申請(qǐng)內(nèi)存
  • 延后啟動(dòng)后首次GC的發(fā)生時(shí)機(jī)
  • 減少啟動(dòng)初期的GC次數(shù)
  • 避免動(dòng)態(tài)調(diào)整jvm堆大小

2、xmn或者maxnewSize設(shè)置

xmn設(shè)置年輕代大小。

如果只是一些業(yè)務(wù)較簡(jiǎn)單的基礎(chǔ)服務(wù)建議xmn設(shè)置為xmx的一半。

3、當(dāng)xmx設(shè)置大于4G時(shí)

設(shè)置垃圾回收器 -XX:+UseG1GC

當(dāng)堆內(nèi)存很大時(shí)如果還是使用并發(fā)收集器,會(huì)造成gc收集比較長(zhǎng),這時(shí)可以將并行收集改成G1回收器

4、容器中最好增加-XX:ParallelGCThreads設(shè)置

該值可以設(shè)置為cpu核數(shù)

由于ParallelGCThreads的值默認(rèn)是等于cpu核數(shù),但是有的生產(chǎn)環(huán)境獲取的是容器宿主機(jī)器的cpu核數(shù),這就導(dǎo)致cpu核數(shù)太多,效率變差,gc時(shí)間會(huì)延長(zhǎng)。

jvm docker支持啟動(dòng)參數(shù)

  • XX:+UseContainerSupport:?jiǎn)⒂萌萜髦С?,JVM 將自動(dòng)檢測(cè)并使用容器特定的內(nèi)存限制。
  • -XX:InitialRAMPercentage=68:JVM 初始堆大小為主機(jī)可用內(nèi)存的百分之68。
  • -XX:MaxRAMPercentage=68:JVM 最大堆大小為主機(jī)可用內(nèi)存的百分之68。
  • -XX:+UseG1GC:開啟 G1 垃圾回收器。
  • -XX:+UnlockExperimentalVMOptions:解鎖實(shí)驗(yàn)性 VM 選項(xiàng),以便使用實(shí)驗(yàn)性功能。
  • -XX:G1NewSizePercent=60:設(shè)置新生代大小占堆大小的比例為60%。
  • -XX:ParallelGCThreads=11:設(shè)置并行 GC 線程數(shù)為11。
  • -XX:ConcGCThreads=4:設(shè)置并發(fā) GC 線程數(shù)為4。
  • -XX:MaxGCPauseMillis=160:設(shè)置最大 GC 暫停時(shí)間為160毫秒。
  • -XX:MetaspaceSize=120m:設(shè)置元空間初始大小為120MB。
  • -XX:MaxMetaspaceSize=350m:設(shè)置元空間最大大小為350MB。
  • -XX:MaxDirectMemorySize=300m:設(shè)置直接內(nèi)存最大大小為300MB。
  • -XX:+HeapDumpOnOutOfMemoryError:在內(nèi)存溢出時(shí)生成堆轉(zhuǎn)儲(chǔ)文件。
  • -Dio.netty.eventLoopThreads=6:設(shè)置 Netty EventLoop 線程數(shù)為6。
  • -Dio.netty.tryReflectionSetAccessible=true:允許 Netty 反射調(diào)用私有方法。
  • -Dlog4j2.formatMsgNoLookups=true:關(guān)閉 Log4j2 參數(shù)查找。
  • -Dspring.profiles.active=sandbox:?jiǎn)⒂?Spring Boot 的沙盒配置文件。
  • –add-exports=java.base/jdk.internal.misc=ALL-UNNAMED:導(dǎo)出指定的包以供未命名模塊使用。
  • -jar:指定 JAR 包的路徑和名稱。

綜上所述:

這些啟動(dòng)參數(shù)可以優(yōu)化 JVM 的內(nèi)存管理、垃圾回收、線程處理等方面的性能,提高應(yīng)用程序的穩(wěn)定性和響應(yīng)速度。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • win10安裝docker及遇到的坑及解決

    win10安裝docker及遇到的坑及解決

    這篇文章主要介紹了win10安裝docker及遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Docker跨主機(jī)網(wǎng)絡(luò)(manual)的實(shí)現(xiàn)

    Docker跨主機(jī)網(wǎng)絡(luò)(manual)的實(shí)現(xiàn)

    這篇文章主要介紹了Docker跨主機(jī)網(wǎng)絡(luò)(manual)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 使用Docker部署Neko自托管虛擬瀏覽器(Firefox)的流程

    使用Docker部署Neko自托管虛擬瀏覽器(Firefox)的流程

    本文介紹了基于WebRTC的自托管虛擬瀏覽器環(huán)境Neko的部署方法,包括使用Docker和Docker Compose部署、基本配置、使用方法及注意事項(xiàng)等內(nèi)容,適合團(tuán)隊(duì)協(xié)作、遠(yuǎn)程演示等場(chǎng)景,需要的朋友可以參考下
    2026-04-04
  • Docker配置本地倉(cāng)庫(kù)web訪問的實(shí)現(xiàn)

    Docker配置本地倉(cāng)庫(kù)web訪問的實(shí)現(xiàn)

    本文主要介紹了Docker配置本地倉(cāng)庫(kù)web訪問的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • docker-compose ports和expose的區(qū)別詳解

    docker-compose ports和expose的區(qū)別詳解

    這篇文章主要介紹了docker-compose ports和expose的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 詳解Docker 下開發(fā) hyperf 完整使用示例

    詳解Docker 下開發(fā) hyperf 完整使用示例

    這篇文章主要介紹了詳解Docker 下開發(fā) hyperf 完整使用示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • CentOS7環(huán)境下使用Docker搭建PHP運(yùn)行環(huán)境的過(guò)程詳解

    CentOS7環(huán)境下使用Docker搭建PHP運(yùn)行環(huán)境的過(guò)程詳解

    這篇文章主要介紹了CentOS7環(huán)境下使用Docker搭建PHP運(yùn)行環(huán)境,文中給大家提到創(chuàng)建私有網(wǎng)絡(luò)及安裝nginx的方法,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • Docker安裝及阿里云鏡像加速器的配置方法

    Docker安裝及阿里云鏡像加速器的配置方法

    這篇文章主要介紹了Docker安裝及阿里云鏡像加速器配置方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Docker + Nginx + Logrotate 日志管理與輪換實(shí)踐

    Docker + Nginx + Logrotate 日志管理與輪換實(shí)

    本文主要介紹了Docker + Nginx + Logrotate 日志管理與輪換實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-05-05
  • Docker鏡像的創(chuàng)建、存出、載入的方法

    Docker鏡像的創(chuàng)建、存出、載入的方法

    這篇文章主要介紹了Docker鏡像的創(chuàng)建、存出、載入的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12

最新評(píng)論

上栗县| 巢湖市| 虹口区| 大同市| 西平县| 洛隆县| 额济纳旗| 营口市| 休宁县| 个旧市| 太原市| 渝北区| 宁城县| 宽甸| 黄浦区| 微博| 南昌县| 宁国市| 宜黄县| 当涂县| 鹿泉市| 府谷县| 九龙县| 徐汇区| 铜川市| 南川市| 延寿县| 理塘县| 喀喇沁旗| 镇远县| 偃师市| 定日县| 沙坪坝区| 集贤县| 茶陵县| 昌吉市| 敖汉旗| 弋阳县| 高台县| 三门县| 弥勒县|