# Linux å½ä»¤é¢è¯é¢
# Linuxç常ç¨å½ä»¤äºè§£è¿åªäºï¼
- æä»¶ç¸å ³(mv mkdir cd ls)
- è¿ç¨ç¸å ³( ps top netstate )
- æéç¸å ³(chmod chown useradd groupadd)
- ç½ç»ç¸å ³(netstat ip addr)
- æµè¯ç¸å ³(æµè¯ç½ç»è¿éæ§:ping æµè¯ç«¯å£è¿éæ§:telnet)
# pså½ä»¤é齿åªäºé项ï¼pså±ç¤ºåªäºä¸è¥¿ï¼

pså½ä»¤å±ç¤ºå 容ï¼
- PIDï¼è¿ç¨IDã
- PPIDï¼ç¶è¿ç¨IDã
- USERï¼è¿ç¨æå±ç¨æ·ã
- %CPUï¼CPUå ç¨çã
- %MEMï¼å åå ç¨çã
- VSZï¼èæå å大å°ã
- RSSï¼ç©çå å大å°ã
- TTYï¼ç»ç«¯è®¾å¤ã
- STATï¼è¿ç¨ç¶æã
- STARTï¼è¿ç¨å¯å¨æ¶é´ã
- TIMEï¼è¿ç¨ç´¯è®¡CPUå ç¨æ¶é´ã
- COMMANDï¼è¿ç¨å½ä»¤æå¯æ§è¡æä»¶ã
pså½ä»¤é项ï¼
- -aï¼æ¾ç¤ºææè¿ç¨ï¼å æ¬å ¶ä»ç¨æ·çè¿ç¨ã
- -uï¼æ¾ç¤ºç¨æ·ç¸å ³çè¿ç¨ä¿¡æ¯ã
- -xï¼æ¾ç¤ºæ²¡ææ§å¶ç»ç«¯çè¿ç¨ã
- -eï¼æ¾ç¤ºææè¿ç¨ï¼çåäº-aé项ã
- -fï¼æ¾ç¤ºè¯¦ç»çè¿ç¨ä¿¡æ¯ï¼å æ¬è¿ç¨çç¶è¿ç¨ãè¿è¡ç¶æçã
- -lï¼æ¾ç¤ºé¿æ ¼å¼çè¿ç¨ä¿¡æ¯ï¼å æ¬è¿ç¨çPIDãPPIDãCPUå ç¨ççã
- -rï¼æ¾ç¤ºæ£å¨è¿è¡çè¿ç¨ã
- -oï¼èªå®ä¹è¾åºæ ¼å¼ã
# topå½ä»¤ä¼å±ç¤ºä»ä¹ä¸è¥¿ï¼é颿¯ä¸é¡¹é½æ¯åç°ä»ä¹æ ·çæ°æ®ï¼

主è¦ä¼å±ç¤ºï¼
- Load averageï¼å¹³åè´è½½ï¼ï¼æ¾ç¤ºç³»ç»å¨æè¿1åéã5åéå15åéå çå¹³åè´è½½æ åµã
- Tasksï¼ä»»å¡ï¼ï¼æ¾ç¤ºå½åè¿è¡ãç¡ç ã忢ååµå°¸ç¶æçè¿ç¨æ°éã
- CPU usageï¼CPUä½¿ç¨æ åµï¼ï¼æ¾ç¤ºCPUçæ»ä½ä½¿ç¨çä»¥åæ¯ä¸ªCPUæ ¸å¿ç使ç¨çã
- Memory usageï¼å åä½¿ç¨æ åµï¼ï¼æ¾ç¤ºç©çå åçæ»éã已使ç¨éã空é²éãç¼å²åºåç¼ååºç使ç¨éã
- Swap usageï¼äº¤æ¢ç©ºé´ä½¿ç¨æ åµï¼ï¼æ¾ç¤ºäº¤æ¢ç©ºé´çæ»éã已使ç¨éåå©ä½éã
- è¿ç¨åè¡¨ï¼æ¾ç¤ºå½åè¿è¡çè¿ç¨å表ï¼å æ¬è¿ç¨çPIDãç¨æ·ãCPUå ç¨çãå åå ç¨çãè¿ç¨ç¶æãå¯å¨æ¶é´åè¿ç¨å½ä»¤ã
# å·²ç¥ä¸ä¸ªè¿ç¨åï¼å¦ä½ææè¿ä¸ªè¿ç¨ï¼
å¨Linux æä½ç³»ç»ï¼å¯ä»¥ä½¿ç¨killå½ä»¤æ¥ææ»è¿ç¨ã
é¦å ï¼ä½¿ç¨pså½ä»¤æ¥æ¾è¿ç¨çPIDï¼è¿ç¨IDï¼ï¼ç¶å使ç¨killå½ä»¤å ä¸PIDæ¥ç»æ¢è¿ç¨ãä¾å¦ï¼
ps -ef | grep <è¿ç¨å> // æ¥æ¾è¿ç¨çPID
kill <PID> // ç»æ¢è¿ç¨
# linux å¦ä½æ¥çè¿ç¨ç¶æï¼
å¯ä»¥éè¿ ps å½ä»¤æè top å½ä»¤æ¥æ¥çè¿ç¨çç¶æã
æ¯å¦ææ³ç nginx è¿ç¨çç¶æï¼å¯ä»¥å¨ linux è¾å ¥è¿æ¡å½ä»¤ï¼

