Linux系统检测工具一(Free,Top,ps,Vmstat,Sysstat)

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 每隔若干秒刷新一次

你可能感兴趣的:(top,PS,free,vmstat,sysstat)