簡體   English   中英

Linux中的磁盤空間使用情況分析

[英]Disk Space Usage Profiling in Linux

我在Linux [Red Hat]上運行C ++程序,該程序在硬盤上創建臨時文件以計算其結果。 我需要知道該程序在運行時會從磁盤使用多少空間。 我無法更改源代碼來保留文件,因此我可以在產生結果之前和之后減去Program文件夾的大小。 在這種情況下,是否可以使用任何性能分析工具或命令行來幫助我。

我想,您可以在從終端運行程序之前和之后使用du -h /path/todir

du-估計文件空間使用量

-h,-人類可讀格式的人類可讀打印尺寸(例如1K 234M 2G)

如果您需要其他選擇,請看一下man du

您可以使用/ proc / [pid] / io中維護的統計信息。

從/ proc手冊頁:

此文件包含該過程的I / O統計信息,例如:

              # cat /proc/3828/io
              rchar: 323934931
              wchar: 323929600
              syscr: 632687
              syscw: 632675
              read_bytes: 0
              write_bytes: 323932160
              cancelled_write_bytes: 0

write_bytes: bytes written
                     Attempt to count the number of bytes which this process
                     caused to be sent to the storage layer.

您可以編寫類似的腳本,

#!/bin/bash
c=0
echo $1
rm /tmp/writtenBytes.txt
psout=`ps aux | grep "$1" | grep -v $0 | grep -v grep `
while [[ "$psout" != "" ]]
do
    pid=`echo $psout | awk '{print $2}'`
    cat /proc/$pid/io  | grep write  | grep -v cancelled >> /tmp/writtenBytes.txt   
    psout=`ps aux | grep "$1" | grep -v $0 | grep -v grep`
    echo $psout
    sleep 1
done

運行該腳本為

bash -x getIO.sh "postgres: stats collector"

該腳本將創建文件/tmp/writingBytes.txt,其中包含名為“ postgres:stats collector”的進程寫入的字節數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM