服務(wù)器的性能指標(biāo)是服務(wù)器狀態(tài)的反應(yīng),如果服務(wù)器出現(xiàn)問題年局,往往反應(yīng)在這些指標(biāo)上逻谦。
先來看負(fù)載的定義:
In UNIX computing, the system load is a measure of the amount of computational work that a computer system performs. The load average represents the average system load over a period of time. It conventionally appears in the form of three numbers which represent the system load during the last one-, five-, and fifteen-minute periods.
load是系統(tǒng)工作量的度量颖变。
load由三部分構(gòu)成,任意一項激增都可能導(dǎo)致負(fù)載過高听想。
- CPU
- 內(nèi)存
- IO
查看負(fù)載信息的命令有:uptime, top , w
uptime
命令能夠打印系統(tǒng)總共運(yùn)行了多長時間和系統(tǒng)的平均負(fù)載腥刹。
w命令的主要功能其實是顯示目前登入系統(tǒng)的用戶信息。但是與who不同的是汉买,w命令功能更加強(qiáng)大衔峰,w命令還可以顯示:當(dāng)前時間,系統(tǒng)啟動到現(xiàn)在的時間蛙粘,登錄用戶的數(shù)目垫卤,系統(tǒng)在最近1分鐘、5分鐘和15分鐘的平均負(fù)載出牧。
當(dāng)系統(tǒng)負(fù)荷持續(xù)大于0.7穴肘,你必須開始調(diào)查了,問題出在哪里舔痕,防止情況惡化评抚。
當(dāng)系統(tǒng)負(fù)荷持續(xù)大于1.0,你必須動手尋找解決辦法伯复,把這個值降下來慨代。
當(dāng)系統(tǒng)負(fù)荷達(dá)到5.0,就表明你的系統(tǒng)有很嚴(yán)重的問題啸如,長時間沒有響應(yīng)鱼响,或者接近死機(jī)了。你不應(yīng)該讓系統(tǒng)達(dá)到這個值组底。
以上指標(biāo)都是基于單CPU的丈积,但是現(xiàn)在很多電腦都是多核的。所以债鸡,對一般的系統(tǒng)來說江滨,是根據(jù)cpu數(shù)量去判斷系統(tǒng)是否已經(jīng)過載(Over Load)的。如果我們認(rèn)為0.7算是單核機(jī)器負(fù)載的安全線的話厌均,那么四核機(jī)器的負(fù)載最好保持在3(4*0.7 = 2.8)以下唬滑。
top命令是Linux下常用的性能分析工具,能夠?qū)崟r顯示系統(tǒng)中各個進(jìn)程的資源占用狀況棺弊,類似于Windows的任務(wù)管理器晶密。
負(fù)載過高可能出現(xiàn)的原因以及解決方法:
- 內(nèi)存泄露導(dǎo)致頻繁GC:jstat, jmap
- 死鎖
- 慢sql
常見的Java Web應(yīng)用Load飆高排查思路:
- uptime
- top 查出進(jìn)程pid
- top -Hp pid 查出線程tid
- jstatck 能精確到哪個類哪一行
2019-07-12
微觀的世界最基本的方法論是什么模她?
就是統(tǒng)計稻艰。
因為微觀世界的速度和數(shù)量都是天文數(shù)字,不能依靠單一數(shù)字來做判斷侈净,而需要一個統(tǒng)計值尊勿。