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

歡迎訪問 生活随笔!

生活随笔

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

linux

【linux】关于分析系统问题的前几分钟

發布時間:2025/3/21 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【linux】关于分析系统问题的前几分钟 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為了解決性能問題,你登入了一臺Linux服務器,在最開始的一分鐘內需要查看什么?你可以在幾分鐘內就對系統資源的使用情況和進程的運行狀況有大體上的了解。無非是先查看錯誤信息和飽和指標,再看下資源的使用量

1、之前發生了什么

[root@localhost ~]# history1 2015-12-11_21:35:16 htop2 2015-12-11_21:35:19 df -h3 2015-12-11_21:35:25 cd /data/backup/4 2015-12-11_21:35:26 ll

查看一下之前服務器上執行過的命令。看一下總是沒錯的,可以通過HISTTIMEFORMAT來設置一下命令的執行時間

2、用戶狀態

[root@localhost ~]# last -6 test pts/0 192.168.1.57 Fri Dec 11 21:35 still logged in test pts/0 192.168.1.57 Fri Dec 11 18:24 - 18:24 (00:00) test pts/3 192.168.1.57 Fri Dec 11 18:14 - 18:14 (00:00) test pts/3 192.168.1.57 Fri Dec 11 18:13 - 18:14 (00:00) test pts/0 192.168.1.57 Fri Dec 11 18:02 - 18:14 (00:11) test pts/0 192.168.1.57 Fri Dec 11 17:29 - 17:29 (00:00) [root@localhost ~]# w21:42:20 up 284 days, 6:12, 1 user, load average: 0.27, 0.23, 0.19 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT test pts/0 192.168.1.57 21:35 0.00s 0.02s 0.00s sshd: test [priv]

用這個命令看看都有誰在線,有哪些用戶訪問過

3. 服務器的運行狀態

$ uptime $ top $ htop $ free -m $ df -h
  • 查看服務器最大的負載來自什么地方、 平均負載是多少
  • 查看服務器還有空余的內存嗎,是否正在內存和硬盤之間進行swap
  • 查看還有剩余的CPU嗎, 是否有某些CPU核負載過多了
  • 查看服務器上磁盤是不是滿了

4、服務器的進程

[root@localhost ~]# pstree -a [root@localhost ~]# ps aux [root@localhost ~]# htop

服務器在運行什么進程,php-fpm、nginx、cron等

5、系統日志和內核消息

[root@localhost ~]# dmesg | tail [root@localhost ~]# less /var/log/messages [root@localhost ~]# less /var/log/secure [root@localhost ~]# less /var/log/auth
  • 查看系統信息,已經導致性能問題的錯誤信息。比如看看是不是很多關于連接數過多導致
  • 看看是否有硬件錯誤或文件系統錯誤
  • 分析是否能將這些錯誤事件和前面發現的疑點進行時間上的比對

6、網絡連接和負載

[root@localhost ~]# ss [root@localhost ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' [root@localhost ~]# netstat -antlp|grep 'ESTAB' | wc -l [root@localhost ~]# netstat -antlp|grep 'ESTAB'|awk '{print $5}'|awk -F: '{print $1}'|sort |uniq -c|sort -rn -k 1 [root@localhost ~]# sar -n DEV 1 10 [root@localhost ~]# sar -n TCP,ETCP 1 10 [root@localhost ~]# netstat -nxlp [root@localhost ~]# netstat -nulp [root@localhost ~]# netstat -ntlp

這些命令基本上夠了,ss響應速度比netstat快很多

查看各個監聽端口,以及服務

查看 TIME_WAIT、CLOSE_WAIT等是否過多從而導致服務器運行緩慢,或者是不是服務器遭受到syn flood攻擊

sar -n DEV 1 10?可以用于檢查網絡流量的工作負載:rxkB/s和txkB/s,以及它是否達到限額

