了解最新公司動態及行業資訊
我們團隊在為上一家公司承擔運維優化擴容工作時,遇到了各種規模性能較差的系統和基礎設施(多為大型系統,如CNN或世界銀行系統)。 如果趕上緊迫的修復時間,怪異的技術平臺,以及資料和文檔的匱乏,基本上這個過程會痛苦到讓我們留下深刻的記憶。
當遇到服務器故障時,很少能立即想到問題的原因。 我們基本上從以下步驟開始:
1.盡量了解問題的前因后果
不要一下子跳到服務器前面,你需要搞清楚這個服務器的已知信息有多少,以及故障的具體情況。 否則,您可能沒有任何目標。
必須明確的問題是:
最后兩個是最方便的信息來源,但不要抱太大希望,它們基本上都不是。 我只能繼續探索。
2. 那里有誰?
$ w $ last
使用這兩個命令可以查看誰在線,哪些用戶訪問過。 這不是關鍵步驟,但最好不要在其他用戶正在工作時調試系統。 俗話說,一山難容二虎。 (不用做飯。)
3、之前發生了什么?
$ history
查看之前在服務器上執行的命令。 看一看總是對的,再加上登錄過的人的信息,應該會有用的。 此外,作為管理員,您應該注意不要利用您的權限侵犯他人的隱私。
在這里提醒一下,稍后您可能需要更新環境變量以顯示這些命令的執行時間。 是的,不然光是看到一堆不知道什么時候執行的命令也會抓狂。
4、現在運行的進程是什么?
$ pstree -a $ ps aux
這都是關于查看現有流程的。 ps aux的結果比較亂,-a的結果比較簡單明了,可以看到正在運行的進程和相關用戶。
5. 監控網絡服務
$ netstat -ntlp $ netstat -nulp $ netstat -nxlp
我通常分別運行這三個命令,不想一次列出所有服務。 -nalp 也可以。 不過我永遠不會使用選項(我的愚見:IP 地址似乎更方便)。
查找所有正在運行的服務并檢查它們是否應該運行。 查看各個偵聽端口。 顯示的服務列表中的PID與ps aux進程列表中的相同。
如果服務器上有幾個Java什么的進程同時運行,能夠通過PID分別找到每個進程是非常重要的。
通常我們建議每臺服務器運行較少的服務,并在必要時添加更多服務器。 如果你看到一臺服務器開了三十、四十個監聽端口,就做個記錄,以后有時間清理一下服務器運維,重新整理一下服務器。
6.CPU和內存
$ free -m $ uptime $ top $ htop
注意以下問題:
七、硬件
$ lspci $ dmidecode $ ethtool
很多服務器還處于裸機狀態,可以看看:
八、IO性能
$ iostat -kx 2 $ vmstat 2 10 $ mpstat 2 10 $ dstat --top-io --top-bio
這些命令對于調試后端性能非常有用。
9. 掛載點和文件系統
$ mount $ cat /etc/fstab $ vgs $ pvs $ lvs $ df -h $ lsof +D / /* beware not to kill your box */
十、內核、中斷和網絡
$ sysctl -a | grep ... $ cat /proc/interrupts $ cat /proc/net/ip_conntrack /* may take some time on busy servers */ $ netstat $ ss -s
您還可以查看 Linux TCP服務器運維,了解網絡性能調整的一些基本知識。
11.系統日志和內核消息
$ dmesg $ less /var/log/messages $ less /var/log/secure $ less /var/log/auth
12.定時任務
$ ls /etc/cron* + cat $ for user in $(cat /etc/passwd | cut -f1 -d:); do crontab -l -u $user; done
13、應用系統日志
這里可以分析的東西很多,但是作為運維人員恐怕沒有時間細細研究。 關注明顯的問題,比如在一個典型的LAMP(Linux++Mysql+Perl)應用環境中:
綜上所述
在這 5 分鐘之后,您應該更清楚地了解以下內容:
您甚至可能會找到問題的真正根源。 就算你還沒有找到,弄清楚以上情況后,你現在也具備了深入挖掘的條件。 繼續努力吧!
藍夢成立于上海,致力于提供IT外包、弱電工程(網絡布線、機房建設、門禁考勤、視頻監控、電話交換機、多媒體會議室)、系統集成(建網、網絡改造、WIFI覆蓋)企業客戶、數據備份、病毒防護、文件權限、虛擬化等)、云服務(微軟云、阿里云、企業郵箱等)“一站式”IT外包解決方案。 ,,,咨詢。 支持熱線: