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