sar -n TCP,ETCP 1 10?顯示一些關鍵TCP指標的匯總。其中包括:

  • active/s:本地每秒創建的TCP連接數(比如concept()創建的)
  • passive/s:遠程每秒創建的TCP連接數(比如accept()創建的)
  • retrans/s:每秒TCP重傳次數
  • 主動連接數(active)和被動連接數(passive)通常可以用來粗略地描述系統負載。可以認為主動連接是對外的,而被動連接是對內的,雖然嚴格來說不完全是這個樣子。(比如,一個從localhost到localhost的連接)

7、查看內存、CPU以及IO的使用情況

vmstat

$ vmstat 1 procs ---------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st 34 0 0 200889792 73708 591828 0 0 0 5 6 10 96 1 3 0 0 32 0 0 200889920 73708 591860 0 0 0 592 13284 4282 98 1 1 0 0 32 0 0 200890112 73708 591860 0 0 0 0 9501 2154 99 1 0 0 0 32 0 0 200889568 73712 591856 0 0 0 48 11900 2459 99 0 0 0 0 32 0 0 200890208 73712 591860 0 0 0 0 15898 4840 98 1 1 0 0

虛擬內存原理

在系統中運行的每個進程都需要使用到內存,但不是每個進程都需要每時每刻使用系統分配的內存空間。當系統運行所需內存超過實際的物理內存,內核會釋放某些進程所占用但未使用的部分或所有物理內存,將這部分資料存儲在磁盤上直到進程下一次調用,并將釋放出的內存提供給有需要的進程使用。

在Linux內存管理中,主要是通過“調頁Paging”和“交換Swapping”來完成上述的內存調度。調頁算法是將內存中最近不常使用的頁面換到磁盤上,把活動頁面保留在內存中供進程使用。交換技術是將整個進程,而不是部分頁面,全部交換到磁盤上。

分頁(Page)寫入磁盤的過程被稱作Page-Out,分頁(Page)從磁盤重新回到內存的過程被稱作Page-In。當內核需要一個分頁時,但發現此分頁不在物理內存中(因為已經被Page-Out了),此時就發生了分頁錯誤(Page Fault)。

當系統內核發現可運行內存變少時,就會通過Page-Out來釋放一部分物理內存。盡管Page-Out不是經常發生,但是如果Page-out頻繁不斷的發生,直到當內核管理分頁的時間超過運行程式的時間時,系統效能會急劇下降。這時的系統已經運行非常慢或進入暫停狀態,這種狀態亦被稱作thrashing(顛簸)

vmstat?的含義為虛擬內存狀態(“Viryual Memor Statics”),但是它可以報告關于進程、內存、I/O等系統整體運行狀態。

指定1作為vmstat的輸入參數,它會輸出每一秒內的統計結果

Procs(進程) r: 運行隊列中進程數量,這個值也可以判斷是否需要增加CPU。(長期大于1) b: 等待IO的進程數量。Memory(內存) swpd: 使用虛擬內存大小,如果swpd的值不為0,但是SI,SO的值長期為0,這種情況不會影響系統性能。 free: 空閑物理內存大小。 buff: 用作緩沖的內存大小。 cache: 用作緩存的內存大小,如果cache的值大的時候,說明cache處的文件數多,如果頻繁訪問到的文件都能被cache處,那么磁盤的讀IO bi會非常小。Swap si: 每秒從交換區寫到內存的大小,由磁盤調入內存。 so: 每秒寫入交換區的內存大小,由內存調入磁盤。 注意:內存夠用的時候,這2個值都是0,如果這2個值長期大于0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。有些朋友看到空閑內存(free)很少的或接近于0時,就認為內存不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那么不用擔心,系統性能這時不會受到影響的。IO(現在的Linux版本塊的大小為1kb) bi: 每秒讀取的塊數 bo: 每秒寫入的塊數 注意:隨機磁盤讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。system(系統) in: 每秒中斷數,包括時鐘中斷。 cs: 每秒上下文切換數。 注意:上面2個值越大,會看到由內核消耗的CPU時間會越大。CPU(以百分比表示) us: 用戶進程執行時間百分比(user time),us的值比較高時,說明用戶進程消耗的CPU時間多,但是如果長期超50%的使用,那么我們就該考慮優化程序算法或者進行加速。 sy: 內核系統進程執行時間百分比(system time) sy的值高時,說明系統內核消耗的CPU資源多,這并不是良性表現,我們應該檢查原因。 wa: IO等待時間百分比,wa的值高時,說明IO等待比較嚴重,這可能由于磁盤大量作隨機訪問造成,也有可能磁盤出現瓶頸(塊操作)。 id: 空閑時間百分比 st:被其它租戶,或者是租戶自己的Xen隔離設備驅動域(isolated driver domain),所占用的時間

