本文介绍工作中常用的几个linux性能查看命令:top,sar,vmstat,iostat,pidstat等。

1.top

  top是最常用的linux性能分析工具,它能够实时的显示系统中各个进程的资源占用情况。top命令的部分输出如下:

  top的交互命令有以下几个:

  (1)f 选择显示的列

  (2)o或O 改变列的显示顺序

  (3)l 切换显示平均负载和启动时间信息

  (4)m 切换显示内存信息

  (5)t 切换显示进程和CPU状态信息

  (6)c 切换显示命令名称和完整命令行

  (7)M 根据驻留内存大小进行排序k

  (8)P 根据CPU使用百分比大小进行排序

  (9)T 根据时间/累计时间进行排序

  (10)h 显示帮助信息

  (11)q 退出

  (12)数字1 显示所有cpu的负载情况

  top命令参数:

  top [-] [d] [p] [q] [c] [C] [S] [s] [n]

  d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
  p 通过指定监控进程ID来仅仅监控某个进程的状态。
  q该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
  S 指定累计模式
  s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
  i 使top不显示任何闲置或者僵死进程。
  c 显示整个命令行而不只是显示命令名

2.sar

  sar周期性的对内存和CPU的使用情况进行采样。基本语法如下:

  sar [option] [<interval> [<count>]]  

  -A:所有报告的总和

  -u:输出CPU使用情况的统计信息

  -v:输出inode、文件和其他内核表的统计信息

  -d:输出每一个块设备的活动信息

  -r:输出内存和交换空间的统计信息

  -b:显示I/O和传送速率的统计信息

  -a:文件读写情况

  -c:输出进程统计信息,每秒创建的进程数

  -R:输出内存页面的统计信息

  -y:终端设备活动情况

  -w:输出系统交换活动信息

  -n:网络的统计信息

  -o:采样结果输出到文件

  例如:

  每10秒采样一次,连续采样3次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件test中 :sar -u -o test 10 3

  查看二进制文件test中的内容:sar -u -f test

  每10秒采样一次,连续采样3次,观察核心表的状态:sar -v 10 3

  每10秒采样一次,连续采样3次,监控内存分页:sar -r 10 3

  每10秒采样一次,连续采样3次,监控内存分页:sar -B 10 3

  每10秒采样一次,连续采样3次,报告缓冲区的使用情况:sar -b 10 3

  每10秒采样一次,连续采样3次,监控进程队列长度和平均负载状态:sar -q 10 3

  每10秒采样一次,连续采样3次,监控系统交换活动信息:sar -W 10 3

  每10秒采样一次,连续采样3次,报告设备使用情况:sar -d 10 3 –p

  要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来

  怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看

  怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看

  怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看

  淘宝有一个改进版的sar叫tsar,可以收集和报告性能和应用的数据,并保持到mysql里。

3.vmstat

  vmstat可以统计CPU、内存使用情况、swap使用情况、I/O操作、上下文切换、时钟中断等信息。

  使用如:vmstat 1 3

4.iostat

  iostat主要查看磁盘io信息。

  tps: 每秒钟发送到的I/O请求数.
  Blk_read /s: 每秒从设备读取的block数.
  Blk_wrtn/s: 每秒向设备写入的block数.
  Blk_read: 读入的block总数.
  Blk_wrtn: 写入的block总数

  使用:iostat -d 1 2

iostat -x 1 2

5.pidstat

  是sysstat的组件之一,可以检测进程和线程的性能情况。

6.ps

  进程查看工具。

  ps表示进程的5种状态码:

  D 不可中断 uninterruptible sleep (usually IO)

  R 运行 runnable (on run queue)

  S 中断 sleeping

  T 停止 traced or stopped

  Z 僵死 a defunct (”zombie”) process

  ps参数:

  a  显示所有进程

  -a 显示同一终端下的所有程序

  -A 显示所有进程

  c  显示进程的真实名称

  -N 反向选择

  -e 等于“-A”

  e  显示环境变量

  f  显示程序间的关系

  -H 显示树状结构

  r  显示当前终端的进程

  T  显示当前终端的所有程序

  u  指定用户的所有进程

  -au 显示较详细的资讯

  -aux 显示所有包含其他使用者的行程

  -C<命令> 列出指定命令的状况

  --lines<行数> 每页显示的行数

  --width<字符数> 每页显示的字符数

  --help 显示帮助信息

  --version 显示版本显示

  更多内容ps --help

  示例:

  1.显示所有进程信息

    ps -A

  2.显示指定用户信息

    ps -u root

  3.显示所有进程信息,包括命令行

    ps -ef

  4.将目前属于您自己这次登入的 PID 与相关信息列示出来

    ps -l

  5.列出目前所有的正在内存当中的程序

    ps -aux

  6.列出类似程序树的程序显示

    ps -axjf