top å½ä»¤é¤äºè½çè¿ç¨çç¶æï¼è¿è½çå°ç³»ç»çä¿¡æ¯ï¼æ¯å¦ç³»ç»è´è½½ãå åãcpu 使ç¨ççç

# linux å¦ä½æ¥ç线ç¨ç¶æï¼
å¨ ps å top å½ä»¤å ä¸ä¸åæ°ï¼å°±è½çå°çº¿ç¨ç¶æäºï¼
top -H
ps -eT | grep <è¿ç¨åæçº¿ç¨å>

# å¦ä½æ¥çç½ç»è¿æ¥æ åµï¼
å¯ä»¥éè¿ netstat å½ä»¤æ¥æ¥çç½ç»è¿æ¥çæ åµï¼æ¯å¦ä¸é¢ï¼æéè¿ å½ä»¤ï¼
netstat -napt

æ¾ç¤ºäºæå¡å¨ä¸ç tcp è¿æ¥ç¶æï¼å¯ä»¥è§å¯å°æ¯ä¸ä¸ª tcp è¿æ¥çç¶æï¼ä»¥ååå ç»ä¿¡æ¯ï¼æº ip å°åãç®æ ip å°åï¼æºç«¯å£ãæº ipï¼
# æä¹æ¥çåªä¸ªç«¯å£è¢«åªä¸ªè¿ç¨å ç¨ï¼
å¯ä»¥éè¿ lsof æè netstate å½ä»¤æ¥çï¼æ¯å¦æ¥ç 80 端å£ã
lsof ï¼
[root@xiaolin ~]# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 929 root 6u IPv4 15249 0t0 TCP *:http (LISTEN)
nginx 929 root 7u IPv6 15250 0t0 TCP *:http (LISTEN)
nginx 934 nginx 6u IPv4 15249 0t0 TCP *:http (LISTEN)
nginx 934 nginx 7u IPv6 15250 0t0 TCP *:http (LISTEN)
AliYunDun 16507 root 10u IPv4 40212783 0t0 TCP xiaolin:41830->100.100.30.26:http (ESTABLISHED)
netstateï¼
[root@xiaolin ~]# netstat -napt | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 929/nginx: master p
# 端å£éä¸éç¨ä»ä¹å½ä»¤ï¼
第ä¸ç§æ¹å¼ï¼telnetï¼telnetå½ä»¤ç¨äºå»ºç«ä¸è¿ç¨ä¸»æºçTelnetè¿æ¥ï¼å¹¶å¯ä»¥ä½¿ç¨telnetå½ä»¤æµè¯ç¹å®ç«¯å£çå¯è®¿é®æ§ã
- 示ä¾ï¼
telnet IPå°å 端å£å·ç¨äºæµè¯æå®IPå°åä¸çæå®ç«¯å£æ¯å¦å¯è®¿é®ã妿è½å¤å»ºç«è¿æ¥ï¼å表示端å£éç ï¼å¦æè¿æ¥å¤±è´¥æè¶ æ¶ï¼å表示端å£ä¸å¯è®¿é®ã
第äºç§æ¹å¼ï¼ncï¼ncå½ä»¤ï¼ä¹ç§°ä¸ºnetcatï¼æ¯ä¸ä¸ªç½ç»å·¥å ·ï¼å¯ä»¥ç¨äºå建åç§ç±»åçç½ç»è¿æ¥ï¼å æ¬æµè¯ç«¯å£çå¯è®¿é®æ§ã
- 示ä¾ï¼
nc -zv IPå°å 端å£å·ç¨äºæµè¯æå®IPå°åä¸çæå®ç«¯å£æ¯å¦å¯è®¿é®ã妿è½å¤æåè¿æ¥ï¼å表示端å£éç ï¼å¦æè¿æ¥å¤±è´¥ææç»ï¼å表示端å£ä¸å¯è®¿é®ã
# top å½ä»¤æ¥çæ¯å¤å°ä¸ª CPU æ ¸å¿ï¼
æ§è¡ top å½ä»¤ä¹åï¼ææ°å 1ï¼å°±è½æ¾ç¤º CPU æå¤å°ä¸ªæ ¸å¿äºã

