Linux系统性能工具

linux中几款常用的系统性能分析工具:

1.vmstat命令

解释:

虚拟内存信息

用法:

vmstat [options] [delay [count]]

vmstat 2 5

//每2秒刷新一次,一共刷新5次

输出属性:

procs:

r:可运行(正运行或等待运行)进程的个数,和核心数有关

b:处于不可中断睡眠态的进程个数(被阻塞的队列的长度)

memory:

swpd: 交换内存的使用总量

free:空闲物理内存总量

buffer:用于buffer的内存总量

cache:用于cache的内存总量

swap:

si:从磁盘交换进内存的数据速率(kb/s)

//从磁盘到内存 //进内存

so:从内存交换至磁盘的数据速率(kb/s)

//内存写到磁盘 //出内存

io:

bi:从块设备读入数据到系统的速率(kb/s)

bo: 保存数据至块设备的速率

system:

in: interrupts 中断速率,包括时钟

cs: context switch 进程切换速率

cpu:

us:Time spent running non-kernel code

sy: Time spent running kernel code

id: Time spent idle. Linux 2.5.41前,包括IO-wait time.

wa: Time spent waiting for IO. 2.5.41前,包括in idle.

st: Time stolen from a virtual machine. 2.6.11前, unknown.

 

选项:

 

-s:统计内存数据

#:#秒钟显示一次

2.iostat命令

解释:

iostat是I/O statistics(输入/输出统计)的缩写,主要的功能是对系统的磁盘I/O操作进行监视。它的输出主要显示磁盘读写操作的统计信息,同时也会给出CPU使用情况。同vmstat一样,iostat也不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

用法:

示例:iostat 1 10

选项:

-x:显示详细格式的信息

#:每#秒执行一次

# *:每#秒执行一次,执行*次退出

3. dstat命令:

解释:

系统资源统计,代替vmstat,iostat

 

格式:

dstat [-afv] [options..] [delay [count]]

选项:

-c: 显示cpu相关信息

-C #,#,…,total

-d: 显示disk相关信息

-D total,sda,sdb,…

-g:显示page相关统计数据

-m: 显示memory相关统计数据

-n: 显示network相关统计数据

-p: 显示process相关统计数据

-r: 显示io请求相关的统计数据

-s: 显示swapped相关的统计数据

–tcp

–udp

–unix

–raw

–socket

–ipc

–top-cpu:显示最占用CPU的进程

–top-io: 显示最占用io的进程

–top-mem: 显示最占用内存的进程

–top-latency: 显示延迟最大的进程

 

 

影响性能因素:

好–>坏–>糟糕

CPU:

user% + sys%< 70% user% + sys%= 85% user% + sys% >=90%

内存

Swap In(si)=0

Swap Out(so)=0 Per CPU with 10 page/s More Swap In & Swap Out

磁盘:

iowait % < 20% iowait % =35% iowait % >= 50%

解释:

user%:表示CPU处在用户模式下的时间百分比。

%sys:表示CPU处在系统模式下的时间百分比。

%iowait:表示CPU等待输入输出完成时间的百分比。

swap in:即si,表示虚拟内存的页导入,即从SWAP DISK交换到RAM。

swap out:即so,表示虚拟内存的页导出,即从RAM交换到SWAP DISK。

 

总结:

1、linux下性能分析工具还有很多,例如:uptime可以检查CPU的平均负载,free可以查看系统内存的使用状况,ps、top可以配合监控系统的进程运行状态,netstat可以监测网络流量状况等等。

2、系统性能优化是个涉及面广、繁琐、长久的工作,寻找出现性能问题的根源往往是最难的部分,一旦找到出现问题的原因,性能问题也就迎刃而解。因此,解决问题的思路得非常重要。例如,linux系统下的一个网站系统,用户反映,网站访问速度很慢,有时无法访问。针对这个问题,第一步要做的是检测网络,可以通过ping命令检查网站的域名解析是否正常,同时,ping服务器地址的延时是否过大等等,通过这种方式,首先排除网络可能出现的问题;如果网络没有问题,接着进入第二步,对linux系统的内存使用状况进行检查,因为网站响应速度慢,一般跟内存关联比较大,通过free、vmstat等命令判断内存资源是否紧缺,如果内存资源不存在问题,进入第三步,检查系统CPU的负载状况,可以通过sar、vmstat、top等命令的输出综合判断CPU是否存在过载问题,如果CPU没有问题,继续进入第四步,检查系统的磁盘I/O是否存在瓶颈,可以通过iostat、vmstat等命令检查磁盘的读写性能,如果磁盘读写也没有问题,linux系统自身的性能问题基本排除,最后要做的是检查程序本身是否存在问题。通过这样的思路,层层检测,步步排查,性能问题就“无处藏身”,查找出现性能问题的环节也就变得非常简单。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90357

(0)
Pkin°Pkin°
上一篇 2017-12-18
下一篇 2017-12-19

相关推荐

  • 进程的基本动作机制

    进程 我们知道硬件到用户使用分为:硬件,内核(系统),软件。 硬件也就是我们常见到的计算机等等,就相当于我们的身体,内核就相当于是我们的大脑,软件就相当于我们的动作。而进程就相当于我们怎么去实现这些动作。 进程是程序的一个具体实现,同一个程序可以执行多次,每次都可以在内存中开辟独立的空间来装载,从而产生多个进程。不同的进程还可以拥有各自独立的IO接口。 进程…

    Linux干货 2016-06-01
  • Linux常用命令使用方法

    下面以一些常用的Linux命令为例讲解一下Linux命令的使用方法。 1.  ifconfig – 配置网络接口 | 对象 | 参数 | 含义 || —— | —— | —— |网卡名 | / | 查看指定网卡IP的地址,不指定默认查看所有网卡地址网卡名 | up …

    Linux干货 2017-09-01
  • 创建私有CA

      什么是CA   CA(Certificate Authority)证书颁发机构主要负责证书的颁发、管理以及归档和吊销。证书内包含了拥有证书者的姓名、地址、电子邮件帐号、公钥、证书有效期、发放证书的CA、CA的数字签名等信息。证书主要有三大功能:加密、签名、身份验证。 搭建私有CA 一、搭建CA服务器 1、生成密钥 ( ):表示此命令在子进程中运…

    Linux干货 2017-02-07
  • 从Linux小白到大牛——与狼共舞的日子4

    马哥教育网络班21期+第4周课程练习 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -a /etc/skel/ /home/tuser1/ [root@localhost&n…

    Linux干货 2016-08-02
  • 一键搭建mysql集群系列一

    一键自动安装mysql 5.7 shell脚本自动化安装二进制mysql-5.7 本节主要用到四个shell脚本 和 一台资料存储机器(IP:192.168.42.26) install_mysql.sh 自动化安装mysql脚本 ntpdate.sh 时间同步脚本 system_init.sh 系统初始化脚本 yum.sh yum源配置脚本 执行步骤: 1…

    2017-05-13
  • mysql编译安装

    MYSQL编译安装:参考(http://v.youku.com/v_show/id_XMjc4MDUwNjYyOA==.html?from=s1.8-1-1.2&spm=a2h0k.8191407.0.0)(http://oldboy.blog.51cto.com/2561410/1917295)     编译安装mysql,最好…

    Linux干货 2017-06-09