Linux查看日志文件寫入速度的4種方法詳解
簡(jiǎn)介
有時(shí),我們需要查看某個(gè)文件的增長(zhǎng)速度,如日志文件,以此來(lái)感受系統(tǒng)的負(fù)載情況,因?yàn)橐话闱闆r下,日志寫入越快,說(shuō)明系統(tǒng)負(fù)載越重。
本文就來(lái)介紹下Linux中查看日志增長(zhǎng)速度的幾種方法,如下:
使用dd
首先要介紹的是dd,因?yàn)閐d命令幾乎所有主流發(fā)行版都自帶,無(wú)需額外安裝,如下:
$?tail?-F?app.log?|?dd?of=/dev/null?status=progress 3875840?bytes?(3.9?MB)?copied,?8.228797?s,?471?kB/s
如上,使用tail -F獲取新寫入的數(shù)據(jù),然后用管道將數(shù)據(jù)交給dd,dd將數(shù)據(jù)拷貝到/dev/null,其中status=progress是用來(lái)顯示拷貝速度的,可見(jiàn),我們?nèi)罩镜膶懭胨俣仁?code>471 kB/s。
使用pv
pv命令可以看做是帶進(jìn)度的cp,如下:
$?yum?install?-y?pv $?tail?-F?app.log?|?pv?>/dev/null 2.05MiB?0:00:03?[?330kiB/s]?[???????<=>????????????????????????????????]
原理與dd類似,不過(guò)命令換成了pv。
使用cv命令
由于日志數(shù)據(jù)都是程序(如java)寫入的,而在如下的偽文件中,存放著程序打開的文件信息,如下:
/proc/<pid>/fd:存放著打開的文件描述符/proc/<pid>/fdinfo:存放著文件描述符寫入到的offset
于是定期的讀取這個(gè)offset就可以知道文件的寫入速度了,這也是cv命令的實(shí)現(xiàn)原理,如下:
$?yum?install?-y?cv $?cv?-mc?java [????1]?java?app.log?100.0%?(6.1?GiB?/?6.1?GiB)?390.2?KiB/s #?實(shí)際上,由于Linux上大多數(shù)命令(如cp)沒(méi)自帶進(jìn)度查看功能,而cv就成了很好的補(bǔ)充 #?比如查看cp復(fù)制文件的進(jìn)度 $?cp?app.log?app.log.bak?&?cv?-mc?cp?
新版cv命令已經(jīng)改名為progress,安裝不到cv包時(shí),可試著安裝progress包。
編寫小腳本
通過(guò)寫一個(gè)小腳本,定期觀察文件大小,也可查看文件寫入速度,如下:
#?每秒獲取文件大小,通過(guò)減去上一秒的大小,即可計(jì)算出速度 while?sleep?1;?do??\ ??sz=`stat?-c?%s?app.log`;?\ ??numfmt?--from=auto?--to=iec?$((sz-psz));?\ ??psz=$sz;?\ done 492K 750K 370K
通過(guò)watch再加上觀察,也能大致看出速度,如下:
watch?-d?-t?-n1?du?app.log

watch_du
舉一反三
其實(shí)轉(zhuǎn)念一想,如果我們?cè)谀硞€(gè)函數(shù)中打上日志,然后通過(guò)grep過(guò)濾出此日志,然后我們只要計(jì)算每秒輸出的日志行數(shù),這豈不就是函數(shù)執(zhí)行的QPS了!
#?使用grep過(guò)濾出日志,tr刪除非換行符,所以dd顯示的是換行符的個(gè)數(shù)! $?tail?-F?app.log?\ ????|?grep?--line-buffered?'/order/get'?\ ????|?stdbuf?-oL?tr?-dc?'\n'?\????????????????????? ????|?dd?of=/dev/null?bs=1?status=progress 151?bytes?(151?B)?copied,?15.523018?s,?0.0?kB/s
這里可以通過(guò)151/15計(jì)算出QPS是10,由于沒(méi)有超過(guò)1000,所以看到的是0.0kB/s,如果使用pv命令,會(huì)更簡(jiǎn)單一些,如下:
$?tail?-F?app.log?\ ????|?grep?--line-buffered?'/order/get'?\ ????|?pv?-l?>/dev/null ???? 144??0:00:03?[11.5?/s]?[???????<=>????????????????
到此這篇關(guān)于Linux查看日志文件寫入速度的4種方法詳解的文章就介紹到這了,更多相關(guān)Linux查看日志文件寫入速度內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信