通過相加us和sy的百分比,你可以確定CPU是否處于忙碌狀態。一個持續不變的wait I/O意味著瓶頸在硬盤上,這種情況往往伴隨著CPU的空閑,因為任務都卡在磁盤I/O上了。你可以把wait I/O當作CPU空閑的另一種形式,它額外給出了CPU空閑的線索。

I/O處理同樣會消耗系統時間。一個高于20%的平均系統時間,往往值得進一步發掘:也許系統花在I/O的時太長了。

在上面的例子中,CPU基本把時間花在用戶態里面,意味著跑在上面的應用占用了大部分時間。檢查下“r”列,看看是否飽和了

mpstat -P ALL 1

$ mpstat -P ALL 1 Linux 3.13.0-49-generic (titanclusters-xxxxx) 07/14/2015 _x86_64_ (32 CPU)07:38:49 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 07:38:50 PM all 98.47 0.00 0.75 0.00 0.00 0.00 0.00 0.00 0.00 0.78 07:38:50 PM 0 96.04 0.00 2.97 0.00 0.00 0.00 0.00 0.00 0.00 0.99 07:38:50 PM 1 97.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 2.00 07:38:50 PM 2 98.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00 07:38:50 PM 3 96.97 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 3.03 [...]
  • %user 在internal時間段里,用戶態的CPU時間(%),不包含nice值為負進程 (usr/total)*100
  • %nice 在internal時間段里,nice值為負進程的CPU時間(%) (nice/total)*100
  • %sys 在internal時間段里,內核時間(%) (system/total)*100
  • %iowait 在internal時間段里,硬盤IO等待時間(%) (iowait/total)*100
  • %irq 在internal時間段里,硬中斷時間(%) (irq/total)*100
  • %soft 在internal時間段里,軟中斷時間(%) (softirq/total)*100
  • %idle 在internal時間段里,CPU除去等待磁盤IO操作外的因為任何原因而空閑的時間閑置時間(%) (idle/total)*100

mpstat是Multiprocessor Statistics的縮寫,是實時系統監控工具。其報告與CPU的一些統計信息,這些信息存放在/proc/stat文件中。在多CPUs系統里,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。

mpstat最大的特點是:可以查看多核心cpu中每個計算核心的統計數據;而類似工具vmstat只能查看系統整體cpu情況,還可以顯示每個CPU的時間使用百分比,你可以用它來檢查CPU是否存在負載不均衡。單個過于忙碌的CPU可能意味著整個應用只有單個線程在工作。

pidstat 1

