日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux问题排查常用命令详解

發(fā)布時間:2024/4/11 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux问题排查常用命令详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前陣子部署的nginx服務器出現(xiàn)了故障,針對故障現(xiàn)場做了個排查,后來發(fā)現(xiàn)是nginx的quic分支代碼的問題,出現(xiàn)了死循環(huán)導致CPU 近100%

記錄下在排查的思路和排查過程中使用的命令和工具

查看CPU

top命令


load average:該數(shù)據(jù)是每隔5秒鐘檢查一次活躍的進程數(shù),然后按特定算法計算出的數(shù)值。如果這個數(shù)除以邏輯CPU的數(shù)量,結(jié)果高于5的時候就表明系統(tǒng)在超負荷運轉(zhuǎn)了。

VIRT:進程使用的虛擬內(nèi)存。進程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RES

RES:駐留內(nèi)存大小。駐留內(nèi)存是任務使用的非交換物理內(nèi)存大小。進程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATA

SHR:SHR是進程使用的共享內(nèi)存。共享內(nèi)存大小,單位kb

S:這個表示進程的狀態(tài)。它有以下不同的值:

  • D - 不可中斷的睡眠態(tài)。
  • R – 運行態(tài)
  • S – 睡眠態(tài)
  • T – 被跟蹤或已停止
  • Z – 僵尸態(tài)

%CPU:自從上一次更新時到現(xiàn)在任務所使用的CPU時間百分比。

%MEM:進程使用的可用物理內(nèi)存百分比。

使用top命令后,按t,可以切換顯示不同cpu信息

查看固定PID的CPU,內(nèi)存情況

top -p {PID}


使用ps查詢指定進程名或者PID的占用情況

ps -aux|grep nginx ps -aux|grep 1425


值得注意的是ps 命令里的CPU和top 命令里的計算方式不一樣

ps command : CPU usage is currently expressed as the percentage of time spent running during the entire lifetime of a process. This is not ideal,and it does not conform to the standards that ps otherwise conforms to.
CPU usage is unlikely to add up to exactly 100%.

top command: The task’s share of the elapsed CPU time since the last screen update, expressed as a percentage of total CPU time. In a true SMP environment, if ‘Irix mode’ is Off, top will operate in ‘Solaris mode’ where a task’s cpu usage will be divided by the total number of CPUs. You toggle ‘Irix/Solaris’ modes with the ‘I’ interactive command.

簡單來說: ps是從進程開始就開始算的,是平均的占用率;而top是從上次刷新開始算的,一般幾秒鐘一刷,可以認為是即時的。 排查機器問題的話還是建議看top 命令的%CPU。

查看內(nèi)存使用情況

free -m /opt/server/

查看機器的連接數(shù)

查看tcp連接數(shù)

netstat -nat |awk '{print $6}'|grep -v 'Foreign'|grep -v 'established)'|sort|uniq -c|sort -rn


當前機器的連接數(shù)還ok,不至于導致cpu 100%

常用的三個狀態(tài)是:ESTABLISHED 表示正在通信,TIME_WAIT 表示主動關(guān)閉,CLOSE_WAIT 表示被動關(guān)閉。具體每種狀態(tài)的意思參考下圖就可以了:

分析堆棧信息

pstack

安裝 gdb 的時候會自帶安裝 pstack ,使用如下命令安裝即可

yum install gdb -y pstack {PID}

使用pstack命令打印對應的堆棧信息, 相隔一段時間多次打印,看到的堆棧信息都是一樣的,說明當前進程在該方法里"卡住了", 很大可能發(fā)生了死循環(huán)

參考資料:
Nignx服務器CLOSE_WAIT和TIME_WAIT過高分析
netstat 命令詳解
分析進程調(diào)用pstack和starce

總結(jié)

以上是生活随笔為你收集整理的linux问题排查常用命令详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。