删除大日志文件对系统负载的影响

测试方法

1、是用dd命令创建一个100G的大日志文件

2、是用time、dstat、iostat命令秒级监控系统负载已经IO情况的同时,是用rm、truncate -s 1024*1024*4 filename、echo -n命令删除日志文件

3、总结删除100G文件的耗时,系统负载以及内存等的一些影响。

创建100G大日志文件:dd if =/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负载基本没有变化


你可能感兴趣的:(删除大日志文件对系统负载的影响)