# ä¿®æ¹æä»¶æéç¨ä»ä¹å½ä»¤ï¼
ç¨ chmod å½ä»¤ï¼å¯ä»¥ä¿®æ¹æä»¶æç®å½çæéã
以䏿¯å 个使ç¨chmodå½ä»¤ä¿®æ¹æä»¶æéçä¾åï¼
- å°æä»¶ï¼ä¾å¦file.txtï¼è®¾ç½®ä¸ºåªè¯»æéï¼
chmod 400 file.txt
- å°æä»¶è®¾ç½®ä¸ºææè å¯è¯»åæéï¼å ¶ä»ç¨æ·åªè½è¯»åæéï¼
chmod 644 file.txt
- å°æä»¶è®¾ç½®ä¸ºææè å¯è¯»åæ§è¡æéï¼æå±ç»ç¨æ·å¯è¯»æ§è¡æéï¼å ¶ä»ç¨æ·åªè½è¯»åæéï¼
chmod 755 file.txt
- å°ç®å½è®¾ç½®ä¸ºææè å¯è¯»åæ§è¡æéï¼æå±ç»ç¨æ·å¯è¯»æ§è¡æéï¼å ¶ä»ç¨æ·åªè½è¯»åæéï¼
chmod 755 directory/
å¨è¿äºä¾åä¸ï¼chmodå½ä»¤åé¢çä¸ä¸ªæ°å代表äºä¸åçæéç»ï¼
- 第ä¸ä½è¡¨ç¤ºææè çæéã
- 第äºä½è¡¨ç¤ºæå±ç»çæéã
- 第ä¸ä½è¡¨ç¤ºå ¶ä»ç¨æ·çæéã
æ¯ä¸ªæ°åå¯ä»¥ä½¿ç¨ 0-7 ä¹é´çæ°å¼æ¥è¡¨ç¤ºæéï¼
- 0 表示没ææéã
- 1 表示æ§è¡æéã
- 2 表示åæéã
- 4 表示读æéã
å¯ä»¥æ ¹æ®éè¦èªç±ç»åè¿äºæ°åæ¥è®¾ç½®æä»¶æç®å½çæéã
# top å½ä»¤å free å½ä»¤é½å¯ä»¥æ¥çå åï¼æä»ä¹åºå«ï¼
free å½ä»¤ä¸»è¦æ¯æ¥çç³»ç»çå åä½¿ç¨æ åµ

ç©çå åï¼
- totalï¼æ»ç©çå å大å°
- usedï¼å·²ä½¿ç¨çå å
- freeï¼æªä½¿ç¨çå å
- sharedï¼å ±äº«å å大å°
- buff/cacheï¼ç¼å²åç¼åå å大å°
- availableï¼å½åå¯ç¨çå åï¼èèå°äºé¨åç¼åå¯ä»¥è¢«å¿«ééæ¾çæ åµ
交æ¢å åï¼
- totalï¼æ»äº¤æ¢å å大å°
- usedï¼å·²ä½¿ç¨ç交æ¢å å
- freeï¼æªä½¿ç¨ç交æ¢å å
top å½ä»¤ï¼é¤äºä¼æ¾ç¤ºç³»ç»å åæ åµï¼è¿ä¼æ¾ç¤ºç³»ç»ä»»å¡æ åµãCPUä½¿ç¨æ åµãåè¿ç¨ç¶æçä¿¡æ¯ã

