Linux系统检测

通过检测系统,可以获取一些基准数据,进行分析,根据不同的业务特点系统不同组件的压力,可以有cpu密集型,内存密集型,网络吞吐密集性型,io密集型

  系统检测工具

FreeToppsVmstatSysstat

Free工具的使用:用来查看linux系统中内存和缓存的状态

[root@hky-linux1 ~]# free

             total       used       free     shared    buffers     cached

Mem:        275756     208948      66808          0      16260     125608

-/+ buffers/cache:      67080     208676

Swap:      1028120          0    1028120

Total:物理内存总数

Used:总计分配给缓存使用的数量,其中部分缓存可能未被实际使用

Free:未被分配的内存数量,还有多少可用

Shared:多个进程共享的内存总额

Buffers :是在内存中准备写入磁盘的缓冲区,实现一次性批量写入,避免频繁写入

Cached:是从磁盘中读取的内容在内存中的缓存,为后续读取提供一种快速的访问方式

Mem(第二行):针对os的,bufferscached都是被使用的,所以tatal=used+free

     [root@hky-linux1 ~]# echo $[208948+66808]

275756

-/+ buffers/cached

-buffers/cached:被程序实实在在吃掉的内存

+ buffers/cached:可以挪用的内存

所以total=used3+free3

    [root@hky-linux1 ~]# echo $[208676+67080]

275756

Used2= buffers2+cached2+used3

[root@hky-linux1 ~]# echo $[16260+125608+67080]

208948

Free3=buffers2+cached2+free2

[root@hky-linux1 ~]# echo $[16260+125608+66808]

208676

   不做清除操作:0

   清除pagecache1

   清除dentiresinodes2

   清除dentiresinodespagecache3

清除缓存操作方法

这里不得不介绍一下proc

Proc是一个虚拟文件系统是用户和内核之间实现通信的一种手段

 

   “取值”不做清除操作:0

   清除pagecache1

   清除dentiresinodes2

   清除dentiresinodespagecache3

Proc里的文件不能直接vi编辑,可以通过如下方法编辑

 

Echo [0,1,2,3] >/proc/sys/vm/drop_caches/

下面是我使用proc的实例

[root@hky vm]# free

             total       used       free     shared    buffers     cached

Mem:        255412     143964     111448    0        684      37396

-/+ buffers/cache:     105884     149528

Swap:      1020116          0    1020116

echo 1 > /proc/sys/vm/drop_caches

[root@hky vm]# free

             total       used       free     shared    buffers     cached

Mem:        255412     142912     112500    0        204      36788

-/+ buffers/cache:     105920     149492

Swap:      1020116          0    1020116

Buffer明显变小

echo 2 > /proc/sys/vm/drop_caches

[root@hky vm]# free

             total       used       free     shared    buffers     cached

Mem:        255412     143548     111864      0        588      37164

-/+ buffers/cache:     105796     149616

Swap:      1020116          0    1020116

因为2不清除脏页,所以buffer有所上升

echo 3 > /proc/sys/vm/drop_caches

[root@hky vm]# free

             total       used       free     shared    buffers     cached

Mem:        255412     142808     112604          0        132      36768

-/+ buffers/cache:     105908     149504

Swap:      1020116          0    1020116

看见没3效果最好

 

 

注意:

在执行清除缓存之前,必须手动执行sync

     1 sync命令

运行sync子进程,将所有未写的系统缓冲区写入到磁盘中,包含已经修改的inode,保证文件系统的完整性

     2 sysnc在修改drop_caches的值,可以清除磁盘缓存,释放内存,得出真实的磁盘io

     3 清除磁盘缓存的另外一种方法就是执行syncumount掉对应的磁盘分区设备

[root@hky-linux1 ~]# free;sync;free

             total       used       free     shared    buffers     cached

Mem:        275756     209728      66028    0      16928     125616

-/+ buffers/cache:      67184     208572

Swap:      1028120          0    1028120

             total       used       free     shared    buffers     cached

Mem:        275756     209756      66000   0      16936     125608

-/+ buffers/cache:      67212     208544

Swap:      1028120          0    1028120

[root@hky-linux1 ~]# echo "3" > /proc/sys/vm/drop_caches

[root@hky-linux1 ~]# free

             total       used       free     shared    buffers     cached

Mem:        275756      83112     192644    0        200      19680

-/+ buffers/cache:      63232     212524

Swap:      1028120          0    1028120

新命令:Last | more   //查看都有哪些用户登录

Top  –d  1  –n  1 > file

Strings file

举例看看缓存的作用

[root@hky vm]# time find / >/dev/null

 

real    2m9.407s

user    0m0.231s

sys     0m7.445s

用时2分钟多

Free

[root@hky vm]# free

             total       used       free     shared    buffers     cached

Mem:        255412     231016      24396     0      77620      37452

-/+ buffers/cache:     115944     139468

Swap:      1020116          0    1020116

 

Cached变的很大

现在重复执行

[root@hky vm]# time find / >/dev/null

 

real    0m2.538s

user    0m0.445s

sys     0m1.092s

用时两秒;

echo "3" > /proc/sys/vm/drop_caches

[root@hky vm]# free

             total       used       free     shared    buffers     cached

Mem:        255412     144052     111360          0        188      36800

-/+ buffers/cache:     107064     148348

Swap:      1020116          0    1020116

[root@hky vm]# time find / >/dev/null

 

 

real    1m29.158s

user    0m0.195s

sys     0m5.109s

 

 

  Free命令有用的参数:

 

    引用

    ·-b,-k,-m-g分别按照bytes, kilobytes, megabytes, gigabytes显示结果。

    ·-l区别显示lowhigh内存

    ·-s 每隔若干秒刷新一次