TOP: VIRT, SHR, RES, DATA, CODE, SWAP , Free Command
来源:互联网 发布:台湾电视剧星星知我心 编辑:程序博客网 时间:2024/04/29 14:04
文章来源http://www.crazyshell.org/blog/?p=97
写服务端程序,对这几个值深入认识很重要,网上也有很多帖子讲这个概念的,但是大多都是出自几个作者的名下的 转载. 说的也比较笼统, 比如RES=DATA+CODE 但是很多实际情况并不是这样.
从下面的程序来分析这个值的真正含义.
1
int
main(
void
) {
2
3
while
(1) {
4
;
5
}
6
return
0;
7
8
}
运行这个程序后来看看这几个值情况:
VIRT 是这个进程最大能够占用的内存空间,是个额定值,虚拟的!
RES 为进程占用的实际内存的大小, 也就是在内存条中占用的大小(物理内存),当然不包含被置换的大小
%MEM 是进程占用的物理内存的百分比
SHR 是共享内存大小, 也是额定的 表示这个程序可能被其它程序共享到的大小
CODE 进程的代码段在实际内存中占用的空间大小
DATA 是程序运行时需要使用的数据空间(数据+栈),
SWAP 是交换分区的大小,被置换的!
.. 从上面的图可以得出
VIRT(4000) = RES(280) + SWAP(3720)
但是
RES(280) != CODE(4) + DATA(188)
这是为什么呢? 试试下面这段代码:
1
#include <stdio.h>
2
int
main(
int
argc,
const
char
*argv[])
3
{
4
char
* a = (
char
*)
malloc
(104857600);
5
/*memset(a, 0, 104857600);*/
6
while
(1) ;
7
return
0;
8
}
实验发现:
data也是额定的 也就是说 当你malloc时就会显示的大小 ,而RES值不会进行变化, 但是当向malloc的这段内存中进行 memset 或者写数据时 RES 才会趋向于 data+code
1
top -p 1309, 1882 查看某一进程
c 显示全路径
W 写入配置文件
Usage of Top Command: http://www.thegeekstuff.com/2010/01/15-practical-unix-linux-top-command-examples/
free命令可以查看内存占用情况, 可以 使用-k , -m , -g 分别表示以KB, MB, GB显示
比如按照MB显示内存数据:
这台电脑是虚拟机, 内存比较少, 只有1G多点, 从显示的列表来详细说下:
total表示总共内存, used表示使用了多少内存, free表示还有多少内存没被使用, shared表示多个进程共享的内存大小
其中buffers和cached表示磁盘缓冲大小,buffers表示OS用于缓冲写到磁盘的数据, cached表示OS缓冲从磁盘读出来的数据 , 两者都是由OS管理的.
另外与之相应的是
-/+ buffers/cache: 是从一个进程的角度去看的系统的内存占用情况, 其中used表示OS使用了多少内存, free表示OS还有多少内存没有被使用(是从一个进程角度去看的), 和OS角度不同,OS认为已经使用了126M, 还有875M没有使用. 但是从进程角度看buffers/cached是为了提高I/O性能的, 当进程需要使用内存的时候,这块内存是可以很快被回收的. 所以从进程角度看可用内存=OS(free) + buffers + cached
swap为交换分区大小, 一般used为0, 但是OS调度策略是和swappiness大小相关的, 默认值为60, 它的意思是若OS要使用内存, 有60%的概率使用swap, 所以有时候内存还有空间但是OS会用swap大小比如下面这张情况:
所以若尽可能的使用内存可以降低swappiness大小,可通过修改/etc/sysctl.conf文件, 在之后追加一行vm.swappiness=10
若机器不能重启的话, 可以通过
sysctl -w vm.swappiness=10 这个命令来临时修改.
- TOP: VIRT, SHR, RES, DATA, CODE, SWAP , Free Command
- linux top VIRT RES SHR SWAP DATA内存参数详解
- linux top VIRT RES SHR SWAP DATA内存参数详解
- linux top VIRT RES SHR SWAP DATA内存参数详解
- Linux top VIRT RES SHR SWAP DATA内存参数详解
- Linux top VIRT RES SHR SWAP DATA内存参数详解
- linux top VIRT RES SHR SWAP DATA内存参数详解
- Top命令VIRT,RES,SHR,DATA的含义
- linux top命令VIRT,RES,SHR,DATA的含义
- Top命令VIRT,RES,SHR,DATA的含义
- Top命令VIRT,RES,SHR,DATA的含义
- Top命令VIRT,RES,SHR,DATA的含义
- linux top命令VIRT,RES,SHR,DATA的含义(转)
- linux top命令VIRT,RES,SHR,DATA的含义
- linux top命令VIRT,RES,SHR,DATA的含义
- linux top命令VIRT,RES,SHR,DATA的含义
- linux top命令VIRT,RES,SHR,DATA的含义
- linux top命令VIRT,RES,SHR,DATA的含义
- 用反射得到类名和属性值
- 利用posix_fadvise清理系统中的文件缓存
- Flex tree默认展开第一项和所有项
- Tutorial: OpenCV haartraining (Rapid Object Detection With A Cascade of Boosted Classifiers Based on
- android Download the Source Tree
- TOP: VIRT, SHR, RES, DATA, CODE, SWAP , Free Command
- IOS天气预报(美化)
- AIX - 1
- android五大布局
- Table sort,html table 列排序
- AIX
- 资源类网站收集
- 有关likely和unlikely
- Android开发之文件下载,状态时显示下载进度,点击自动安装