| 关键词: buffers Free cached root 1020116 缓存 内存 used shared total |
通过检测系统,可以获取一些基准数据,进行分析,根据不同的业务特点系统不同组件的压力,可以有cpu密集型,内存密集型,网络吞吐密集性型,io密集型 一 系统检测工具 Free,Top,ps,Vmstat,Sysstat 二 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的,buffers和cached都是被使用的,所以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 清除pagecache:1 清除dentires和inodes:2 清除dentires和inodes和pagecache:3 清除缓存操作方法 这里不得不介绍一下proc Proc是一个虚拟文件系统是用户和内核之间实现通信的一种手段 “取值”不做清除操作:0 清除pagecache:1 清除dentires和inodes:2 清除dentires和inodes和pagecache:3、 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 清除磁盘缓存的另外一种方法就是执行sync后umount掉对应的磁盘分区设备 [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区别显示low和high内存 ·-s 每隔若干秒刷新一次 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|