標籤:system 問題 使用者態 處理 jvm記憶體回收 false and free stop
一:CPU
1. 使用者態CPU是指執行應用程式代碼的時間佔總CPU時間的百分比。
系統態CPU是指應用執行作業系統調用的時間佔總CPU時間的百分比。系統態CPU高意味著共用資源有競爭或者I/O裝置之間有大量的互動。
提高應用效能和擴充性的一個目標就是儘可能降低系統態CPU使用率。
2. CPU運行隊列就是那些已經準備好運行、正等待可用CPU的輕量級進程。
當運行隊列長度達到處理器的4被或者更多時,系統的相應就非常遲緩了。
解決運行隊列長有兩種辦法:
1). 增加CPU以分擔負載;
2). 分析系統中啟動並執行應用,改進CPU使用率;
1. vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 104956 868 825812 0 0 1 5 16 25 0 0 100 0 0
r:CPU運行隊列長度,值是運行隊列中輕量級進程的實際數量
us:使用者態CPU使用率
sy:系統態CPU使用率
id:CPU空閑率
2. top
top - 09:42:04 up 3 days, 3 min, 1 user, load average: 0.00, 0.01, 0.05Tasks: 108 total, 3 running, 105 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem : 1015472 total, 104568 free, 84224 used, 826680 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 727760 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 784 root 20 0 553064 16340 5748 S 0.0 1.6 0:21.48 tuned 743 root 20 0 110512 13140 676 S 0.0 1.3 0:00.13 dhclient 9678 polkitd 20 0 527456 13128 4680 S 0.0 1.3 0:00.09 polkitd 1 root 20 0 43684 6176 3804 S 0.0 0.6 0:05.08 systemd
上半部分是整個系統的統計資訊,下半部分是進程的統計資訊。
二:記憶體
1. 系統在使用頁面交換或虛擬記憶體時,訪問swap中記憶體以及JVM記憶體回收swap中記憶體時,都存在記憶體置換,效能肯定有問題;
2.
Java效能最佳化權威指南-讀書筆記(一)-作業系統效能監控工具