# ç¨shellå½ä»¤æ¿æ¢ä¸ä¸ªæä»¶ä¸çå符串
å¯ä»¥ä½¿ç¨sedå½ä»¤ã以䏿¯ä¸ä¸ªç¤ºä¾ï¼
sed -i 's/æ§å符串/æ°å符串/g' æä»¶å
å¨ä¸é¢çå½ä»¤ä¸ï¼-iéé¡¹è¡¨ç¤ºç´æ¥å¨åå§æä»¶ä¸è¿è¡ä¿®æ¹ï¼è䏿¯è¾åºå°æ åè¾åºãs/æ§å符串/æ°å符串/gæ¯æ¿æ¢æä½ç模å¼ï¼å ¶ä¸æ§å符串æ¯è¦æ¿æ¢çåç¬¦ä¸²ï¼æ°åç¬¦ä¸²æ¯æ¿æ¢åçæ°å符串ãgè¡¨ç¤ºå ¨å±æ¿æ¢ï¼å³ä¸è¡ä¸åºç°å¤æ¬¡çæ§å符串é½ä¼è¢«æ¿æ¢ã
请注æï¼è¿å°ç´æ¥ä¿®æ¹åå§æä»¶ï¼å¦æéè¦å¤ä»½åå§æä»¶ï¼å¯ä»¥å¨-ié项å颿å®ä¸ä¸ªå¤ä»½æä»¶çæ©å±åï¼ä¾å¦-i.bakï¼è¿å°å¨æ¿æ¢åå¤ä»½åå§æä»¶ã
ä¾å¦ï¼å设è¦å°æä»¶example.txtä¸çå符串Helloæ¿æ¢ä¸ºHiï¼å¯ä»¥è¿è¡ä»¥ä¸å½ä»¤ï¼
sed -i 's/Hello/Hi/g' example.txt
# sedåawkæä»ä¹åºå«ï¼
齿¯ç¨äºææ¬å¤çå½ä»¤çå·¥å ·ï¼åºå«å¨äºï¼
- sedï¼ä¸»è¦ç¨äºå¯¹ææ¬è¿è¡æ¿æ¢ãå é¤ãæå ¥çæä½ãå®éå对æ´è¡ææ¬è¿è¡å¤çï¼å¯ä»¥éè¿æ£å表达å¼å¹é ææ¬è¿è¡æä½ã
- awkï¼å¯ä»¥å®ç°æ´å¤æçææ¬å¤çé»è¾ï¼å æ¬å¯¹å段çæä½ãæ¡ä»¶å¤æã循ç¯çãå®éåå¤çç»æåçææ¬æ°æ®ï¼å¯ä»¥æåå¯¹æ°æ®è¿è¡å¤çã
sedéåç®åçææ¬æ¿æ¢åç¼è¾æä½ï¼èawkéåå¤çç»æåçææ¬æ°æ®å¹¶å®ç°æ´å¤æçå¤çé»è¾
# æ¥æ¾æ¥å¿ä¸æä¸ªå符çé¿åº¦ï¼
è¦å¨ Linux 䏿¥æ¾æ¥å¿æä»¶ä¸æä¸ªå符çé¿åº¦ï¼ä½ å¯ä»¥ä½¿ç¨ä¸äºå·¥å ·åå½ä»¤æ¥å®ç°ãå ¶ä¸ï¼grep æ¯ä¸ä¸ªå¼ºå¤§çå½ä»¤è¡å·¥å ·ï¼å¯ä»¥ç¨äºå¨æä»¶ä¸æ¥æ¾å¹é æå®æ¨¡å¼çè¡ãä½ ä¹å¯ä»¥ç»åä¸äºå ¶ä»å½ä»¤æ¥å®æè¿ä¸ªä»»å¡ï¼å¦ awk æè sedã
以䏿¯ä¸ä¸ªç¤ºä¾å½ä»¤ï¼ç¨äºæ¥æ¾æ¥å¿æä»¶ä¸æä¸ªå符çé¿åº¦ï¼
grep "search_string" log_file | awk '{ print length }'
å¨è¿ä¸ªå½ä»¤ä¸ï¼
- grep "search_string" log_file 伿¾å°æ¥å¿æä»¶ä¸å å« "search_string" çææè¡ã
- awk '{ print length }' ä¼è¾åºæ¯ä¸è¡çé¿åº¦ï¼å³æç´¢å°ç "search_string" çé¿åº¦ã
å¦æä½ æ³æ¥æ¾æ¥å¿æä»¶ä¸å个å符çé¿åº¦ï¼ä½ å¯ä»¥ç´æ¥ä½¿ç¨ grep å½ä»¤é å wc å½ä»¤æ¥å®ç°ï¼
grep "c" log_file | wc -m
è¿ä¸ªå½ä»¤ä¼è®¡ç®æç´¢å°çå符 "c" 卿¥å¿æä»¶ä¸åºç°ç次æ°ã
# linux䏿ä¸ä¸ªæ¥å¿æä»¶ï¼æ¥å¿æä»¶ä¸è®°å½äºè®¿é®è¯·æ±çä¿¡æ¯ï¼ç¬¬ä¸åæ¯è®¿é®çæ¥æï¼ç¬¬äºåæ¯è¯·æ±çipï¼ç¬¬ä¸åæ¯è¯·æ±çèæ¶ï¼å䏿¡shellå½ä»¤æ¥æ¥å°è¯·æ±èæ¶æé«ç10æ¡è®°å½
è¦æ¥æ¾è¯·æ±èæ¶æé«ç10æ¡è®°å½ï¼å¯ä»¥ä½¿ç¨ä»¥ä¸Shellå½ä»¤ï¼
sort -k3 -nr æ¥å¿æä»¶ | head -n 10
å¨ä¸é¢çå½ä»¤ä¸ï¼sort -k3 -nrç¨äºæç¬¬ä¸åï¼è¯·æ±èæ¶ï¼è¿è¡ååºæåºã-k3表示æç¬¬ä¸åæåºï¼-nè¡¨ç¤ºææ°åæåºï¼-r表示ååºæåºãç¶åï¼ä½¿ç¨head -n 10æ¥è·åæåºåçå10è¡ï¼å³èæ¶æé«ç10æ¡è®°å½ã
å°å½ä»¤ä¸çâæ¥å¿æä»¶âæ¿æ¢ä¸ºå®é çæ¥å¿æä»¶è·¯å¾ï¼å³å¯æ¥æ¾å°è¯·æ±èæ¶æé«ç10æ¡è®°å½ã
# åå¦cpuè·å°100%ï¼ä½ çè§£å³æè·¯æ¯ä»ä¹ï¼
æè·¯å¦ä¸ï¼
- å éè¿ top å½ä»¤ï¼å®ä½å°å ç¨ cpu é«çè¿ç¨
- ç¶åéè¿ ps -T -p<> <è¿ç¨ID> å½ä»¤æ¾å°è¿ç¨ä¸å ç¨æ¯è¾é«ç线ç¨
- ç¶åéè¿ jstack å½ä»¤å»æ¥ç该线ç¨çå æ ä¿¡æ¯
- æ ¹æ®è¾åºçå æ ä¿¡æ¯ï¼å»é¡¹ç®ä¸å®ä½ä»£ç ï¼çæ¯å¦åçäºæ»å¾ªç¯è导è´cpuè·å°100%
# Linux æå¡å¨å½ä¸å¦ä½æ¥çè´è½½æ åµï¼éè¿ä»ä¹ææ è¿è¡æ¥çï¼
é常æä»¬åç°ç³»ç»åæ ¢æ¶ï¼æä»¬é½ä¼æ§è¡topæè uptimeå½ä»¤ï¼æ¥æ¥çå½åç³»ç»çè´è½½æ åµï¼æ¯å¦åä¸é¢ï¼ææ§è¡äºuptimeï¼ç³»ç»è¿åçäºç»æï¼æåä¸ä¸ªå°±æ¯ç³»ç»å¹³åè´è½½çæ åµã