7.netstat

  网络连接状态查看工具。

  用netstat命令去统计服务器目前的网络连接状态
  netstat -n|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}'
  netstat -an | awk '/:80/{print $6}' | sort | uniq -c

8.lsof

  文件描述符查看工具。

  查找打开文件最多的信息如下: 
  lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more
  查看各个进程打开的文件数据量:
   lsof -n |awk '{print $2} " " $3'|sort|uniq -c |sort -nr|more
更多内容,查看各命令的help文档

Linux性能查看与分析--命令行工具介绍的更多相关文章

  1. 监控Linux性能的18个命令行工具

    监控 Linux 性能的 18 个命令行工具 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保 ...

  2. 监控 Linux 性能的 18 个命令行工具

    http://www.oschina.net/translate/command-line-tools-to-monitor-linux-performance 1.Top-Linux进程监控 Lin ...

  3. [转载]监控 Linux 性能的 18 个命令行工具

    转自:http://www.kuqin.com/shuoit/20140219/338066.html 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一 ...

  4. 监控 Linux 性能的 18 个命令行工具[转]

    对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并运行是多么的不容易.基于此原因,我们 ...

  5. 监控 Linux 性能的 18 个命令行工具(转)

    http://www.oschina.net/translate/command-line-tools-to-monitor-linux-performance?cmp&p=1# 1.Top- ...

  6. 监控 Linux 系统的 7 个命令行工具

    监控 Linux 系统的 7 个命令行工具: " 深入 关于Linux最棒的一件事之一是你能深入操作系统,来探索它是如何工作的,并寻找机会来微调性能或诊断问题.这里有一些基本的命令行工具,让 ...

  7. JVM性能监控与故障处理命令行工具

    JDK命令行工具 Sun公司作为”礼物“赠送给JDK使用者的工具: 这些命令行工具大多是jdk/lib/tools.jar类库的一层薄包装,主要功能代码是在tools类库(不属于java的标准API) ...

  8. Linux常用的日志分析命令与工具

    >>基础命令 操作 命令 说明 查看文件的内容 cat -n access.log -n显示行号 分页显示文件 more access.log Enter下一行,空格下一页,F下一屏,B上 ...

  9. Linux下处理JSON的命令行工具:jq---安装

    转自:https://blog.csdn.net/Sunny_much/article/details/50668871      JSON是前端编程经常用到的格式.Linux下也有处理处理JSON的 ...

随机推荐

  1. lucene segment的产生,flush, commit与es的refresh,flush

    1 segment的产生 当索引一个文档时,如果存在空闲的segment(未被其他线程锁定),则取出空闲segment list中的最后一个segment(LIFO),并锁定,将文档索引至该segme ...

  2. Java-使用哈希码比较对象的值

    在一些特殊的情况下使用 package com.tj; import java.io.File; public class MyHash { public static void main(Strin ...

  3. luogu2568 GCD

    先筛法求出 \([1,n]\) 间的素数,然后枚举每个素数.可以发现,对于每个素数 \(x\),它的贡献是 \([1,\lfloor n/x \rfloor]\) 间的有序互质对数. 我们钦定 \(( ...

  4. TOJ 2446: Mint

    2446: Mint Time Limit(Common/Java):2000MS/20000MS     Memory Limit:65536KByteTotal Submit: 4         ...

  5. 2017 Multi-University Training Contest - Team 2

    Regular polygon Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  6. java紧耦合与松耦合关系

    请先看下这个关于松耦合的回答 举个简单的例子啦 有一百人分成10个团队做开发 你写了一个类A,供其他人调用,怎么办? 简单的方法就是把这个类打成jar包,然后给他们 他们就A a = new A(); ...

  7. BZOJ [HNOI2015]亚瑟王 ——期望DP

    发现每张卡牌最后起到作用只和是否打出去了有关. 而且每张牌打出去的概率和之前的牌打出去的情况有关. 所以我们按照牌的顺序进行DP. 然后记录$i$张牌中打出$j$张的概率,然后顺便统计答案. 直接对系 ...

  8. RSA工作原理

    摘自:http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html 一.基础数论 1.互质关系 如果两个正整数,除了1以外,没有 ...

  9. CentOS7下安装Docker-Compose No module named 'requests.packages.urllib3'

    在使用Docker的时候,有一个工具叫做  docker-compose,安装它的前提是要安装pip工具. 1.首先检查Linux有没有安装Python-pip包,直接执行 yum install p ...

  10. maven配置中国下载源【转:http://www.cnblogs.com/libingbin/p/5949483.html】

    修改 配置文件 maven 安装 路径 F:\apache-maven-3.3.9\conf 修改 settings.xml或者在.m2文件夹下新建一个settings.xml 阿里源 <mir ...