$ pidstat 1 Linux 3.13.0-49-generic (titanclusters-xxxxx) 07/14/2015 _x86_64_ (32 CPU)07:41:02 PM UID PID %usr %system %guest %CPU CPU Command 07:41:03 PM 0 9 0.00 0.94 0.00 0.94 1 rcuos/0 07:41:03 PM 0 4214 5.66 5.66 0.00 11.32 15 mesos-slave 07:41:03 PM 0 4354 0.94 0.94 0.00 1.89 8 java 07:41:03 PM 0 6521 1596.23 1.89 0.00 1598.11 27 java 07:41:03 PM 0 6564 1571.70 7.55 0.00 1579.25 28 java 07:41:03 PM 60004 60154 0.94 4.72 0.00 5.66 9 pidstat07:41:03 PM UID PID %usr %system %guest %CPU CPU Command 07:41:04 PM 0 4214 6.00 2.00 0.00 8.00 15 mesos-slave 07:41:04 PM 0 6521 1590.00 1.00 0.00 1591.00 27 java 07:41:04 PM 0 6564 1573.00 10.00 0.00 1583.00 28 java 07:41:04 PM 108 6718 1.00 0.00 0.00 1.00 0 snmp-pass 07:41:04 PM 60004 60154 1.00 4.00 0.00 5.00 9 pidstat

pidstat主要用于監控全部或指定進程占用系統資源的情況,如CPU,內存、設備IO、任務切換、線程等。pidstat首次運行時顯示自系統啟動開始的各項統計信息,之后運行pidstat將顯示自上次運行該命令以后的統計信息。用戶可以通過指定統計的次數和時間來獲得所需的統計信息

上面的例子表明,CPU主要消耗在兩個java進程上。%CPU列是在各個CPU上的使用量的總和;1591%意味著java進程消耗了將近16個CPU

比如常用的pidstat命令

pidstat -u 1 //cpu pidstat -r 1 //mem pidstat -d 1 //io

以上命令以1秒為信息采集周期,分別獲取cpu、內存和磁盤IO的統計信息 

iostat -xz 1

$ iostat -xz 1 Linux 3.13.0-49-generic (titanclusters-xxxxx) 07/14/2015 _x86_64_ (32 CPU)avg-cpu: %user %nice %system %iowait %steal %idle73.96 0.00 3.73 0.03 0.06 22.21Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util xvda 0.00 0.23 0.21 0.18 4.52 2.08 34.37 0.00 9.98 13.80 5.42 2.44 0.09 xvdb 0.01 0.00 1.02 8.94 127.97 598.53 145.79 0.00 0.43 1.78 0.28 0.25 0.25 xvdc 0.01 0.00 1.02 8.86 127.79 595.94 146.50 0.00 0.45 1.82 0.30 0.27 0.26 dm-0 0.00 0.00 0.69 2.32 10.47 31.69 28.01 0.01 3.23 0.71 3.98 0.13 0.04 dm-1 0.00 0.00 0.00 0.94 0.01 3.78 8.00 0.33 345.84 0.04 346.81 0.01 0.00 dm-2 0.00 0.00 0.09 0.07 1.35 0.36 22.50 0.00 2.55 0.23 5.62 1.78 0.03 [...]

這個命令可以弄清塊設備(磁盤)的狀況,包括工作負載和處理性能。注意以下各項:

  • r/s,w/s,rkB/s,wkB/s:分別表示每秒設備讀次數,寫次數,讀的KB數,寫的KB數。它們描述了磁盤的工作負載。也許性能問題就是由過高的負載所造成的。
  • await:I/O平均時間,以毫秒作單位。它是應用中I/O處理所實際消耗的時間,因為其中既包括排隊用時也包括處理用時。如果它比預期的大,就意味著設備飽和了,或者設備出了問題。
  • avgqu-sz:分配給設備的平均請求數。大于1表示設備已經飽和了。(不過有些設備可以并行處理請求,比如由多個磁盤組成的虛擬設備)
  • %util:設備使用率。這個值顯示了設備每秒內工作時間的百分比,一般都處于高位。低于60%通常是低性能的表現(也可以從await中看出),不過這個得看設備的類型。接近100%通常意味著飽和。

如果某個存儲設備是由多個物理磁盤組成的邏輯磁盤設備,100%的使用率可能只是意味著I/O占用