Load Averageçä¸ä¸ªæ°åï¼ä¾æ¬¡åæ¯è¿å»1åéã5åéã15åéçå¹³åè´è½½ãå¯ä»¥éè¿è§å¯è¿ä¸ä¸ªæ°åç大å°ï¼å¯ä»¥ç®åå¤æç³»ç»çè´è½½æ¯ä¸éçè¶å¿è¿æ¯ä¸åçè¶å¿ãè´è½½å¼ä¸è¬ä¸è¶ è¿cpuæ ¸æ°ç1-1.5åï¼å¦æè¶ è¿1.5åï¼é£å°±è¦éè§ï¼æ¤æ¶ä¼ä¸¥éå½±åç³»ç»ã
- 妿 load average: 1.00, 5.00, 10.00 ä¸ä¸ªæ°å便¬¡å¢å¤§ï¼å说æå¨è¿å»ç 1 åéç³»ç»çè´è½½æ¯è¿å» 15 åéç³»ç»çè´è½½å°ï¼è¡¨æç³»ç»çè´è½½æ¯ä¸éçè¶å¿ã
- 妿 load average: 10.00, 5.00, 1.00 ä¸ä¸ªæ°å便¬¡éä½ï¼å说æå¨è¿å»ç 1 åéç³»ç»çè´è½½æ¯è¿å» 15 åéç³»ç»çè´è½½å¤§ï¼è¡¨æç³»ç»çè´è½½æ¯ä¸åçè¶å¿ã
- 妿 load average: 0.07, 0.04, 0.0 ä¸ä¸ªæ°ååºæ¬ç¸åï¼æè ç¸å·®ä¸å¤§ï¼ 表æç³»ç»çè´è½½æ¯å¹³ç¨³çã
å¹³åè´è½½æ¯æå使¶é´å ï¼å¤äºå¯è¿è¡ç¶æåä¸å¯ä¸æç¶æçè¿ç¨æ°ãæä»¥ï¼å®ä¸ä» å æ¬äºæ£å¨ä½¿ç¨ CPU çè¿ç¨ï¼è¿å æ¬çå¾ CPU åçå¾ I/O çè¿ç¨ã
è CPU 使ç¨çï¼æ¯å使¶é´å CPU ç¹å¿æ åµçç»è®¡ï¼è·å¹³åè´è½½å¹¶ä¸ä¸å®å®å ¨å¯¹åºãæ¯å¦ï¼
- CPU å¯éåè¿ç¨ï¼ä½¿ç¨å¤§é CPU ä¼å¯¼è´å¹³åè´è½½åé«ï¼æ¤æ¶è¿ä¸¤è æ¯ä¸è´çï¼
- I/O å¯éåè¿ç¨ï¼çå¾ I/O ä¹ä¼å¯¼è´å¹³åè´è½½åé«ï¼ä½ CPU 使ç¨çä¸ä¸å®å¾é«ï¼
- 大éçå¾ CPU çè¿ç¨è°åº¦ä¹ä¼å¯¼è´å¹³åè´è½½åé«ï¼æ¤æ¶ç CPU 使ç¨çä¹ä¼æ¯è¾é«ã
æä»¬ç°å¨å¾æ¸ æ¥çç¥é导è´å¹³åè´è½½é«çæ åµï¼ä¸åªæ¯ç CPU ç使ç¨çï¼ä¹è¦è§å¯ç³»ç» I/O çå¾ æ¶é´é«ä¸é«ã
å½åç°å¹³åè´è½½å髿¶ï¼å¯ä»¥ä½¿ç¨ mpstat å½ä»¤æ¥ç CPU çæ§è½ã
# -P ALL è¡¨ç¤ºçæ§ææCPUï¼å颿°å1表示é´é1ç§åè¾åºä¸ç»æ°æ®
$ mpstat -P ALL 1
Linux 2.6.32-431.el6.x86_64 (lzc) 11/05/2019 _x86_64_ (2 CPU)
07:51:45 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
07:51:50 PM all 42.90 0.00 49.39 0.41 0.00 4.56 0.00 0.00 2.74
07:51:50 PM 0 44.38 0.00 48.67 0.41 0.00 2.86 0.00 0.00 3.68
07:51:50 PM 1 41.57 0.00 49.80 0.40 0.00 6.43 0.00 0.00 1.81
ä»ä¸é¢åç°
- CPU çç¨æ·å±ï¼%usrï¼ä½¿ç¨çé«è¾¾45%å·¦å³ï¼
- CPU çç³»ç»å±ï¼%sysï¼ä½¿ç¨çé«è¾¾50%å·¦å³ï¼
- CPU ç I/0 - çå¾ ï¼%iowaitï¼å ç¨ç为0.41%ï¼
- CPU ç空é²çï¼%idleï¼åªæ2~3%ã
å¯ä»¥æ¨æåºæ¯ç±äº CPU 使ç¨ç导è´å¹³åè´è½½åé«çæ åµã
åè®¾åªæ CPU çI/0 çå¾ ï¼%iowaitï¼å ç¨çé«ï¼CPU ç¨æ·å±åç³»ç»å±ä½¿ç¨çå¾è½»æ¾ï¼é£ä¹å¯¼è´å¹³åè´è½½åé«çåå å°±æ¯ iowait çåé«ã
å¤æäºæ¯å 为 CPU 使ç¨çåé«è¿æ¯ iowait åé«å¯¼è´å¹³åè´è½½åé«åï¼æä»¬è¿éè¦å®ä½æ¯åªä¸ªè¿ç¨å¯¼è´çãå¯ä»¥ç¨ pidstat æ¥æ¥è¯¢ï¼
# é´é1ç§åè¾åºä¸ç»æ°æ®ï¼-u表示CPUææ
$ pidstat -u 1
08:07:55 PM PID %usr %system %guest %CPU CPU Command
08:07:56 PM 4 0.00 1.00 0.00 1.00 0 ksoftirqd/0
08:07:56 PM 9 0.00 1.00 0.00 1.00 1 ksoftirqd/1
08:07:56 PM 11 0.00 16.00 0.00 16.00 0 events/0
08:07:56 PM 12 0.00 20.00 0.00 20.00 1 events/1
08:07:56 PM 616 7.00 6.00 0.00 13.00 1 pppoe
08:07:56 PM 2745 6.00 6.00 0.00 12.00 1 pppoe
å¯ä»¥åç°æ¯ events/0 å events/1 å æ ¸è¿ç¨ CPU 使ç¨çé常é«ï¼æä»¥å¯è½è¿ä¸¤ä¸ªè¿ç¨å¯¼è´å¹³åè´è½½åé«ã
# æä¹å¤ææå¡å¨å 忝å¦å¤ç¨ï¼å¦ä½æ¥çæå¡å¨æ§è½ç¶é¢æ¯å¦æ¯å åï¼
ä½¿ç¨ free å½ä»¤æ¥çå åä½¿ç¨æ åµ
ä½¿ç¨ free -m å½ä»¤å¯ä»¥æ¥çå åçæ»ä½ä½¿ç¨æ åµï¼è¾åºç»æä¼å¤§è´å¦ä¸ï¼
total used free shared buff/cache available
Mem: 7982 1746 2523 155 3703 5818
Swap: 2047 6 2041
å ³æ³¨ä»¥ä¸å 项ï¼
- usedï¼å·²ç»ä½¿ç¨çå åã
- freeï¼å¯ç¨ç空é²å åã
- availableï¼å¯ç¨çå åï¼è¿å æ¬äºæä½ç³»ç»ç¼åï¼è¿ä¸ªå¼æ´è½ä»£è¡¨å®é å¯ç¨å åã
妿 available çå¼é¿æå¾ä½ï¼å¯è½è¡¨æå åä¸è¶³ã
éè¿è§å¯æ¯å¦é¢ç¹ä½¿ç¨ Swap 空é´
å¯ä»¥éè¿ free å½ä»¤è§å¯ Swap 空é´çä½¿ç¨æ åµï¼
Swap: 2047 6 2041
- 妿 Swap 空é´ä½¿ç¨è¿å¤ï¼ä¾å¦ï¼æ¥è¿ Swap totalï¼ï¼è¯´æç©çå åä¸è¶³ã
æ£æ¥ dmesg è¾åºæ¯å¦æ OOMï¼Out of Memoryï¼ä¿¡æ¯
æ¥ç /var/log/messages æè ä½¿ç¨ dmesg å½ä»¤æ¥æ¥çç³»ç»æ¥å¿ï¼æ£æ¥æ¯å¦æ OOMï¼Out of Memoryï¼é误ã
dmesg | grep -i "out of memory"
妿åå¨ OOM é误ï¼è¯´æå åä¸è¶³æ¯ä¸ä¸ªææ¾çé®é¢ã
ä½¿ç¨ vmstat è§æµå å使ç¨ç¶åµ
vmstat æ¯å¦ä¸ä¸ªå¼ºå¤§çå·¥å ·ï¼å¯ä»¥å¸®å©ä½ çæ§ç³»ç»çå åä½¿ç¨æ åµãæ§è¡ vmstat 1 æ¯ç§å·æ°ä¸æ¬¡ï¼

