中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

營(yíng)銷型網(wǎng)站建設(shè)極速建站seo推廣軟件排行榜前十名

營(yíng)銷型網(wǎng)站建設(shè)極速建站,seo推廣軟件排行榜前十名,圖書網(wǎng)站怎么做,怎樣自學(xué)做網(wǎng)站需要多少錢文章目錄1、JVM參數(shù)有哪些?1.1、 標(biāo)準(zhǔn)參數(shù)1.2、-X參數(shù)1.3、 -XX參數(shù)1.4、 其他參數(shù)1.5、 查看參數(shù)1.6、 設(shè)置參數(shù)的常見方式1.7、 常用參數(shù)含義2、JVM常用命令有哪些?2.1、jps2.2、jinfo2.3、jstat2.4、jstack2.5、jmap3、你會(huì)估算GC頻率嗎?4、 內(nèi)存溢出…

文章目錄

  • 1、JVM參數(shù)有哪些?
    • 1.1、 標(biāo)準(zhǔn)參數(shù)
    • 1.2、-X參數(shù)
    • 1.3、 -XX參數(shù)
    • 1.4、 其他參數(shù)
    • 1.5、 查看參數(shù)
    • 1.6、 設(shè)置參數(shù)的常見方式
    • 1.7、 常用參數(shù)含義
  • 2、JVM常用命令有哪些?
    • 2.1、jps
    • 2.2、jinfo
    • 2.3、jstat
    • 2.4、jstack
    • 2.5、jmap
  • 3、你會(huì)估算GC頻率嗎?
  • 4、 內(nèi)存溢出(OOM)怎么解決?
    • 4.1、大并發(fā)[秒殺]
    • 4.2、內(nèi)存泄露導(dǎo)致內(nèi)存溢出

1、JVM參數(shù)有哪些?

1.1、 標(biāo)準(zhǔn)參數(shù)

-version
-help
-server
-cp

image.png

1.2、-X參數(shù)

-Xint     解釋執(zhí)行
-Xcomp    第一次使用就編譯成本地代碼
-Xmixed   混合模式,JVM自己來(lái)決定

image.png

1.3、 -XX參數(shù)

使用得最多的參數(shù)類型,主要用于JVM調(diào)優(yōu)和Debug

a.Boolean類型
格式:-XX:[+-]<name>            +或-表示啟用或者禁用name屬性
比如:-XX:+UseConcMarkSweepGC   表示啟用CMS類型的垃圾回收器-XX:+UseG1GC              表示啟用G1類型的垃圾回收器
b.非Boolean類型
格式:-XX<name>=<value>表示name屬性的值是value
比如:-XX:MaxGCPauseMillis=500   

1.4、 其他參數(shù)

這塊也相當(dāng)于是-XX類型的參數(shù)

-Xms1000M等價(jià)于-XX:InitialHeapSize=1000M
-Xmx1000M等價(jià)于-XX:MaxHeapSize=1000M
-Xss100等價(jià)于-XX:ThreadStackSize=100

1.5、 查看參數(shù)

 java -XX:+PrintFlagsFinal -version > flags.txt

image.png
image.png

值得注意的是"=“表示默認(rèn)值,”:="表示被用戶或JVM修改后的值
一般要設(shè)置參數(shù),可以先查看一下當(dāng)前參數(shù)是什么,然后進(jìn)行修改

1.6、 設(shè)置參數(shù)的常見方式

  • 開發(fā)工具中設(shè)置比如IDEA,eclipse
  • 運(yùn)行jar包的時(shí)候:java -XX:+UseG1GC xxx.jar
  • web容器比如tomcat,可以在腳本中的進(jìn)行設(shè)置
  • 通過(guò)jinfo實(shí)時(shí)調(diào)整某個(gè)java進(jìn)程的參數(shù)(參數(shù)只有被標(biāo)記為manageable的flags可以被實(shí)時(shí)修改)

1.7、 常用參數(shù)含義

