欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux查看日志文件寫入速度的4種方法詳解

 更新時(shí)間:2022年06月11日 14:29:01   作者:扣釘日記  
有時(shí),我們需要查看某個(gè)文件的增長(zhǎng)速度,如日志文件,以此來(lái)感受系統(tǒng)的負(fù)載情況,因?yàn)橐话闱闆r下,日志寫入越快,說(shuō)明系統(tǒng)負(fù)載越重。本文總結(jié)了Linux中查看日志增長(zhǎng)速度的幾種方法,需要的可以參考一下

簡(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)寫入的,而在如下的偽文件中,存放著程序打開(kāi)的文件信息,如下:

  • /proc/<pid>/fd:存放著打開(kāi)的文件描述符
  • /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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • shell中case的用法學(xué)習(xí)筆記

    shell中case的用法學(xué)習(xí)筆記

    這篇文章主要為大家介紹shell中的case語(yǔ)句:可以把變量的內(nèi)容與多個(gè)模板進(jìn)行匹配,再根據(jù)成功匹配的模板去決定應(yīng)該執(zhí)行哪部分代碼
    2013-11-11
  • 檢測(cè)網(wǎng)站down掉后自動(dòng)發(fā)信的shell腳本代碼

    檢測(cè)網(wǎng)站down掉后自動(dòng)發(fā)信的shell腳本代碼

    腳本用途:檢測(cè)指定文件中的網(wǎng)站url,當(dāng)一個(gè)網(wǎng)站down掉后,自動(dòng)給指定的郵箱發(fā)信
    2013-02-02
  • shell 1>&2 2>&1 &>filename重定向的含義和區(qū)別

    shell 1>&2 2>&1 &>filename重定向的含義和區(qū)別

    這篇文章主要介紹了shell 1>&2 2>&1 &>filename重定向的含義和區(qū)別,需要的朋友可以參考下
    2015-04-04
  • nginx 下安裝配置 phpadmin報(bào)錯(cuò)的解決方法

    nginx 下安裝配置 phpadmin報(bào)錯(cuò)的解決方法

    下面小編就為大家?guī)?lái)一篇nginx 下安裝配置 phpadmin報(bào)錯(cuò)的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • shell如何記錄用戶的IP與命令詳解

    shell如何記錄用戶的IP與命令詳解

    這篇文章主要給大家介紹了關(guān)于shell是如何記錄用戶的IP與命令的相關(guān)資料,記錄用戶輸入過(guò)的命令使用history命令,而記錄用戶的IP可能稍復(fù)雜一些,需要的朋友們下面跟著小編一起來(lái)看看吧。
    2017-06-06
  • Shell 字符串拼接的實(shí)現(xiàn)示例

    Shell 字符串拼接的實(shí)現(xiàn)示例

    這篇文章主要介紹了Shell 字符串拼接的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • jenkins 實(shí)現(xiàn)shell腳本化定時(shí)執(zhí)行任務(wù)的方法

    jenkins 實(shí)現(xiàn)shell腳本化定時(shí)執(zhí)行任務(wù)的方法

    這篇文章主要介紹了jenkins 實(shí)現(xiàn)shell腳本化定時(shí)執(zhí)行任務(wù),解決訪問(wèn)是jenkins構(gòu)建好之后將jar遠(yuǎn)程推送到生產(chǎn)服務(wù)器,提前退出后臺(tái)執(zhí)行服務(wù)器遠(yuǎn)程腳本,腳本通過(guò)ngnx提前切走nginx代理auction sleep 1800s,半小時(shí)后執(zhí)行更新重啟,具體操作過(guò)程跟隨小編一起看看吧
    2022-01-01
  • shell腳本設(shè)置日志格式的方法

    shell腳本設(shè)置日志格式的方法

    本文給大家分享shell腳本設(shè)置日志格式的相關(guān)知識(shí),設(shè)置日志級(jí)別并輸出對(duì)應(yīng)日志,文中還給大家提到了shell輸出格式化日志信息的腳本,感興趣的朋友跟隨小編一起看看吧
    2022-10-10
  • 一個(gè)shell for循環(huán)與case結(jié)合的腳本(監(jiān)控程序狀態(tài))

    一個(gè)shell for循環(huán)與case結(jié)合的腳本(監(jiān)控程序狀態(tài))

    分享一個(gè)for循環(huán)+case的腳本(監(jiān)控程序狀態(tài)并執(zhí)行相關(guān)操作) ,供大家學(xué)習(xí)參考
    2013-11-11
  • Linux磁盤管理方法介紹

    Linux磁盤管理方法介紹

    這篇文章介紹了Linux磁盤管理的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05

最新評(píng)論