本文主要結(jié)合筆者在蘇寧云平臺(tái)支撐工作中的實(shí)踐,以基于經(jīng)驗(yàn)切實(shí)有效的判定分析方式貫穿, 整理了云平臺(tái)linux服務(wù)器(下文中區(qū)分了物理機(jī)及虛擬機(jī))運(yùn)維中的常見問(wèn)題場(chǎng)景、分析工具箱及判別思路.主要包含以下三部分:
1、linux服務(wù)器CPU、IO、內(nèi)存性能異常的常用工具、判定標(biāo)準(zhǔn)、以及分析思路
2、linux服務(wù)器異常宕機(jī)的故障可能的原因、定位方法與常規(guī)分析思路
3、linux服務(wù)器丟包的問(wèn)題可能的原因、定位方法與常規(guī)分析思路
讀者范圍:中高級(jí)linux服務(wù)器運(yùn)維人員
注:本文結(jié)合問(wèn)題圖景枚舉了各個(gè)tool與分析關(guān)聯(lián)較大的參數(shù)及用法,以起到一個(gè)示例說(shuō)明,各工具的詳細(xì)用法需要自行閱讀研習(xí)man手冊(cè).
圖1? cpu 異常分解
top?-H?-d?1?-c
高亮列及運(yùn)行進(jìn)程?z?x?y
選擇?shift+L/Rarrow
-d磁盤讀寫報(bào)告io 統(tǒng)計(jì)
-r內(nèi)存使用及缺頁(yè)
-u cpu
-l展示命令行及參數(shù)
-w switch
-t顯示線程的統(tǒng)計(jì)
-T
每秒展示活動(dòng)進(jìn)程的cpu?使用率
pidstat?-u?1
按線程組關(guān)系聚合展示cpu?消耗時(shí)間,幫助找出busy?線程
pidstat??-t?1?-T?ALL
-b塊統(tǒng)計(jì)
-B頁(yè)面
-r頁(yè)面使用統(tǒng)計(jì)
-R頁(yè)面回收統(tǒng)計(jì)
-d磁盤使用統(tǒng)計(jì)
-q調(diào)度統(tǒng)計(jì)
-S swap
-m運(yùn)行頻率
-v文件 inode dentry活動(dòng)統(tǒng)計(jì)
-w調(diào)度switch
-W換入換出統(tǒng)計(jì)
-n網(wǎng)絡(luò) DEV, EDEV, NFS, ? ? ?NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6, EIP6, ICMP6, ? ? ?EICMP6 and UDP6
-s 00:00:00 -e 00:21:00指明要查看的開始結(jié)束時(shí)間
nmonvisulizar是來(lái)自于ibm 的nmon可視化分析工具
開啟開關(guān)
echo?1?>?/proc/sys/kernel/sysrq
打印進(jìn)程堆棧
echo?t?>?/proc/sysrq-trigger
eg.如果已經(jīng)softlockup?且業(yè)務(wù)影響已然明顯,停業(yè)務(wù)后用下面命令產(chǎn)生一個(gè)vmcore
echo?c?>?/proc/sysrq-trigger
-c統(tǒng)計(jì)系統(tǒng)調(diào)用次數(shù)及時(shí)間
-f也trace子進(jìn)程調(diào)用
-e指明關(guān)心的調(diào)用 eg. -e ? ? ?open,write
eg.
命令執(zhí)行時(shí)掛起,了解進(jìn)程掛在哪個(gè)syscall
strace?cmd?arg
進(jìn)程系統(tǒng)調(diào)用開銷較大,獲取syscall統(tǒng)計(jì)
strace?-p?PID?-c
bt查看執(zhí)行堆棧
frame切換工作幀
用戶進(jìn)程的cpu消耗影響系統(tǒng)整體使用,配合debuginfo及代碼可大致梳理出占用邏輯,attach后,進(jìn)程會(huì)STOP
gdb?-p?PID
perf top在線采樣及展示
-e指明事件,默認(rèn)是cycle,全部時(shí)間可perf list 查詢
-G調(diào)用圖
-F采樣頻率
-d刷新間隔
-p特定進(jìn)程
-C特定核
perf?top?-d1?-G?-F?99?-z
shift?+?e?可展開堆棧視圖
shift?+?c?可折疊堆棧視圖
perf record/report
record輸出采樣文件perf.data文件
report解析
perf?record?-F?99?-a?-g?-p?PID?-C?6?sleep?5
perf?report
圖2 內(nèi)存異常分解
free
cat?/proc/self/status
cat?/proc/self/smaps
numastat??-m
numactl?--hardware
cat?/proc/meminfo
cat?/proc/zoneinfo?|egrep?"zone|min|low|high|free|present"
....
Node?0,?zone???Normal
??pages?free?????3195167
????????min??????13740
????????low??????17175
????????high?????20610
????????present??3361280
????nr_free_pages?3195167
??????????????high:??186
??????????????high:??186
sysctl -a|grep extra_free_kbytes min_free_kbytes extra_free_kbytes的組合值構(gòu)成三個(gè)水線
直接回收線 MIN min_free_kbytes
后臺(tái)回收線 LOW 5/4*min_free_kbytes + ? ? ?extra_free_kbytes
后臺(tái)回收停止 HIGH 3/2*min_free_kbytes + ? ? ?extra_free_kbytes
cat?/proc/buddyinfo
Node?0,?zone??????DMA??????2??????2??????1??????1??????1??????0??????1??????0??????1??????1??????3
Node?0,?zone????DMA32????730????596????414????339????277????214????159????127?????85?????68????557
Node?0,?zone???Normal????447????558????348????166?????72?????45???1021????888????607????252???2661
slabtop?了解當(dāng)前內(nèi)核數(shù)據(jù)結(jié)構(gòu)內(nèi)存消耗
io異常
????
圖3 io 異常分解
cfq deadline noop
當(dāng)意外的io 延遲發(fā)生,需要深入了解io延遲分布,需要使用blktrace & blkparser 工具進(jìn)行細(xì)致分析
學(xué)會(huì)合理使用oflag標(biāo)志 sync 同步刷出數(shù)據(jù) direct 繞過(guò)pagecache
用來(lái)標(biāo)定系統(tǒng)io能力的便捷工具
fio?-filename=/dev/mapper/vg_os-testlv??-direct=1?-iodepth?1?-thread?-rw=randwrite?-ioengine=psync?-bs=8k?-size=100G?-numjobs=96?-runtime=60?-group_reporting?-name=mytest
面向塊占用及文件系統(tǒng)占用的查詢分析
strace可以看出兩個(gè)命令原理的差異:df 讀取文件系統(tǒng)信息,du stat 各個(gè)文件然后累加
兩者出入較大需進(jìn)一步考察:
是否存在空洞?
是否一個(gè)文件用戶已經(jīng)看不到但是文件系統(tǒng)還沒(méi)有真正刪除?(就是打開文件被刪除的情況??lsof?+L1)
是否被某些掛載點(diǎn)隱藏了之前的目錄文件?
df?顯示錯(cuò)誤的話懷疑是否fs損壞?
圖4 網(wǎng)絡(luò)異常分析
ethtool?-S
關(guān)注drop??error
tc?-s?-d?qd
關(guān)注包drop情況
常用連接查看
netstat?-ntp
netstat?-ntpl
ss?-ie
-i待抓取的網(wǎng)口名字
-w抓包文件,可以是時(shí)間格式化串
-G回滾時(shí)長(zhǎng),單位秒
-c抓取多少個(gè)包后退出
-s抓取部分報(bào)文,單位字節(jié)
-r讀取抓包文件離線分析
-z調(diào)用gzip等工具做壓縮
-Z切換user 運(yùn)行,默認(rèn)是tcpdump
-B設(shè)置buf大小,不然抓不全單位KB 10240
eg.tcpdump?tcp?port?80?and?host
tcpdump??-s0?-w?%m_%d_%H_%M_%S.pcap?-G?5?-z?gzip?-Z?root?-c?100000?-i?any
圖5 宕機(jī)場(chǎng)景分析
log查看宕機(jī)關(guān)聯(lián)日志
bt查看宕機(jī)位置
sys查看基本信息
crash??vmcore??vmlinux
vmlinux?來(lái)自于kernel?debuginfo包,是帶調(diào)試信息的二進(jìn)制內(nèi)核鏡像
如果系統(tǒng)未正確生成vmcore,?需檢查?/etc/kdump.conf?配置及其中的設(shè)定vmcore?路徑此處討論已開始涉及內(nèi)核態(tài)問(wèn)題,常見異常分析領(lǐng)域不再展開
本文場(chǎng)景化地總結(jié)了云平臺(tái)幾類常見的linux server異常分析思路及toolset, 篇幅所限無(wú)法面面俱到,但如開篇提到,真正的快速有效的問(wèn)題判別定位離不開對(duì)系統(tǒng)領(lǐng)域的熟悉與細(xì)致縝密的判斷,以場(chǎng)景化方式靈活地運(yùn)用好工具箱,達(dá)到由表及里,由淺入深的理解系統(tǒng),快速高效解決線上問(wèn)題。?Havefun:)
謝英豪 ?蘇寧科技集團(tuán)云平臺(tái)中心高級(jí)工程師,長(zhǎng)期耕耘于linux內(nèi)核及操作系統(tǒng)的支撐領(lǐng)域,保障蘇寧云環(huán)境線上海量?kvm?server farm的穩(wěn)定高效運(yùn)行.
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站題目:云平臺(tái)linux服務(wù)器問(wèn)題場(chǎng)景分析思路及工具箱-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://www.rwnh.cn/article24/pjgje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、軟件開發(fā)、靜態(tài)網(wǎng)站、網(wǎng)站內(nèi)鏈、動(dòng)態(tài)網(wǎng)站、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容