全部博文(19)
分类: LINUX
2010-03-29 20:04:44
# cat /proc/buddyinfo
Node 0, zone DMA 4 4 3 3 3 3 2 0 1 1 2
Node 0, zone Normal 140 90 34 5201 2816 556 29 0 0 0 0
Node 0, zone HighMem 0 2542 1859 253 961 3568 560 19 1 0 0
内存管理的信息,主要用来分析内存碎片的
内存分为三个区域,DMA,Normal,HighMem,如果分页大小为4K,那我们可以分区域来看:
DMA:
有4块1页大小的空间、4块2页大小的空间,3块4页大小的空间,3块8页大小的空间。。。。。。
Normal:
有140块1页大小的空间、90块2页大小的空间。。。。。。
以此类推,越是往后的空间,就越是连续,数目越多,就代表这个大小的连续空间越多,当大的连续空间很少的时候,也就说明,内存碎片已经非常多了。
kswapd和pdfulsh,是linux下运行的两个进程,都是用来回收内存的,linux的内存回收有两种算法,PFRA和LMR:
PFRA的进程就是kswapd,内核有两个值:pages_high和pages_low,当可用内存的值低于pages_low的时候,kswapd就开始回收内存,清理cache,把能放到swap里的丢到swap,直到空闲内存大于pages_high为止。
LMR的进程是pdflush,内核有个参数,vm.dirty_background_ratio,当内存中脏页,也就是dirty占到这个百分比的时候,pdflush会启动,将脏页写回到磁盘。
频繁读写的机器,buffer肯定会比较高,而且bi和bo也会比较高(vmstat中的bi和bo,代表buffer的out和in)。而对于数据库这种纯粹跑io的机器,那cache可能会比较重要。当linux内存紧缺的时候,它会先压缩cache,然后压缩buffer,Inactive的部分也会被写到swap中。其实,用到swap并不代表就说明这个机器到了瓶颈,因为有些用不到的内存页,放到swap里是正常的,只有在swap和内存频繁交互的时候,也就是si和so非常高的时候(vmstat中的si何so,代表swap和内存的交互),才说明内存出了问题。
网络部分
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo:941316791 7326363 0 0 0 0 0 0 941316791 7326363 0 0 0 0 0 0
eth0:336037134 2034238824 0 647 0 0 0 5 3782240752 2181116563 0 0 0 0 0 0
eth1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
sit0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
这个文件我想大家都很熟悉了
比较重要的网络参数都在这里了,包括流量,包数目,错误,丢弃,fifo,fram,压缩,广播等