參數(shù)含義說(shuō)明
-XX:CICompilerCount=3最大并行編譯數(shù)如果設(shè)置大于1,雖然編譯速度會(huì)提高,但是同樣影響系統(tǒng)穩(wěn)定性,會(huì)增加JVM崩潰的可能
-XX:InitialHeapSize=100M初始化堆大小簡(jiǎn)寫-Xms100M
-XX:MaxHeapSize=100M最大堆大小簡(jiǎn)寫-Xms100M
-XX:NewSize=20M設(shè)置年輕代的大小
-XX:MaxNewSize=50M年輕代最大大小
-XX:OldSize=50M設(shè)置老年代大小
-XX:MetaspaceSize=50M設(shè)置方法區(qū)大小
-XX:MaxMetaspaceSize=50M方法區(qū)最大大小
-XX:+UseParallelGC使用UseParallelGC新生代,吞吐量?jī)?yōu)先
-XX:+UseParallelOldGC使用UseParallelOldGC老年代,吞吐量?jī)?yōu)先
-XX:+UseConcMarkSweepGC使用CMS老年代,停頓時(shí)間優(yōu)先
-XX:+UseG1GC使用G1GC新生代,老年代,停頓時(shí)間優(yōu)先
-XX:NewRatio新老生代的比值比如-XX:Ratio=4,則表示新生代:老年代=1:4,也就是新生代占整個(gè)堆內(nèi)存的1/5
-XX:SurvivorRatio兩個(gè)S區(qū)和Eden區(qū)的比值比如-XX:SurvivorRatio=8,也就是(S0+S1):Eden=2:8,也就是一個(gè)S占整個(gè)新生代的1/10
-XX:+HeapDumpOnOutOfMemoryError啟動(dòng)堆內(nèi)存溢出打印當(dāng)JVM堆內(nèi)存發(fā)生溢出時(shí),也就是OOM,自動(dòng)生成dump文件
-XX:HeapDumpPath=heap.hprof指定堆內(nèi)存溢出打印目錄表示在當(dāng)前目錄生成一個(gè)heap.hprof文件
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:g1-gc.log打印出GC日志可以使用不同的垃圾收集器,對(duì)比查看GC情況
-Xss128k設(shè)置每個(gè)線程的堆棧大小經(jīng)驗(yàn)值是3000-5000最佳
-XX:MaxTenuringThreshold=6提升年老代的最大臨界值默認(rèn)值為 15
-XX:InitiatingHeapOccupancyPercent啟動(dòng)并發(fā)GC周期時(shí)堆內(nèi)存使用占比G1之類的垃圾收集器用它來(lái)觸發(fā)并發(fā)GC周期,基于整個(gè)堆的使用率,而不只是某一代內(nèi)存的使用比. 值為 0 則表示”一直執(zhí)行GC循環(huán)”. 默認(rèn)值為 45.
-XX:G1HeapWastePercent允許的浪費(fèi)堆空間的占比默認(rèn)是10%,如果并發(fā)標(biāo)記可回收的空間小于10%,則不會(huì)觸發(fā)MixedGC。
-XX:MaxGCPauseMillis=200msG1最大停頓時(shí)間暫停時(shí)間不能太小,太小的話就會(huì)導(dǎo)致出現(xiàn)G1跟不上垃圾產(chǎn)生的速度。最終退化成Full GC。所以對(duì)這個(gè)參數(shù)的調(diào)優(yōu)是一個(gè)持續(xù)的過(guò)程,逐步調(diào)整到最佳狀態(tài)。
-XX:ConcGCThreads=n并發(fā)垃圾收集器使用的線程數(shù)量默認(rèn)值隨JVM運(yùn)行的平臺(tái)不同而不同
-XX:G1MixedGCLiveThresholdPercent=65混合垃圾回收周期中要包括的舊區(qū)域設(shè)置占用率閾值默認(rèn)占用率為 65%
-XX:G1MixedGCCountTarget=8設(shè)置標(biāo)記周期完成后,對(duì)存活數(shù)據(jù)上限為 G1MixedGCLIveThresholdPercent 的舊區(qū)域執(zhí)行混合垃圾回收的目標(biāo)次數(shù)默認(rèn)8次混合垃圾回收,混合回收的目標(biāo)是要控制在此目標(biāo)次數(shù)以內(nèi)
-XX:G1OldCSetRegionThresholdPercent=1描述Mixed GC時(shí),Old Region被加入到CSet中默認(rèn)情況下,G1只把10%的Old Region加入到CSet中