ç¹å«å ³æ³¨ä»¥ä¸å段ï¼
- siï¼swap inï¼å soï¼swap outï¼ï¼å¦æè¿ä¸¤ä¸ªå¼è¾é«ï¼è¯´æç³»ç»é¢ç¹ä½¿ç¨äº¤æ¢ç©ºé´ï¼è¡¨æç©çå åå¯è½ä¸è¶³ã
- freeï¼ç©ºé²å åã
- buff å cacheï¼ç¼ååç¼å²åºçä½¿ç¨æ åµã
# å¦ä½å¤æå 忝妿¯æ»¡çæ åµï¼éè¿ä»ä¹ææ 夿å åç使ç¨çï¼
- 妿 free å available é½é常ä½ï¼è used å¾é«ï¼å ååºæ¬ä¸æ¯æ»¡çã
- Swap 使ç¨é¢ç¹ä¸ä½¿ç¨çè¾é«ï¼é£ä¹å ååºæ¬ä¸æ¯æ»¡çã
- 妿 dmesg æ¥å¿ï¼åºç° OOM ç¸å ³ä¿¡æ¯ï¼è¯´æå åä¸è¶³å¯¼è´äºä¸äºè¿ç¨è¢«ææã
- ps æ top æ¾ç¤ºå¤§é¨åå åè¢«å°æ°å 个è¿ç¨å ç¨ï¼é£ä¹å ååºæ¬ä¸æ¯æ»¡çã
# æä¹å¤ææä½ç³»ç»ææ²¡æå¨å åæ¿æ¢ï¼æè 说æä¹ç»è®¡å åæ¿æ¢çé¢çï¼
æä»¬å¯ä»¥ä½¿ç¨ sar -B 1 å½ä»¤æ¥è§å¯ï¼