請牢記于心,disk I/O性能低不一定是個問題。應用的I/O往往是異步的(比如預讀(read-ahead)和寫緩沖(buffering for writes)),所以不一定會被阻塞并遭受延遲。

free -m

$ free -mtotal used free shared buffers cached Mem: 245998 24545 221453 83 59 541 -/+ buffers/cache: 23944 222053 Swap: 0 0 0
  • buffers:用于塊設備I/O的緩沖區緩存
  • cached:用于文件系統的頁緩存

它們的值接近于0時,往往導致較高的磁盤I/O(可以通過iostat確認)和糟糕的性能。上面的例子里沒有這個問題,每一列都有好幾M呢。

比起第一行,-/+ buffers/cache提供的內存使用量會更加準確些。Linux會把暫時用不上的內存用作緩存,一旦應用需要的時候立刻重新分配給它。所以部分被用作緩存的內存其實也算是空閑內存,第二行以此修訂了實際的內存使用量

如果你在Linux上安裝了ZFS,正如我們在一些服務上所做的,這一點會變得更加迷惑,因為ZFS它自己的文件系統緩存不算入free -m。有時系統看上去已經沒有多少空閑內存可用了,其實內存都待在ZFS的緩存里呢。

lsof -a -u root -d txt

lsof 是 linux 下的一個非常實用的系統級的監控、診斷工具。它的意思是 List Open Files,很容易你就記住了它是 “ls + of”的組合~它可以用來列出被各種進程打開的文件信息,記住:linux 下 “一切皆文件”,包括但不限于 pipes, sockets, directories, devices, 等等。因此,使用 lsof,你可以獲取任何被打開文件的各種信息。只需輸入 lsof 就可以生成大量的信息,因為 lsof 需要訪問核心內存和各種文件,所以必須以 root 用戶的身份運行它才能夠充分地發揮其功能