2、JVM常用命令有哪些?

2.1、jps

查看java進(jìn)程

image.png

2.2、jinfo

實(shí)時(shí)查看和調(diào)整JVM配置參數(shù)

# 查看某個(gè)java進(jìn)程屬性的值
jinfo -flag MaxHeapSize PID 
jinfo -flag UseG1GC PID

image.png

# 參數(shù)只有被標(biāo)記為manageable的flags可以被實(shí)時(shí)修改
jinfo -flag [+|-] PID
jinfo -flag <name>=<value> PID
# 查看曾經(jīng)賦過(guò)值的一些參數(shù)
jinfo -flags PID

image.png

2.3、jstat

查看虛擬機(jī)性能統(tǒng)計(jì)信息

# 查看類裝載信息 每1000毫秒輸出一次,共輸出10次
jstat -class PID 1000 10 

image.png

# 查看垃圾收集信息
jstat -gc PID 1000 10

image.png

2.4、jstack

查看線程堆棧信息

jstack PID

image.png

排查死鎖案例

//運(yùn)行主類
public class DeadLockDemo
{public static void main(String[] args){DeadLock d1=new DeadLock(true);DeadLock d2=new DeadLock(false);Thread t1=new Thread(d1);Thread t2=new Thread(d2);t1.start();t2.start();}
}
//定義鎖對(duì)象
class MyLock{public static Object obj1=new Object();public static Object obj2=new Object();
}
//死鎖代碼
class DeadLock implements Runnable{private boolean flag;DeadLock(boolean flag){this.flag=flag;}public void run() {if(flag) {while(true) {synchronized(MyLock.obj1) {System.out.println(Thread.currentThread().getName()+"----if獲得obj1鎖");synchronized(MyLock.obj2) {System.out.println(Thread.currentThread().getName()+"----if獲得obj2鎖");}}}}else {while(true){synchronized(MyLock.obj2) {System.out.println(Thread.currentThread().getName()+"----否則獲得obj2鎖");synchronized(MyLock.obj1) {System.out.println(Thread.currentThread().getName()+"----否則獲得obj1鎖");}}}}}
}

jstack分析
把打印信息拉到最后可以發(fā)現(xiàn)1個(gè)死鎖信息。
image.png

2.5、jmap

# 打印出堆內(nèi)存相關(guān)信息
jmap -heap PID

image.png

# 生成堆快照
jmap -dump:format=b,file=heap.hprof PID

image.png

一般在開發(fā)中,JVM參數(shù)可以加上下面兩句,這樣內(nèi)存溢出時(shí),會(huì)自動(dòng)dump出該文件

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heap.hprof

3、你會(huì)估算GC頻率嗎?

正常情況我們應(yīng)該根據(jù)我們的系統(tǒng)來(lái)進(jìn)行一個(gè)內(nèi)存的估算,這個(gè)我們可以在測(cè)試環(huán)境進(jìn)行測(cè)試,最開始可以將內(nèi)存設(shè)置的大一些,比如4G這樣,當(dāng)然這也可以根據(jù)業(yè)務(wù)系統(tǒng)估算來(lái)的。

