1、前言

  在linux下开发程序,为了追求高性能,经常需要测试程序的性能,包括cpu、内存、io、网络等等使用情况。liunx下提供了众多命令方便查看各种资源的使用情况。经常用的有ps、top、free、mpstat、iostat、vmstat、netstat。

2、ps、top、free命令

  ps用于查看系统中进程的情况,top能够实时显示系统中各个进程的资源占用状况,free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。

3、mpstat命令

  用于获取 CPU 相关统计信息,命令执行结果如下图所示:

%user         表示处理用户进程所使用 CPU 的百分比。

%nice         表示使用 nice 命令对进程进行降级时 CPU 的百分比。nice 命令更改进程的优先级。

%system    表示内核进程使用的 CPU 百分比  

%iowait      表示等待进行 I/O 所使用的 CPU 时间百分比  

%irq          表示用于处理系统中断的 CPU 百分比  

%soft        表示用于软件中断的 CPU 百分比  

%idle         显示 CPU 的空闲时间

4、iostat命令

  性能评估的一个主要部分就是磁盘性能,iostat 命令提供了存储接口的性能指标。执行结果下图所示:

tps 每秒的传输数量,例如,每秒的 I/O 操作数。注:这只是 I/O 操作的数量;每个操作可能非常大,也可能非常小。

Blk_read/s 每秒从该设备读取的块数。通常,块的大小为 512 字节。这是一个磁盘利用率较好的值。

Blk_wrtn/s 每秒写入该设备的块数

Blk_read 到目前为止从该设备读取的块数。注意,这并不是正在发生的情况。很多块已经从该设备读取。可能现在什么也没有读取。观察一段时间,看是否有变化。

Blk_wrtn 写入该设备的块数。

5、vmstat命令

  显示所有与内存和进程相关信息的命令,执行结果如下所示:

procs 显示进程数

r 等待运行的进程。系统上的负载越多,等待运行 CPU 周期的进程数量越多。

b 不可中断睡眠的进程,也称为“被阻塞”的进程。这些进程最有可能等待 I/O,但也可能等待其他事情。

wpd,free,buff,cache显示了内存值班

wpd 虚拟内存或交换内存的数量(以 KB 为单位)

free 可用物理内存的数量(以 KB 为单位)

buff 用作缓冲区的内存数量(以 KB 为单位)

cache 用作缓存的物理内存数量(以 KB 为单位)

si so 显示了交换活动:

si 将内存从磁盘交换回物理 RAM 的速率(以 KB/秒为单位)

so 将内存从物理 RAM 交换到磁盘的速率(以 KB/秒为单位)

bi,bo显示了 I/O 活动:

bi 系统向块设备发送数据的速率(以块/秒为单位)

bo 系统从块设备中读取数据的速率(以块/秒为单位)

in,cs 显示了系统相关活动:

in 系统每秒接收到的中断数

cs 在进程空间中切换上下文的速率(以数量/秒为单位)

us,sy,id,wa 显示了 CPU 负载的信息:

us 显示花费在用户进程中的 CPU 百分比。Oracle 进程属于这一类。

sy 系统进程(如所有根进程)使用的 CPU 百分比

id 可用 CPU 百分比

wa 花费在“等待 I/O”上的百分比

6、netstat命令

  用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

7、参考网址:

http://blog.csdn.net/evils798/article/details/7524469

http://blog.csdn.net/zhangjay/article/details/6656771

http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html

最新文章

  1. 使用pngquant命令近乎无损压缩PNG图片大小减少70%左右
  2. Java多线程6:synchronized锁定类方法、volatile关键字及其他
  3. Python基础1-Python环境搭建
  4. Android应用程序中应用图标和名字的设置
  5. OQL对象查询语言
  6. Kooboo中怎么写Page Plugin -摘自官方文档
  7. Java 性能优化技巧及实战
  8. 前台 添加引用 iis文件路径
  9. Android UI--ViewPager扩展Tab标签指示
  10. Delphi图像处理 -- 最小值
  11. UC高级编程--实现myls程序
  12. Centos7 ftp环境搭建
  13. 【有意思的BUG】需要停止的进程
  14. [luogu3380][bzoj3196]【模板】二逼平衡树【树套树】
  15. Oracle 11g R2性能优化 10046 event
  16. Tensorflow基本概念
  17. vmEsxi一些使用
  18. Net Core SignalR 测试,可以用于unity、Layair、白鹭引擎、大数据分析平台等高可用消息实时通信器。
  19. MySQL错误代码大全(史上最全)
  20. 收集的几个好用的maven mirror

热门文章

  1. Educational Codeforces Round 14 C. Exponential notation 数字转科学计数法
  2. java execute、executeQuery和executeUpdate之间的区别
  3. RabbitMQ消息交换模式简介
  4. mongodb chunk 大小设置
  5. Jack--10天学会IOS大纲;注意将图片放大观看!
  6. C#编程(四十八)----------列表
  7. 跟踪EBS客户端的IP地址
  8. Eclipse 进入代码定位文件位置
  9. WordPress主题开发:开启文章缩略图功能
  10. Java POI 3.17导出EXCEL并下载(带进度条提示)