現象:
100併發壓測時,發現cpu的sy值,loadaverage值比較高html
備註:
load average(負載):
一段時間內,cpu正在處理 + 等待cpu處理 的進程數之和
能夠使用top命令查看
1分鐘、5分鐘、10分鐘
通常關注5分鐘、10分鐘
更多請參考:http://www.javashuo.com/article/p-swqlgelu-ba.html架構
分析:
sy高,通常是系統內部調用致使,磁盤讀寫,日誌讀寫等形成的併發
根據猜測去驗證問題----->框架
通常關注的就是cpu、內存、IOtcp
驗證IO等:ide
發現 IO基本沒問題性能
-------------------------------->測試
再驗證內存:3d
注意:上圖中的數據只是爲了演示
這裏,假設內存佔用也正常日誌
-------------------------------------->
使用strace命令跟蹤進程,查看什麼操做致使的sy比較高
須要先安裝 yum install strace
參考這裏使用strace跟蹤系統調用
https://www.cnblogs.com/kongzhongqijing/articles/4913192.html
---------------------------------------->
能夠查看一下文件句柄數的大小,ulimit -n
儘可能調大一些,並讓開發儘可能減小代碼中打開文件的數量
--------------------------------------->
使用netstat命令查看tcp的鏈接狀況,看是否有大量的time-wait
修改/etc/sysctl.conf
-------------------------------------->
從架構上看看哪個點尚未想到
--------------------------------------->
懷疑代碼問題
--------------------------------------->
框架自己的問題?