比如從數(shù)據(jù)庫(kù)獲取一條數(shù)據(jù)占用128個(gè)字節(jié),需要獲取1000條數(shù)據(jù),那么一次讀取到內(nèi)存的大小就是((128 B/1024 Kb/1024M)* 1000 = 0.122M,那么我們程序可能需要并發(fā)讀取,比如每秒讀取100次,那么內(nèi)存占用就是0.122100 = 12.2M,如果堆內(nèi)存設(shè)置1個(gè)G,那么年輕代大小大約就是333M,那么333M*80%/12.2M =21.84s,也就是說(shuō)我們的程序幾乎每分鐘進(jìn)行兩到三次youngGC。這樣可以讓我們對(duì)系統(tǒng)有一個(gè)大致的估算。

4、 內(nèi)存溢出(OOM)怎么解決?

發(fā)生內(nèi)存溢出一般會(huì)有兩個(gè)原因:

  • 內(nèi)存不夠用:大并發(fā)情況下
  • 代碼問(wèn)題:內(nèi)存泄露導(dǎo)致內(nèi)存溢出

4.1、大并發(fā)[秒殺]

緩存、CDN、集群+負(fù)載均衡、限流等方式解決

4.2、內(nèi)存泄露導(dǎo)致內(nèi)存溢出

  • jstack查看線程情況,有沒有死鎖或者IO阻塞的情況,查找可能出現(xiàn)問(wèn)題的類名或等待時(shí)間最長(zhǎng)的進(jìn)程號(hào)。

    jstack PID
    
  • 查看堆內(nèi)存的使用,獲取到j(luò)vm.hprof文件,上傳到指定的工具分析,比如heaphero.io

    jmap -heap PID
    
http://www.risenshineclean.com/news/21547.html

相關(guān)文章:

  • 戶縣規(guī)劃建設(shè)和住房保障局網(wǎng)站沙坪壩區(qū)優(yōu)化關(guān)鍵詞軟件
  • wordpress還是hexo青島seo關(guān)鍵詞優(yōu)化公司
  • 建設(shè)一個(gè)網(wǎng)站app全過(guò)程seo權(quán)威入門教程
  • 自己做的網(wǎng)站涉黃網(wǎng)站怎么推廣
  • 成交型網(wǎng)站倡導(dǎo)公司西安百度網(wǎng)站快速排名
  • 成都網(wǎng)站建設(shè)是什么百度店面定位怎么申請(qǐng)
  • 阿里媽媽新建網(wǎng)站怎么做百度客服投訴中心
  • 嘉峪關(guān)市建設(shè)局建管科網(wǎng)站外鏈價(jià)格
  • 查看網(wǎng)站有沒有備案全國(guó)疫情防控最新數(shù)據(jù)
  • 手機(jī)上做整蠱網(wǎng)站全網(wǎng)推廣軟件
  • 農(nóng)產(chǎn)品網(wǎng)站開發(fā) 文獻(xiàn)綜述seo外包公司興田德潤(rùn)官方地址
  • 網(wǎng)站制作技巧百度競(jìng)價(jià)怎么做開戶需要多少錢
  • 找做網(wǎng)站的朋友抖音流量推廣神器軟件
  • 中山商城型網(wǎng)站建設(shè)廣州網(wǎng)站優(yōu)化方式
  • 海報(bào)設(shè)計(jì)分析網(wǎng)站seo的內(nèi)容是什么
  • wordpress c博客seo實(shí)戰(zhàn)密碼第三版pdf下載
  • 有哪些網(wǎng)站做汽車周邊服務(wù)一句簡(jiǎn)短走心文案
  • wordpress可以建官網(wǎng)嘛搜索引擎優(yōu)化排名
  • 新鄉(xiāng)網(wǎng)站建設(shè)百度推廣搜索排名
  • 企業(yè)起名網(wǎng)站怎么做搜索引擎營(yíng)銷的分類
  • 河北網(wǎng)站建設(shè)品牌大全網(wǎng)站seo 工具
  • 阿里云備案?jìng)€(gè)人可以做網(wǎng)站嗎怎么建立一個(gè)網(wǎng)站
  • 網(wǎng)站模板織夢(mèng)免費(fèi)西安百度推廣優(yōu)化公司
  • 公司網(wǎng)站建設(shè)需求書網(wǎng)站設(shè)計(jì)公司哪家專業(yè)
  • 網(wǎng)站欄目劃分怎么做制作網(wǎng)頁(yè)的流程
  • 用php和mysql做網(wǎng)站網(wǎng)絡(luò)推廣常見的方法
  • 做網(wǎng)站的技術(shù)支持網(wǎng)絡(luò)營(yíng)銷招聘崗位有哪些
  • 手機(jī)免費(fèi)建設(shè)網(wǎng)站制作推廣普通話宣傳海報(bào)
  • 電商網(wǎng)站如何提高轉(zhuǎn)化率企業(yè)品牌推廣營(yíng)銷方案
  • 合肥網(wǎng)站建設(shè)信息搜索引擎廣告投放