linux下查看内存使用情况
基本内存术语解读
1> free -m
同样是做为缓存,buffers和cache又有啥区别呢?
于是又查了些资料,发现buffers实际应该是叫“缓冲”,其英文解释是:A buffer is something that has yet to be "written" to disk.
就是说,buffers是将要写入硬盘中的数据缓存。
而cache的英文解释:A cache is something that has been "read" from the disk and stored for later use.
就是说,cache是从硬盘或者存储设备读进计算机后缓存在内存中的数据。
想起看《计算机组成原理》的时候,有看到因特尔的cpu与内存之间有cache,这之间好像有什么区别的样子。
继续查资料,发现了page cache 和 buffer cache。简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。
对于cache和buffer,cached是cpu与内存间的,buffer是内存与磁盘间的,都是为了解决速度不对等的问题。
在free中,buffer 是buffer cache的内存,是块设备的读写缓冲区;cache是page cache的内存, 文件系统的cache。
关于buffer与chche,这里就不多说了,最后的链接5里讲得挺清楚了。
这里还有一个名词,Swap,即虚拟内存。当物理内存不够用的时候,就要释放掉一部分空间,以供当前运行程序使用。这些被释放掉的内存的数据就被临时保存在虚拟内存中。但是,并非所有的数据都全被保存,只有那些使用malloc或new生成的对象,他们在文件中并没有相应的“储备”文件,被称为匿名内存数据,需要临时地存进Swap。故Swap又称匿名数据交换空间。在链接3中有其说明。
2> top
动态查看系统的资源使用情况

3> vmstat - Report virtual memory statistics
查看虚拟内存使用情况

参数解读:
| r | The number of processes waiting for run time. | 处于运行队列中的内核线程数目(进程数)。 |
| b | The number of processes in uninterruptible sleep. | 置于等待队列(等待资源、等待输入/输出)的内核线程数目。 处于block队列中不可中断的进程数 |
| swpd | the amount of virtual memory used. | 可用的虚拟交换内存 |
| free | the amount of idle memory. | 空闲内存 |
| buff | the amount of memory used as buffers. | 已用缓冲数目 |
| cache | the amount of memory used as cache. | 已用缓存数目 |
| si | Amount of memory swapped in from disk (/s). | ���磁盘到内存的交换页数目 (单位/S) |
| so | Amount of memory swapped to disk (/s). | 从交换内存到磁盘的交换页数目(单位/S) |
| bi | Blocks received from a block device (blocks/s). | 接收到块设备的块数(块/秒) |
| bo | Blocks sent to a block device (blocks/s). | 发送到块设备的块数(块/秒) |
| in | The number of interrupts per second, including the clock. | 每秒中断数,包括时钟中断 |
| cs | The number of context switches per second. | 每秒上下文切换数 |
| us | Time spent running non-kernel code. (user time, including nice time) | 用户时间,处于用户模式的时间百分比 |
| sy | Time spent running kernel code. (system time) | 系统时间,处于内核模式的时间百分比 |
| id | Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time. | CPU空闲时间,空闲时间百分比 |
| wa | Time spent waiting for IO. Prior to Linux 2.5.41, included in idle. | CPU 空闲时间,在此期间系统有未完成的磁盘/NFS I/O 请求 |
| wt | Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown. |
linux下查看内存使用情况的更多相关文章
- Linux下查看内存使用情况方法总结
Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...
- Linux 下查看内存使用情况方法总结
Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...
- [转载] Linux下查看内存使用情况方法总结
原文: http://9iphp.com/linux/1247.html 强烈推荐 htop.
- linux下查看内存的命令
top能显示系统内存.我们常用的Linux下查看内容的专用工具是free命令. 下面是对内存查看free命令输出内容的解释: total:总计物理内存的大小. used:已使用多大. free:可用有 ...
- 萌新笔记——linux下查看内存的使用情况
windows上有各种软件可以进行"一键加速"之类的操作,释放掉一些内存(虽然我暂时不知道是怎么办到的,有待后续学习).而任务管理器也可以很方便地查看各进程使用的内存情况,如下图: ...
- linux下查看内存的使用情况
windows上有各种软件可以进行“一键加速”之类的操作,释放掉一些内存(虽然我暂时不知道是怎么办到的,有待后续学习).而任务管理器也可以很方便地查看各进程使用的内存情况,如下图: 同样地,linux ...
- linux下查看内存频率,内核函数,cpu频率
查看CPU: cat /proc/cpuinfo # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理 ...
- linux下查看资源使用情况
//查看占用内存最多的前K的程序ps aux | sort -k4nr | head -K //查看占用CPU最多的前K的程序 ps aux | sort -k3nr | head -K
- linux下查看端口占用情况以及服务启动的目录
1.先介绍几个命令: 1. lsof -i:80 查看80端口的占用情况 命令返回结果: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ngin ...
随机推荐
- C# 模拟多文件上传
原地址:http://www.cnblogs.com/greenerycn/archive/2010/05/15/csharp_http_post.html 1.客户端代码 用winform写的 pr ...
- Oracle 查询表的字段注释
SELECT TABLE_NAME, COLUMN_NAME, COMMENTSFROM USER_COL_COMMENTSWHERE TABLE_NAME = 'TB_MENU';
- opencv输出图片像素值
需求:在控制台输出灰度图像的像素值 代码: #include <stdio.h> #include <iostream> #include <opencv2/core/c ...
- MATLAB二维相机标定的解决方案 calibration
第一步,在命令行下面输入cameraCalibrator,启动MATLAB相机标定.相机矫正界面 cameraCalibrator 第二步:拍照.如果你是做相机标定,你应该知道,你需要一些calibr ...
- mongodb副本集的从库永久性设置setSlaveOk
今天在生产环境下面搭了一个mongo的副本集,但开发那边要求副本集读写分离. 坑爹的是每次上副本集的时候都要设置db.getMongo().setSlaveOk()才能访问数据.感觉很是苦逼. 后来开 ...
- msf客户端渗透(五):注册表
先获取到一个session 上传nc到被攻击主机上 建立一个键值 创建一个策略 kali上查看是否成功创建键值 后台开启cmd 查看防火墙的策略 打开防火墙的端口 添加一条防火墙策略 在win7上查看 ...
- 更新linux下python版本
# 安装所有的开发工具包 yum groupinstall -y "Development tools" # 安装其它的必需包 yum install -y zlib-devel ...
- java并发:CopyOnWriteArrayList简单理解
Java集合的快速失败机制 “fail-fast” "fail-fast"是java集合的一种错误检测机制,当多个线程对集合进行结构上的改变的操作时,有可能会产生 fail-fas ...
- 第十章 优先级队列 (a2)基本实现
- linux下的C++项目创建
CMake项目的完整构建 Linux下的CMake项目通常由几个文件夹组成.小伙伴们可以先在自己的电脑上新建一个文件夹,作为你代码的根目录,然后往里面建几个子文件夹,这里并不涉及具体的代码,只是可以作 ...