哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

查看Linux文件占用進程寫數據

dyquk4xk2p3d ? 來源:良許Linux ? 作者:良許Linux ? 2022-11-04 16:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


	

背景

centos7 在某一段時間監(jiān)控報警磁盤使用率達99%,由于監(jiān)控屬于概要形式信息,沒有快照信息的監(jiān)控(能發(fā)現(xiàn)某進程的I/O,CPU消耗情況),所以需要在服務器上去定時執(zhí)行統(tǒng)計命令獲取快照信息。 需要通過iostat -dx -k去查看avgqu-sz、await、svctm、%util; sar -u查看%iowait、%user; pidstat -d 查看進程I/O讀寫的快照信息

步驟

  • 生成統(tǒng)計信息文件

cat>/tmp/at_task.sh</tmp/pidstat_`date +%F_%T`.log 2>& 1 &
sar -u 2  >/tmp/sar_`date +%F_%T`.log 2>& 1 &
while [ 1 ];do echo -n `date +%T` >>/tmp/iostat_`date +%F` 2>& 1  && iostat -dx -k 1 1 >>/tmp/iostat_`date +%F` 2>& 1; sleep 2; done &
EOF

在while循環(huán)中使用iostat的原因是要輸出date +%T時間,不然只有數據,沒有時間信息也沒有什么用

  • 使用at 命令定時執(zhí)行

at 15:14 today -f /tmp/at_task.sh

出現(xiàn)錯誤

Can't open /var/run/atd.pid to signal atd. No atd running?

重啟atd服務

service atd restart

重新開啟at定時任務

at 15:14 today -f /tmp/at_task.sh
job 2 at Wed Mar 13 1500 2019

得到如下快照信息
iostat

