後台服務明顯變慢?怎麼診斷?

2021-09-29 05:39:02 字數 863 閱讀 2921

一直慢:

系統資源:記憶體 cpu io是否被別的服務占用

應用資源:

記憶體耗盡:codecache jit中的編譯的**結果無處儲存,導致一直解釋執行了

受到了攻擊,cpu被占用 如 dom

資料量\使用者量\介面呼叫次數增加

偶爾突然變慢:

gc導致,gc頻率和時間

發生了大量的異常,有異常日誌分析

網路原因,網路抖動

如果還不能確定具體問題,對應用進行 profiling 也是個辦法,但因為它會對系統產生侵入性,如果不是非常必要,大多數情況下並不建議在生產系統進行。

profiling收集資訊的三種方式:

事件方法

統計抽樣方法

植入附加指令

top結果都是啥?

gc頻率和時間怎麼看?gc頻率和時間的正常範圍是多少?

jstat -gc 結果中 mc ccsc含義

mc:方法區大小

mu:方法區使用大小

ccsc:壓縮類空間大小

ccsu:壓縮類空間使用大小

dstat這個命令也很有用?

展示net、cpu、load、dsk、memory、swap、system等內容,

注意提供了net相關狀態

有乙個好處是可以將結果輸出到csv

# dstat –output /tmp/sampleoutput.csv -cdn

結果如下圖:

怎麼檢視機器io占用情況?

iostat 或 sar

怎麼檢視機器網路狀況

dstat

後台服務小點

很多東西本來就存在,只是自己不懂,記錄在此,以便日後複習唄。今天碰到乙個問題就是專案中的靜態頁面是分開的,比如當面部落格頁面,它的頭是單獨的乙個html檔案,而下來的內容又是另外乙個,從專案本身以及在布置到伺服器上都沒有發現拼裝過程,於是好奇之,這是為啥呢,原來nginx早已具有這樣的功能,就是ss...

Linux 後台服務

方法一 fork方式 1.fork乙個子程序,父程序退出,子程序成為孤兒程序,被init程序接管 2.呼叫setsid建立新的程序會話 3.將當前工作目錄切換到根目錄 4.將標準輸入,輸出,出錯重定向到 dev null linux後台程序,fork方式 include include includ...

Mac 後台服務

mac 的後台服務通過launchctl工具實現 也可以使用linux下的crontab 但官方建議使用launchctl。使用launchctl非常簡單,根據需要編寫plist指令碼即可。plist指令碼存放路徑為 library launchdaemons或 library launchagen...