您好,登錄后才能下訂單哦!
本篇內容介紹了“生產服務器變慢了怎么辦”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
top
看服務器整體使用情況,一般都是 top 命令搞定
img
我知道當你看到這張圖的時候,肯定有點兒懵,特別是一個個的數字,這都是個啥?
阿粉帶你一行一行的看
第 1 行:系統時間、運行時間、登錄終端數、系統負載(三個數值分別為1分鐘、5分鐘、15分鐘內的平均值,數值越小意味著負載越低)
第 2 行:進程總數、運行中的進程數、睡眠中的進程數、停止的進程數、僵死的進程數。一般情況下,只要沒有僵死的進程,就沒啥大問題。
第 3 行:用戶占用資源百分比、系統內核占用資源百分比、改變過優先級的進程資源百分比、空閑的資源百分比等。
第 4 行:物理內存總量、內存空閑量、內存使用量、作為內核緩存的內存量
第 5 行:虛擬內存總量、虛擬內存空閑量、虛擬內存使用量、已被提前加載的內存量
第 6 行里面主要看 PID 和 COMMAND 這兩個參數,其中 PID 就是進程 ID , COMMAND 就是執行的命令,能夠看到比較靠前的兩個進程都是 java 進程
在當前這個界面,按下數字鍵盤 1 能夠看到各個 CPU 的詳細利用率
vmstat
想要了解 CPU 使用情況的話,常用的命令就是 vmstat 。
一般 vmstat 工具的使用是通過兩個數字參數來完成的,第一個參數是采樣的時間間隔,單位是秒,第二個參數是采樣的次數,阿粉這次的命令是:vmstat -n 3 2 意思就是隔 3 秒取樣一次,一共取樣 2 次
其中主要關注 procs 和 cpu 這兩個參數
procs :
r :運行和等待 CPU 時間片的進程數,一般來說整個系統的運行隊列不要超過總核數的 2 倍,要不然系統壓力太大了
b : 等待資源的進程數,比如正在等待磁盤 IO ,網絡 IO 這種
cpu :
us :用戶進程消耗 CPU 時間百分比, us 值高的話,說明用戶進程消耗 CPU 時間比較長,如果長期大于 50% 的話,那就說明程序還有需要優化的地方
sy :內核進程消耗的 CPU 時間百分比
us + sy 參考值為 80% ,如果大于 80% 的話,說明可能存在 CPU 不足
free
查看內存情況用的就是 free , 它主要有三個命令:free free -g free -m ,阿粉是推薦 free -m 為啥呢,咱們瞅瞅它們各自的運行結果就知道了
img
其中:free 命令運行結果顯示的非常不友好,看到 3880324 可以快速告訴我它是多大嗎?free -g 這個命令四舍五入了,明明給的內存是 4G ,結果使用 free -g 一查看,竟然成了 3G ?excuse me ?如果線上環境出問題了,你說因為內存給的不夠,運維說,這鍋我可不背
相對來說, free -m 是比較容易看,而且結果也是比較精確的
如果應用程序可用內存/系統物理內存大于 70% 的話,說明內存是充足的,沒啥問題,但是如果小于 20% 的話,就要考慮增加內存了
df
如果排查磁盤問題的話,首先要看的就是磁盤空間夠不夠,還記得阿粉在上家公司的時候,用的還是 svn 出現了一個很神奇的問題,就是哪里都不報錯,就是提交不上代碼,排查到最后是磁盤空間不夠...
所以別問阿粉為啥排查磁盤問題時,第一就是看磁盤空間夠不夠!!!
查看磁盤空間就是 df 或者 df -h 這兩個命令了
iostat
說到磁盤 IO 相信你一定能夠想到,在對數據庫進行操作時,第一要考慮到的就是磁盤 IO 操作,因為相對來說,如果在某個時間段給磁盤進行大量的寫入操作會造成程序等待時間長,導致客戶端那邊好久都沒啥反應,用戶體驗就降低了嗎
檢查磁盤 IO 情況的命令就是 iostat ,如果你用的時候發現提示:-bash: iostat: command not found ,那是因為沒有安裝 sysstat ,安裝一下就可以了:yum install -y sysstat
接下來運行命令:iostat -xdk 3 2 ,和 vmstat 命令很像有沒有~
這么多指標咱們不需要都關注,只要看其中這幾個就可以了:
rkB/s :每秒讀取數據量 kB ;
wkB/s :每秒寫入數據量 kB ;
svctm :I/O 請求的平均服務時間,單位毫秒;
util :一秒中有百分之幾的時間用于 I/O 操作,如果接近 100% 說明磁盤帶寬跑滿了,這個時候就要優化程序或者增加磁盤了
sar
網絡 IO 的話,可以通過 sar -n DEV 3 2 這條命令來看,和上面的差不多,意思就是每隔 3 秒取樣一次,一共取樣 2 次。
其中:
IFACE :LAN 接口
rxpck/s :每秒鐘接收的數據包
txpck/s :每秒鐘發送的數據包
rxKB/s :每秒接收的數據量,單位 KByte
txKB/s :每秒發出的數據量,單位 KByte
rxcmp/s :每秒鐘接收的壓縮數據包
txcmp/s :每秒鐘發送的壓縮數據包
rxmcst/s:每秒鐘接收的多播數據包
這種方式特別簡單直觀,對新手來說比較容易看到
“生產服務器變慢了怎么辦”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。