刪除大日誌文件對系統負載的影響

測試方法

1、是用dd命令創建一個100G的大日誌文件

2、是用time、dstat、iostat命令秒級監控系統負載已經IO情況的同時,是用rm、truncate -s 1024*1024*4 filename、echo -n命令刪除日誌文件

3、總結刪除100G文件的耗時,系統負載以及內存等的一些影響。

創建100G大日誌文件:ddif=/dev/zero of=test1.log bs=1G count=100
秒級系統負載監控:nohup dstat -tlamp > dstat.log &  、nohup pidstat -u 1-l > pidstat.log &
IO秒級監控:nohup iostat 1-t > iostat.log &
刪除日誌命令:
測試1:rm logfile
測試2:truncate -s -4G logfile (每次刪除4G大小的文件)
測試3:echo -n > logfile

測試結果

第一次測試:

測試1:rm logfile

time rm test.log
real 0m1.458s
user 0m0.000s
sys 0m1.453s

系統負載情況:

 

IO使用情況:

測試2:truncate -s -4G logfile

time for((i=25;i >= 0;i--))dotruncate -s -4G test2.log;done
real0m1.570s
user0m0.003s
sys0m1.376s

系統負載情況:


IO使用情況:

測試3:echo -n > logfile

 time echo -n > test1.log
real0m1.586s
user0m0.000s
sys0m1.396s

系統負載情況:


IO使用情況:

第二次測試:

測試1:rm logfile

 time rm test.log
real0m3.658s
user0m0.001s
sys0m3.641s

系統負載情況:

 

IO使用情況:

測試2:truncate -s -4G logfile

time for((i=25;i >= 0;i--))dotruncate -s -4G test2.log;done
real    0m4.063s
user    0m0.001s
sys     0m3.998s

系統負載情況:

IO使用情況:

測試3:echo -n > logfile

time echo -n > test1.log
real    0m6.689s
user    0m0.000s
sys     0m6.681s

系統負載情況:


IO使用情況:

第三次測試:

測試1:rm logfile

time rm test.log 
real    0m6.638s
user    0m0.000s
sys     0m6.618s

系統負載情況:

 

IO使用情況:

測試2:truncate -s -4G logfile

time for((i=25;i >= 0;i--))dotruncate -s -4G test2.log;done
real    0m1.753s
user    0m0.001s
sys     0m1.727s

系統負載情況:

IO使用情況:

測試3:echo -n > logfile

time echo -n > test1.log
real    0m1.318s
user    0m0.000s
sys     0m1.345s

系統負載情況:

IO使用情況:

測試總結

第一次測試:

刪除文件方式
CPU IDLE
TPS
Iowait
Blk_wrtn/s
TIME/s
進程佔用CPU
rm logfile 96 10 0 2768 1.458 100
truncate -s -4G logfile 96 27 0.46 6632 1.570  
echo -n > logfile 95 43 0.58 1256 1.586  

 

第二次測試:

刪除文件方式
CPU IDLE
TPS
Iowait
Blk_wrtn/s
TIME/s
進程佔用CPU
rm logfile 96 8 0 280 3.658 100
truncate -s -4G logfile 96 20 0 176 4.063 78
echo -n > logfile 95 126 0 808
6.689
 

 

第三次測試:

刪除文件方式
CPU IDLE
TPS
Iowait
Blk_wrtn/s
TIME/s
進程佔用CPU
rm logfile 96 22 0 6600
6.638
100
truncate -s -4G logfile 95 15 0.07 4744
1.753
 
echo -n > logfile 96 4 0 6640
1.318
 
2017/05/15更新:

turncate測試

turncate -s -1G logflie

#!/bin/bash
fori in `seq 100-10`
do
   truncate -s ${i}G test.log
   sleep1
done

系統負載情況:系統負載基本沒有變化。

IO使用情況:IO負載基本沒有變化

turncate -s -200M logflie

[apps@B2C-TEST-NGINX-002log_receiver]$ time ./trun.sh 
real    8m37.902s
user    0m0.104s
sys     0m4.207s
 
#!/bin/bash
fori in `seq 102400-2000`
do
   truncate -s ${i}M test.log
   sleep1
done

系統負載情況:系統負載基本沒有變化。

IO使用情況:IO負載基本沒有變化


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章