[root@localhost ~]# lsof -u www -c nginx COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 7407 root cwd DIR 202,1 4096 128 / nginx 7407 root rtd DIR 202,1 4096 128 / nginx 7407 root txt REG 202,1 6694801 100963532 /usr/sbin/nginx nginx 7407 root DEL REG 0,4 1142022948 /dev/zero nginx 7407 root DEL REG 0,4 1142022946 /dev/zero nginx 7407 root DEL REG 0,4 1142022945 /dev/zero nginx 7407 root DEL REG 0,4 1142022944 /dev/zero nginx 7407 root mem REG 202,1 65928 67516073 /lib64/libnss_files-2.12.so nginx 7407 root mem REG 202,1 10856 67240493 /usr/lib64/libXau.so.6.0.0 nginx 7407 root mem REG 202,1 122040 67516740 /lib64/libselinux.so.1 nginx 7407 root mem REG 202,1 165264 67516922 /lib64/libexpat.so.1.5.2 nginx 7407 root mem REG 202,1 122520 67251486 /usr/lib64/libxcb.so.1.1.0 nginx 7407 root mem REG 202,1 110960 67516085 /lib64/libresolv-2.12.so nginx 7407 root mem REG 202,1 10192 67295653 /lib64/libkeyutils.so.1.3 nginx 7407 root mem REG 202,1 43728 67516910 /lib64/libkrb5support.so.0.1 nginx 7407 root mem REG 202,1 90880 67151447 /lib64/libgcc_s-4.4.7-20120601.so.1 nginx 7407 root mem REG 202,1 987096 67239461 /usr/lib64/libstdc++.so.6.0.13 nginx 7407 root mem REG 202,1 375687 559315 /usr/local/lib/libunwind.so.8.0.1 nginx 7407 root mem REG 202,1 596272 67516143 /lib64/libm-2.12.so nginx 7407 root mem REG 202,1 155456 67240447 /usr/lib64/libpng12.so.0.49.0 nginx 7407 root mem REG 202,1 642600 67231558 /usr/lib64/libfreetype.so.6.3.22 nginx 7407 root mem REG 202,1 220584 67236392 /usr/lib64/libfontconfig.so.1.4.4 nginx 7407 root mem REG 202,1 262896 67239380 /usr/lib64/libjpeg.so.62.0.0 nginx 7407 root mem REG 202,1 1297928 67150496 /usr/lib64/libX11.so.6.3.0 nginx 7407 root mem REG 202,1 70320 67150499 /usr/lib64/libXpm.so.4.11.0 nginx 7407 root mem REG 202,1 174840 67295675 /lib64/libk5crypto.so.3.1 nginx 7407 root mem REG 202,1 14664 67226162 /lib64/libcom_err.so.2.1 nginx 7407 root mem REG 202,1 941920 67516681 /lib64/libkrb5.so.3.3 nginx 7407 root mem REG 202,1 277704 67516675 /lib64/libgssapi_krb5.so.2.2 nginx 7407 root mem REG 202,1 469528 67226123 /lib64/libfreebl3.so nginx 7407 root mem REG 202,1 1920936 67516136 /lib64/libc-2.12.so nginx 7407 root mem REG 202,1 289777 459327 /usr/local/lib/libprofiler.so.0.3.0 nginx 7407 root mem REG 202,1 898748 1724697 /usr/local/lib/libGeoIP.so.1.4.6 nginx 7407 root mem REG 202,1 272552 67150501 /usr/lib64/libgd.so.2.0.0 nginx 7407 root mem REG 202,1 88600 67226134 /lib64/libz.so.1.2.3 nginx 7407 root mem REG 202,1 1950976 67244040 /usr/lib64/libcrypto.so.1.0.1e nginx 7407 root mem REG 202,1 441112 67244042 /usr/lib64/libssl.so.1.0.1e nginx 7407 root mem REG 202,1 181432 67516701 /lib64/libpcre.so.0.0.1 nginx 7407 root mem REG 202,1 40400 67516139 /lib64/libcrypt-2.12.so nginx 7407 root mem REG 202,1 19536 67516141 /lib64/libdl-2.12.so nginx 7407 root mem REG 202,1 142640 67516083 /lib64/libpthread-2.12.so nginx 7407 root mem REG 202,1 154664 67516128 /lib64/ld-2.12.so nginx 7407 root 0u CHR 1,3 0t0 3866 /dev/null nginx 7407 root 1u CHR 1,3 0t0 3866 /dev/null nginx 7407 root 2w REG 202,1 748837066 33826169 /usr/local/nginx/logs/error.log

查看設備打開的文件

[root@localhost ~]# lsof /dev/xvdb1 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME php-fpm 7222 root 2w REG 202,17 161403107 262180 /data/logs/error/php-fpm-error.log php-fpm 7222 root 3w REG 202,17 161403107 262180 /data/logs/error/php-fpm-error.log nginx 7407 root 6w REG 202,17 0 262256 /data/logs/error/app.test.com_error.log nginx 8011 www 49r REG 202,17 3762 3166039 /data/www/www.test.com/Common/js/new_header.js nginx 8011 www 50r REG 202,17 33915 2763270 /data/www/bbs.test.com/static/js/home.js nginx 8011 www 51r REG 202,17 8345 3147082 /data/www/www.test.com/Common/js/raty/jquery.raty.min.js nginx 8011 www 53u REG 202,17 4119 2383851 /data/www/bbs.test.com/404.html nginx 8011 www 54r REG 202,17 12030 3146240 /data/www/www.test.com/Common/js/iframeTools.source.js nginx 8011 www 56u REG 202,17 603 2763375 /data/www/bbs.test.com/static/js/logging.js nginx 8011 www 67r REG 202,17 139 2490917 /data/www/www.test.com/index.php nginx 8012 www 4w REG 202,17 350277 262242 /data/logs/access/app.test.com_access.log nginx 8012 www 6w REG 202,17 0 262256 /data/logs/error/app.test.com_error.log nginx 8012 www 7w REG 202,17 5067450 267977 /data/logs/access/bbs.test.com_access.log nginx 8012 www 8w REG 202,17 55522 262497 /data/logs/error/bbs.test.com_error.log nginx 8012 www 10w REG 202,17 0 267978 /data/logs/access/edu.test.com_access.log nginx 8012 www 11w REG 202,17 2480 262277 /data/logs/error/edu.test.com_error.log nginx 8012 www 12w REG 202,17 4634491 267979 /data/logs/access/www.test.com_access.log nginx 8012 www 13w REG 202,17 63323232 262257 /data/logs/error/www.test.com_error.log nginx 8012 www 15w REG 202,17 718 267980 /data/logs/access/tyb.test.com_access.log nginx 8012 www 17w REG 202,17 0 262258 /data/logs/error/tyb.test.com_error.log nginx 8012 www 25w REG 202,17 0 2386258 /data/www/tmp/tcmalloc.8012 php-fpm 18179 www cwd DIR 202,17 4096 2400257 /data/www/bbs.test.com bash 18367 root 255r REG 202,17 1303 2097160 /data/scripts/backup.sh php-fpm 18406 www cwd DIR 202,17 4096 2400257 /data/www/bbs.test.com gzip 18445 root 1w REG 202,17 0 10485795 /data/backup/db/rbc/rbc2014_test_2015_12_12_00.sql.gz

8、定時任務

[root@localhost ~]# ls /etc/cron* [root@localhost ~]# for user in $(cat /etc/passwd | cut -f1 -d:); do crontab -l -u $user; done
  • 是否有某個定時任務運行過于頻繁?
  • 是否有些用戶提交了隱藏的定時任務?
  • 在出現故障的時候,是否正好有某個備份任務在執行?

9、內核、中斷

[root@localhost ~]# sysctl -a | grep [root@localhost ~]# cat /proc/interrupts [root@localhost ~]# cat /proc/net/ip_conntrack
  • 你的中斷請求是否是均衡地分配給CPU處理,還是會有某個CPU的核因為大量的網絡中斷請求或者RAID請求而過載了?
  • SWAP交換的設置是什么?對于工作站來說swappinness 設為 60 就很好, 不過對于服務器就太糟了:你最好永遠不要讓服務器做SWAP交換,不然對磁盤的讀寫會鎖死SWAP進程。
  • conntrack_max 是否設的足夠大,能應付你服務器的流量?
  • 在不同狀態下(TIME_WAIT, …)TCP連接時間的設置是怎樣的?
  • 如果要顯示所有存在的連接,netstat 會比較慢, 你可以先用 ss 看一下總體情況。

10、系統掛載

[root@localhost ~]# mount [root@localhost ~]# cat /etc/fstab [root@localhost ~]# df -h [root@localhost ~]# lsof +D /data/test
  • 一共掛載了多少文件系統?
  • 有沒有某個服務專用的文件系統? (比如MySQL?)
  • 文件系統的掛載選項是什么: noatime? default? 有沒有文件系統被重新掛載為只讀模式了?
  • 磁盤空間是否還有剩余?
  • 是否有大文件被刪除但沒有清空?
  • 如果磁盤空間有問題,你是否還有空間來擴展一個分區?

11、應用系統日志

這里邊可分析的東西就多了, 不過恐怕你作為運維人員是沒功夫去仔細研究它的。關注那些明顯的問題,比如在一個典型的LAMP(Linux+Apache+Mysql+Perl)應用環境里:

  • Apache & Nginx; 查找訪問和錯誤日志, 直接找 5xx 錯誤, 再看看是否有 limit_zone 錯誤。
  • MySQL; 在mysql.log找錯誤消息,看看有沒有結構損壞的表, 是否有innodb修復進程在運行,是否有disk/index/query 問題.
  • PHP-FPM; 如果設定了 php-slow 日志, 直接找錯誤信息 (php, mysql, memcache, …),如果沒設定,趕緊設定。
  • Varnish; 在varnishlog 和 varnishstat 里, 檢查 hit/miss比. 看看配置信息里是否遺漏了什么規則,使最終用戶可以直接攻擊你的后端?
  • HA-Proxy; 后端的狀況如何?健康狀況檢查是否成功?是前端還是后端的隊列大小達到最大值了?