1535Linux 3.10.0-862.14.4.el7.x86_64 (ip-xxxxx)     03/13/2019      _x86_64_        (4 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.12     0.07   17.31   19.41   580.79    90.52    36.57     0.09    2.39    4.42    0.57   0.72   2.63
scd0              0.00     0.00    0.00    0.00     0.00     0.00     6.00     0.00    0.28    0.28    0.00   0.25   0.00

sar

0300 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
0302 PM     all      0.25      0.00      0.38      0.00      0.00     99.37
0304 PM     all      1.25      0.13      0.63      0.00      0.00     97.99
0306 PM     all      0.25      0.13      0.50      0.00      0.00     99.12
0308 PM     all      0.50      0.00      0.50      0.63      0.00     98.37

pidstat

0300 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
0302 PM  5700      9089      0.00      6.00      0.00  uxxx
0302 PM  5700      9140      0.00      6.00      0.00  uxxx
0302 PM  5700      9292      0.00     10.00      0.00  uxxx
0302 PM     0     18084      0.00      2.00      0.00  bash

kill 掉收集信息的命令

ps -ef | egrep 'iostat|sar|pidstat|while' | grep -v grep | awk '{print $2}' | xargs -l kill

但ps -ef | egrep 命令沒有獲取到while循環(huán)的pid,不kill掉該while循環(huán),就會一直對/tmp/iostat_2019-03-13寫數據-_-

通過lsof 沒有定位到打開文件的進程

lsof /tmp/iostat_2019-03-13 
[root@ip-10-186-60-117 ~]#
[root@ip-10-186-60-117 ~]#

通過lsof 可以定位到打開mysql-error.log的進程

lsof /opt/mysql/data/5690/mysql-error.log 
COMMAND   PID                USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
mysqld  12858 actiontech-universe    1w   REG  253,1     6345 20083533 /opt/mysql/data/5690/mysql-error.log
mysqld  12858 actiontech-universe    2w   REG  253,1     6345 20083533 /opt/mysql/data/5690/mysql-error.log

可見,某進程只有一只持有某文件的inode,才可以通過lsof查看文件在被那些進程使用

獲取寫文件的進程號

安裝sysemtap

yum -y install systemtap

SystemTap 是對 Linux 內核監(jiān)控和跟蹤的工具
利用systemtap中的inodewatch.stp工具來查找寫文件的進程號

得到文件的inode

stat -c '%i' /tmp/iostat_2019-03-13 
4210339

獲取文件所在設備的major,minor

ls -al /dev/vda1
brw-rw---- 1 root disk 253, 1 Jan 30 13:57 /dev/vda1

得到寫文件的pid

stap /usr/share/systemtap/examples/io/inodewatch.stp 253 1  4210339

Checking "/lib/modules/3.10.0-862.14.4.el7.x86_64/build/.config" failed with error: No such file or directory
Incorrect version or missing kernel-devel package, use: yum install kernel-devel-3.10.0-862.14.4.el7.x86_64

根據系統(tǒng)內核版本在kernel-devel rpm build for :ScientificLinux7網站上下載相應的kernal-devel包

wget ftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/7.2/x86_64/updates/security/kernel-devel-3.10.0-862.14.4.el7.x86_64.rpm

rpm -ivh kernel-devel-3.10.0-862.14.4.el7.x86_64.rpm

再次執(zhí)行stap

stap /usr/share/systemtap/examples/io/inodewatch.stp 253 1 4210339
......
Missing separate debuginfos, use: debuginfo-install kernel-3.10.0-862.14.4.el7.x86_64
Pass 2: analysis failed. [man error::pass2]
Number of similar error messages suppressed: 2.

安裝debuginfo kernal

debuginfo-install kernel-3.10.0-862.14.4.el7.x86_64
  Verifying  : kernel-debuginfo-common-x86_64-3.10.0-862.14.4.el7.x86_64                        1/3 
  Verifying  : yum-plugin-auto-update-debug-info-1.1.31-50.el7.noarch                           2/3 
  Verifying  : kernel-debuginfo-3.10.0-862.14.4.el7.x86_64                                      3/3 

Installed:
  kernel-debuginfo.x86_64 0:3.10.0-862.14.4.el7
  yum-plugin-auto-update-debug-info.noarch 0:1.1.31-50.el7

Dependency Installed:
  kernel-debuginfo-common-x86_64.x86_64 0:3.10.0-862.14.4.el7

再次執(zhí)行stap

stap /usr/share/systemtap/examples/io/inodewatch.stp 253 1  4210339
ERROR: module version mismatch (#1 SMP Tue Sep 25 1452 CDT 2018 vs #1 SMP Wed Sep 26 1511 UTC 2018), release 3.10.0-862.14.4.el7.x86_64
WARNING: /usr/bin/staprun exited with status: 1

添加 -v查看詳細報錯
stap -v  /usr/share/systemtap/examples/io/inodewatch.stp 253 1  4210339
Pass 1: parsed user script and 471 library scripts using 240276virt/41896res/3368shr/38600data kb, in 300usr/20sys/320real ms.
Pass 2: analyzed script: 2 probes, 12 functions, 8 embeds, 0 globals using 399436virt/196284res/4744shr/197760data kb, in 1540usr/560sys/2106real ms.
Pass 3: using cached /root/.systemtap/cache/f5/stap_f5c0cd780e8a2cac973c9e3ee69fba0c_7030.c
Pass 4: using cached /root/.systemtap/cache/f5/stap_f5c0cd780e8a2cac973c9e3ee69fba0c_7030.ko
Pass 5: starting run.
ERROR: module version mismatch (#1 SMP Tue Sep 25 1452 CDT 2018 vs #1 SMP Wed Sep 26 1511 UTC 2018), release 3.10.0-862.14.4.el7.x86_64
WARNING: /usr/bin/staprun exited with status: 1
Pass 5: run completed in 0usr/10sys/38real ms.
Pass 5: run failed.  [man error::pass5]

修改

vim /usr/src/kernels/3.10.0-862.14.4.el7.x86_64/include/generated/compile.h

#define UTS_VERSION "#1 SMP Tue Sep 25 1452 CDT 2018"
改為
#define UTS_VERSION "#1 SMP Wed Sep 26 1511 UTC 2018"

rm -rf  /root/.systemtap/cache/f5/stap_f5c0cd780e8a2cac973c9e3ee69fba0c_7030*

再次執(zhí)行

stap /usr/share/systemtap/examples/io/inodewatch.stp 253 1 4210339

iostat(4671) vfs_write 0xfd00001/4210339
iostat(4671) vfs_write 0xfd00001/4210339
iostat(4671) vfs_write 0xfd00001/4210339
iostat(4671) vfs_write 0xfd00001/4210339
iostat(4671) vfs_write 0xfd00001/4210339
iostat(4671) vfs_write 0xfd00001/4210339
iostat(4671) vfs_write 0xfd00001/4210339
iostat(4671) vfs_write 0xfd00001/4210339
iostat(4671) vfs_write 0xfd00001/4210339
iostat(4671) vfs_write 0xfd00001/4210339
iostat(4677) vfs_write 0xfd00001/4210339
iostat(4677) vfs_write 0xfd00001/4210339
iostat(4677) vfs_write 0xfd00001/4210339
iostat(4677) vfs_write 0xfd00001/4210339
iostat(4677) vfs_write 0xfd00001/4210339
iostat(4677) vfs_write 0xfd00001/4210339
iostat(4677) vfs_write 0xfd00001/4210339
iostat(4677) vfs_write 0xfd00001/4210339
iostat(4677) vfs_write 0xfd00001/4210339
iostat(4677) vfs_write 0xfd00001/4210339
iostat(4683) vfs_write 0xfd00001/4210339
............

可見已經得到了寫/tmp/iostat_date +%F文件的進程號,但進程號一直在打印出來,因為后臺進程iostat -dx -m 的在while循環(huán)中的,每隔sleep 2s 后就會執(zhí)行一次iostat 產生新的pid。
那要怎樣才能讓iostat -dx -m 停止寫/tmp/iostat_date +%F文件了?除了重啟大法好 $_$

rm -rf 也不能終止后臺的while iostat進程寫文件,刪除了文件后,while循環(huán)又會生成新的文件

rm -rf  /tmp/iostat_2019-03-1*

stat /tmp/iostat_2019-03-1*
  File: ‘/tmp/iostat_2019-03-13’
  Size: 146700    Blocks: 512        IO Block: 4096   regular file
Device: fd01h/64769dInode: 4210339     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-03-14 1626.211888899 +0800
Modify: 2019-03-14 1617.854019793 +0800
Change: 2019-03-14 1617.854019793 +0800

正確做法

cat>/tmp/iostat.sh<while [ 1 ];do echo -n `date +%T` >>/tmp/iostat_`date +%F` 2>& 1  && iostat -dx -m 1 1 >>/tmp/iostat_`date +%F` 2>& 1; sleep 2; done &
EOF

at  now + 1 minute  today
bash /tmp/iostat.sh

#這樣就能方便的獲取到進程號pid了
ps -ef | grep iostat
root      8593     1  0 16:16 pts/2    0000 bash /tmp/iostat.sh
審核編輯:郭婷
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    88

    文章

    11806

    瀏覽量

    219486
  • 服務器
    +關注

    關注

    14

    文章

    10339

    瀏覽量

    91731

原文標題:查看 Linux 文件占用進程寫數據?

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    零基礎玩轉Linux+Ubuntu實戰(zhàn)視頻課程

    是圖形化的“傻瓜相機”,你看到什么就能點什么;Linux 是字符界的“樂高積木”,它沒有界面,所有的硬件、設置、數據,全都被抽象成了一個個文本文件(檔案柜),你需要用命令(積木)去拼裝出想要的功能
    發(fā)表于 04-18 16:16

    飛凌嵌入式ElfBoard-進程進程狀態(tài)

    Linux系統(tǒng)中,進程狀態(tài)對于系統(tǒng)調度、資源分配和管理非常重要,因為它表示了進程當前的執(zhí)行狀況和資源使用情況。在Linux 系統(tǒng)中使用ps -aux 命令可觀察到
    發(fā)表于 03-27 09:12

    飛凌嵌入式ElfBoard-進程的相關信息之父進程和子進程

    的第一個進程,負責啟動和管理其他進程,在大多數Linux系統(tǒng)中,這個進程的PID為1。 父進程查看
    發(fā)表于 03-12 17:12

    飛凌嵌入式ElfBoard-進程之什么是進程

    Linux系統(tǒng)中,有些基本命令能夠查看進程的信息。例如ps、top、pgrep、pstree等;這些命令為用戶提供了查看和管理Linux
    發(fā)表于 03-02 08:49

    Linux進程管理不用愁!這6個工具幫你搞定90%場景

    Linux 系統(tǒng)中,進程是資源分配的基本單位,無論是服務器運維、程序調試還是日常使用,掌握進程管理工具都是必備技能。今天就帶大家梳理 6 個最常用的進程管理工具,從
    的頭像 發(fā)表于 02-04 16:23 ?2680次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>進程</b>管理不用愁!這6個工具幫你搞定90%場景

    飛凌嵌入式ElfBoard-進程之什么是進程

    是靜態(tài)的,不占用系統(tǒng)資源,只有在被執(zhí)行時才會轉換為進程。程序通常有多種表現(xiàn)形式,常見的表現(xiàn)形式如下源代碼形式:使用編程語言(如:C語言)寫成的一系列語句組成,是人類可以閱讀的文本文件;想要執(zhí)行程序,需要
    發(fā)表于 01-26 08:42

    進程通信

    ”,是指用于連接一個讀進程和一個寫進程以實現(xiàn)它們之間通信的一個共享文件,又名pipe文件。向管道(共享文件)提供輸入的發(fā)送
    發(fā)表于 01-15 06:16

    深入Linux內核:進程調度的核心邏輯與實現(xiàn)細節(jié)

    Linux系統(tǒng)中,進程調度就像一位精明的“CPU管理員”——它決定著哪個進程能優(yōu)先使用CPU,多久切換一次進程,如何平衡系統(tǒng)響應速度與資源利用率。小到桌面應用的流暢點擊,大到服務器的
    的頭像 發(fā)表于 12-24 07:05 ?4538次閱讀
    深入<b class='flag-5'>Linux</b>內核:<b class='flag-5'>進程</b>調度的核心邏輯與實現(xiàn)細節(jié)

    解析Linux進程、線程和協(xié)程

    影響其他進程,進程之間是高度隔離的。Linux中,進程進程標識符(PID)唯一標識。 進程
    發(fā)表于 12-22 11:00

    飛凌嵌入式ElfBoard-文件I/O的了解探究之Linux系統(tǒng)的文件管理機制

    文件所有者、文件對應的讀//執(zhí)行權限、文件時間戳(創(chuàng)建時間、更新時間等)、文件類型、文件數據
    發(fā)表于 11-18 08:50

    Linux進程間通信(IPC)全解析:從管道到?Socket,一篇講透

    在?Linux?世界里,進程并非孤立存在。無論是后臺服務協(xié)作(如?Web?服務器與數據庫)、命令行工具聯(lián)動(如ps | grep),還是復雜應用的模塊通信,都離不開 進程間通信(IPC
    的頭像 發(fā)表于 11-14 21:38 ?1.3w次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>進程</b>間通信(IPC)全解析:從管道到?Socket,一篇講透

    飛凌嵌入式ElfBoard-系統(tǒng)應用編程之文件I/O

    Linux系統(tǒng)中,一個進程可以打開的文件數是有限制,并不可以無限制打開很多的文件,因為打開文件占用
    發(fā)表于 10-24 08:57

    【HZ-T536開發(fā)板免費體驗】—— linux 進程創(chuàng)建

    Linux進程通信方式有這幾種: 1。管道 2。信號量 3。消息隊列 4。共享內存 在本帖子中,我會講解fork(),exit()系統(tǒng)調用的實踐。通過應用編程來實現(xiàn)系統(tǒng)調用。 1,進程創(chuàng)建 打開
    發(fā)表于 09-01 20:49

    Linux系統(tǒng)查看及修改設備型號信息,觸覺智能RK3562開發(fā)板演示

    本文介紹Linux系統(tǒng)如何查看及修改設備型號信息的方法,適用于想查看設備型號信息或者想將設備型號信息修改為自己項目的名稱的情況。觸覺智能RK3562開發(fā)板演示。查看設備信息命令如下:c
    的頭像 發(fā)表于 06-19 15:58 ?1179次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)<b class='flag-5'>查看</b>及修改設備型號信息,觸覺智能RK3562開發(fā)板演示

    Linux系統(tǒng)進程管理入門指南

    Linux 系統(tǒng)中,進程是正在運行的程序的實例。理解進程的管理、查看和控制對于系統(tǒng)管理員和開發(fā)者來說非常重要
    的頭像 發(fā)表于 04-22 14:34 ?1295次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)<b class='flag-5'>進程</b>管理入門指南
    蓬安县| 黄大仙区| 南城县| 镇坪县| 绥阳县| 佛山市| 南城县| 右玉县| 黄陵县| 西平县| 昌黎县| 八宿县| 丰城市| 云林县| 英山县| 涿鹿县| 贵阳市| 绥芬河市| 和硕县| 桃源县| 通州区| 辰溪县| 隆化县| 平舆县| 酒泉市| 厦门市| 江孜县| 芮城县| 新蔡县| 嵩明县| 乌审旗| 神农架林区| 巩义市| 新龙县| 东光县| 万载县| 仁寿县| 华池县| 微博| 桦甸市| 通许县|