最新国产好看的视频,伊人天堂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à)值,希望對大家有所幫助,如有錯(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]

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

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

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

  • 避免JVM在運(yùn)行過程中向OS申請內(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ù)較簡單的基礎(chǔ)服務(wù)建議xmn設(shè)置為xmx的一半。

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

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

當(dāng)堆內(nèi)存很大時(shí)如果還是使用并發(fā)收集器,會造成gc收集比較長,這時(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í)間會延長。

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

  • XX:+UseContainerSupport:啟用容器支持,JVM 將自動(dòng)檢測并使用容器特定的內(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)儲文件。
  • -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:啟用 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à)值,希望對大家有所幫助,如有錯(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),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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)程演示等場景,需要的朋友可以參考下
    2026-04-04
  • Docker配置本地倉庫web訪問的實(shí)現(xiàn)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

梧州市| 郎溪县| 静安区| 梁山县| 会同县| 镇巴县| 汤原县| 灵璧县| 泽库县| 广昌县| 延津县| 宁晋县| 沂源县| 庆城县| 泰和县| 板桥市| 宝山区| 土默特左旗| 芦溪县| 宝坻区| 磐石市| 馆陶县| 余姚市| 金塔县| 门头沟区| 平远县| 博罗县| 河池市| 湄潭县| 贵南县| 马鞍山市| 卢龙县| 连城县| 揭东县| 罗田县| 米林县| 荔波县| 河北省| 庆元县| 廉江市| 滦平县|