?

分享一張來自網絡上的圖片

?

參考文章

https://github.com/spacewander/blogWithMarkdown/issues/36
http://www.cnetsec.com/article/12858.html
https://www.ibm.com/developerworks/cn/linux/l-cn-perf1/
http://techblog.netflix.com/2015/11/linux-performance-analysis-in-60s.html

?

轉載于:https://www.cnblogs.com/chenpingzhao/p/5038598.html

總結

以上是生活随笔為你收集整理的【linux】关于分析系统问题的前几分钟的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕一区二区三区乱码人妻 | 精品人人人人 | 亚洲综合色视频 | 黄网站在线观看视频 | 未满十八岁勿进 | 国产麻豆乱码精品一区二区三区 | 日韩黄色免费观看 | 理论片在线观看视频 | 久久精品人妻一区二区 | 在线观看理论片 | 日韩精品网址 | 操欧美老女人 | 二区三区偷拍浴室洗澡视频 | 国产精品成人电影在线观看 | 91久久久久一区二区 | 夜夜高潮夜夜爽国产伦精品 | jizz性欧美2| 丰满的人妻hd高清日本 | 日本一区二区免费看 | 超碰免费成人 | 亚洲成人xxx | 精品字幕 | 中文字幕av播放 | brazzers精品成人一区 | 国产大奶在线 | 国产手机看片 | 伊人久久97| 一区二区精品在线 | 美女脱了裤子让男人桶 | 五月天丁香在线 | 欧美色图五月天 | 在线激情视频 | 我不卡av| 俄罗斯黄色大片 | 亚洲激情图片 | 999久久精品| 国产最新网址 | 久久高清无码电影 | 成人欧美一级特黄 | 人妻精品久久久久中文字幕69 | 窝窝午夜理论片影院 | aaa特级毛片 | 干干干操操操 | 国产成人精品毛片 | 深夜福利亚洲 | 欧美真人性野外做爰 | 欧美日韩人妻精品一区在线 | www.youjizz国产 | 激情精品 | 伊人免费视频 | 欧美精彩视频 | 亚洲三级中文字幕 | 欧美第二区 | 啪网站| 色干综合| 成人国产精品久久 | 国产中文欧美日韩在线 | 国产原创视频 | 五月天福利视频 | 暖暖日本在线视频 | 国产三级理论片 | 国产在线看一区 | 中文字幕乱码一二三区 | 不卡视频在线播放 | 高潮毛片又色又爽免费 | 国产视频手机在线播放 | 91在线视频免费播放 | 啪啪免费视频网站 | 不卡在线视频 | a级特黄视频 | 国产精品成人久久久久久久 | 日韩欧美精品在线视频 | 午夜肉伦伦影院 | 国产99视频在线观看 | 91蜜桃在线 | 99国产视频在线 | 国产freexxxx性播放麻豆 | 狠狠操网站 | 欧美 日韩 中文字幕 | 大陆日韩欧美 | 超碰在线图片 | 久久久www免费人成人片 | 天天干,夜夜爽 | 黄色片在线观看免费 | 中文字幕久久综合 | 精品黑人一区二区三区国语馆 | 亚洲美女一区二区三区 | 午夜精品导航 | 永久免费视频网站 | av一区二区三区免费观看 | 久草蜜桃 | 九九99视频 | 国内精品免费视频 | 玖玖爱av| 欧美精品人妻一区二区 | 久爱视频在线观看 | 日本一区不卡在线观看 | 瑟瑟在线观看 | 亚洲激情|