å¾ä¸çº¢è²æ¡ä½çå°±æ¯åå°å ååæ¶åç´æ¥å ååæ¶çææ ï¼å®ä»¬åå«è¡¨ç¤ºï¼
- pgscank/s : kswapd(åå°åæ¶çº¿ç¨) æ¯ç§æ«æç page 个æ°ã
- pgscand/s: åºç¨ç¨åºå¨å åç³è¯·è¿ç¨ä¸æ¯ç§ç´æ¥æ«æç page 个æ°ã
- pgsteal/s: æ«æç page 䏿¯ç§è¢«åæ¶ç个æ°ï¼pgscank+pgscandï¼ã
å¦æç³»ç»æ¶ä¸æ¶åçæå¨ï¼å¹¶ä¸å¨æå¨çæ¶é´æ®µé妿éè¿ sar -B è§å¯å° pgscand æ°å¼å¾å¤§ï¼é£å¤§æ¦çæ¯å 为ãç´æ¥å ååæ¶ã导è´çã
ææ°çå¾è§£æç« é½å¨å ¬ä¼å·é¦åï¼å«å¿è®°å ³æ³¨å¦ï¼ï¼å¦æä½ æ³å å ¥ç¾äººææ¯äº¤æµç¾¤ï¼æ«ç 䏿¹äºç»´ç åå¤ãå 群ãã

â ç³»ç»è®¾è®¡é¢è¯é¢ Gité¢è¯é¢ â
