`
coolerbaosi
  • 浏览: 728833 次
文章分类
社区版块
存档分类
最新评论

Linux 服务器性能监视工具小结

 
阅读更多

一、服务器性能因素

1、CPU 2、内存 3、磁盘I/O带宽 4、网络I/O带宽

Load:

系统负载指运行队列的平均长度,也就是等待CPU的平均进程数。Load越高说明系统响应越慢,如果load是0,代表进程不需要等待,立刻就能获得cpu运行。可以通过查询文件/proc/loadavg获取系统在前一分钟、前五分钟和前十五分钟的平均负载以及当前运行的进程、系统的进程数和上一次调度运行的进程。

justin@junjun:/proc$ cat/proc/loadavg

0.71 0.70 0.63 1/403 5111

在linux系统中,也可直接通过命令行 “w”或者“uptime”查看,如下:

16:10:22 up 1 day,4:18, 3 users, load average: 0.34, 0.50, 0.52

USER TTY FROM LOGIN@IDLE JCPU PCPU WHAT

justin tty7 :0 Tue11 28:19m 10:15 0.22s gnome-session

justin pts/0 :0.0 Tue11 28:17m2:22 0.00s /bin/bash./jettyctl.sh

justin pts/1 :0.0 16:08 0.00s0.17s 0.00s w

cpu usage:

系统的CPU使用率。

可以用“top”命令动态的显示当前系统进程用户的使用情况。


前五行是系统整体的统计信息。

第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:当前时间;系统运行时间,格式为时:分;当前登录用户数;系统负载,即任务队列的平均长度。

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。

内容如下:Tasks: 175 total进程总数;1 running正在运行的进程数;174 sleeping睡眠的进程数;0 stopped停止的进程数;0 zombie僵尸进程数

Cpu(s):22.0% us用户空间占用CPU百分比

20.7%sy内核空间占用CPU百分比

1.1%ni用户进程空间内改变过优先级的进程占用CPU百分比

52.7%id空闲CPU百分比

3.3%wa等待输入输出的CPU时间百分比

0.0%hi

0.2%si swap in,表示虚拟内存的页导入,即从SWAPDISK交换到RAM

0.0%st swap out,表示虚拟内存的页导出,即从RAM交换到SWAPDISK。

PR:操作系统给进程的安排的优先级。这个值标示进程调度器分配给进程的时间片长度。单位是时钟个数。如果一个Linux系统的时间片是10ms,那么PID是2718的进程在执行了200ms后,才会进行进程切换。

RES:进程占用的物理内存大小

VIRT:物理内存+虚拟内存。

吞吐率:

服务器单位时间内处理的请求数,一般用来描述并发能力,当然谈吞吐率的前提是并发用户数。不同的并发用户数下,吞吐率自然大不相同。单位是“请求数/秒”。吞吐量分为网络吞吐量和事务吞吐量,当作为事务吞吐量时,采用TPS来衡量。目前线上环境Apache没有mod_status模块,不能很方便的查询。

TPS:

服务器每秒处理的事务数。PV在性能测试中的表现形式是以TPS来体现的,两者有一个转换公式,如下:

TPS平均值 =((PV*80%)/(24*60*60*40%))/服务器数量 = pv/s

TPS峰值 =(((PV*80%)/(24*60*60*40%))*1.6) /服务器数量= pv/s ,这个和我们经常说的“2-8原则”贴近。

一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS 。应用系统的处理能力一般要求在10-100左右。

二、系统性能评估参考标准


影响性能因素

评判标准

糟糕

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%

三、性能分析工具和命令

1.常用系统命令

vmstat、sar、iostat、netstat、free、ps、top等

2.常用组合方式

• 用vmstat、sar、iostat检测是否是CPU瓶颈

• 用free、vmstat检测是否是内存瓶颈

• 用iostat检测是否是磁盘I/O瓶颈

• 用netstat检测是否是网络带宽瓶颈

3、用工具进行分析

Ø Vmstat


列表含义:

Procs

r:运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPU。

b:在等待资源的进程数,比如正在等待I/O、或者内存交换等。

Memory

swpd: 虚拟内存使用情况,单位:KB

free: 空闲的内存,单位KB

buff: 被用来做为缓存的内存数,一般对块设备的读写才需要缓冲,单位:KB

cache:表示page cached的内存数量,一般作为文件系统cached,频繁访问的文件都会被cached,如果cache值较大,说明cached的文件数较多,如果此时IO中bi比较小,说明文件系统效率比较好。

Swap

si: 从磁盘交换到内存的交换页数量,单位:KB/秒

so: 从内存交换到磁盘的交换页数量,单位:KB/秒

I/O

bi: 发送到块设备的块数,单位:块/秒

bo: 从块设备接收到的块数,单位:块/秒

System

in: 每秒的中断数,包括时钟中断

cs: 每秒的环境(上下文)切换次数

注意:如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。

如果si,so 长期不等于0,表示内存不足。

如果disk 经常不等于0, 且在 b中的队列大于3, 表示 io性能不好。

cpu

us:用户进程消耗的CPU 时间百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法。

sy:内核进程消耗的CPU时间百分比。Sy的值较高时,说明内核消耗的CPU资源很多。

根据经验,us+sy的参考值为70%,如果us+sy大于 70%说明可能存在CPU资源不足。


Ø Sar分析cpu性能


命令行 sar -u 1 4,结果

列表说明:

%user:用户进程消耗的CPU 时间百分比。

%nice:运行正常进程所消耗的CPU 时间百分比。

%system:系统进程消耗的CPU时间百分比。

%iowaitIO:等待所占用的CPU时间百分比。

%steal:在内存相对紧张的环境下, 被强制等待(involuntary wait)虚拟CPU的时间

%idle:CPU处在空闲状态的时间百分比。

具体参考LinuxCPU利用率计算原理及内核实现( http://ilinuxkernel.com/?p=333)

Ø Free评估内存性能


这个指标跟Dragoon的memory usage完全一致。

Ø I/O性能评估

l iostat命令


各列含义:

tps平均每秒钟的IO请求次数

Blk_read/s表示每秒读取的数据块数。

Blk_wrtn/s表示每秒写入的数据块数。

Blk_read表示读取的所有块数。

Blk_wrtn表示写入的所有块数。

如果Blk_wrtn/s值很大,表示磁盘的写操作很频繁,可以考虑优化磁盘或者优化程序,如果Blk_read/s值很大,表示磁盘直接读取操作很多,可以将读取的数据放入内存中进行操作。

对于这两个选项的值没有一个固定的大小,根据系统应用的不同,会有不同的值,但是有一个规则还是可以遵循的:长期的、超大的数据读写,肯定是不正常的,这种情况一定会影响系统性能。

Ø 网络性能评估

l netstat -antl 查看所有tcp status


注意:可以通过netstat查看是否timewait过多的情况,导致端口不够用,在短连接服务中且大并发情况下,要不系统的net.ipv4.tcp_tw_reuse、net.ipv4.tcp_tw_recycle两个选项打开,允许端口重用。具体这两个属性如何用,移步线上/etc/sysctl.conf文件配置,有注释。

Ø sar查看网卡性能


各列含义:

IFACELAN接口

rxpck/s每秒钟接收的数据包

txpck/s每秒钟发送的数据包

rxbyt/s每秒钟接收的字节数

txbyt/s每秒钟发送的字节数

rxcmp/s每秒钟接收的压缩数据包

txcmp/s每秒钟发送的压缩数据包

rxmcst/s每秒钟接收的多播数据包

其实中间的IFACELAN bond0是虚拟设备。在RH中,多个物理网卡帮定为一个逻辑bonding设备,通过把多个物理网卡帮定为一个逻辑设备,可以实现增加带宽吞吐量,提供冗余。如何进行虚拟化和模式选择,请参考下面两篇文章。

RHLinux下双网卡bondinghttp://www.douban.com/group/topic/2537474/

linuxbonding实现冗余和负载均衡http://hi.baidu.com/nan5715077/blog/item/0cedf2247c06ac2cd5074246.html

sar是一个优秀的一般性能监视工具,它可以输出Linux所完成的几乎所有工作的数据,参考文献:ttp://hi.baidu.com/colddloc/blog/item/d63e16fd6965cc1109244d94.html


分享到:
评论

相关推荐

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等...

    实用全面的linux教程大全

    Linux_系统维护命令小结.ppt Linux下的CPU利用率计算原理详解.docx Linux操作系统中内存buffer和cache的区别.docx Linux服务器环境搭建(设置).pdf linux简明维护手册.pdf Linux系统命令及其使用详解.doc Linux系统...

    Linux服务器安全需要注意到几点事项小结

    ①首先要保证自己的服务器的绝对安全,root密码我一般设置为28位以上,而且某些重要的服务器必须只有几个人知道root密码...后来环境部署成熟以后发现仍然有不少外网ip在扫描和试探,看来不用点工具不行啊;呵呵,DenyHo

    RED HAT LINUX 6大全

    11.4.3 缓冲服务器小结 206 11.5 重要的DNS事实和概念 206 11.5.1 DNS客户和服务器截然不同 206 11.5.2 DNS术语 206 11.5.3 DNS将名字映射到IP地址及反 序操作 207 11.5.4 前区和反区必须保持同步 207 11.5.5 HUP...

    LINUX操作系统(电子教案,参考答案)

    Linux的安装和启动,用户管理,Shell编程技术,进程管理,C编译器,系统扩充,维护与监视,Linux的图形界面,网络的基本概念与设置,Linux在网络资源共享和电子邮件方面的应用,以及DNS、FTP、Web和Proxy服务器等...

    嵌入式Linux C编程入门(第2版) PPT

    第2章 嵌入式linux c语言开发工具 32 2.1 嵌入式linux下c语言概述 32 2.1.1 c语言简史 33 2.1.2 c语言特点 33 2.1.3 嵌入式linux c语言编程环境 34 2.2 嵌入式linux编辑器vi的使用 35 2.2.1 vi的...

    Linux管理员指南

    此相对独立 4 1.3.3 Windows中的“网络邻居”概念 5 1.3.4 Windows中的注册表文件与文本文 件的比较 6 1.3.5 域的概念 6 1.4 小结 7 第2章 按服务器配置安装Linux 8 2.1 安装之前 8 2.1.1 ...

    Linux运维-03-监控专题-day01-zabbix安装与介绍-15-课后作业说明与今日小结.mp4

    Linux运维-03-监控专题-day01-zabbix安装与介绍-15-课后作业说明与今日小结.mp4

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    3.2.1 影响linux服务器性能的因素 73 3.2.2 系统性能评估指标 74 3.2.3 开源监控和评估工具介绍 76 3.3 故障与处理 79 3.3.1 连接数过多导致程序连接报错的原因 79 3.3.2 记录子查询引起的宕机 84 3.3.3 诊断...

    经典书籍:Oracle.10g应用服务器管理与网格计算

    1.7 小结 第2章 Oracle风格的网格计算 2.1 Oracle Linux和网格 2.2 虚拟化、服务供应和RAC支持 2.3 Oracle 10g 的网格计算基础构架 2.4 小结 第3章 Oracle 10g企业管理器的网格控制管理 3.1 强健靠的管理框架 3.2 ...

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    目录 推荐序 前言 第1章 认识Oracle RAC 1.1 RAC产生的背景 1.2 RAC体系结构 1.2.1整体结构 1.2.2物理层次结构 1.2.3逻辑层次结构 1.3 RAC的特点 ...1.4.2高性能 ...1.6本章小结 ...15.5本章小结

    LINUX与UNIX SHELL编程指南(很全)

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

    嵌入式Linux程序设计案例与实验教程(配套光盘)第一部分

    10.3.4 项目小结270 10.4 基于嵌入式与Web Service的智能家居系统270 10.4.1 系统概述271 10.4.2 系统设计272 10.4.3 系统实现286 10.4.4 项目小结297 10.5 基于OMAP的音频与视频处理298 10.5.1 概述298 ...

    嵌入式Linux程序设计案例与实验教程-实例代码

    10.3.4 项目小结270 10.4 基于嵌入式与Web Service的智能家居系统270 10.4.1 系统概述271 10.4.2 系统设计272 10.4.3 系统实现286 10.4.4 项目小结297 10.5 基于OMAP的音频与视频处理298 10.5.1 概述...

    Linux shell编程指南

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

    嵌入式Linux程序设计案例与实验教程(配套光盘)第二部分

    10.3.4 项目小结270 10.4 基于嵌入式与Web Service的智能家居系统270 10.4.1 系统概述271 10.4.2 系统设计272 10.4.3 系统实现286 10.4.4 项目小结297 10.5 基于OMAP的音频与视频处理298 10.5.1 概述298 ...

    绝版经典《Linux与UNIX Shell编程指南》

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

    嵌入式Linux程序设计案例与实验教程(配套光盘)第三部分

    10.3.4 项目小结270 10.4 基于嵌入式与Web Service的智能家居系统270 10.4.1 系统概述271 10.4.2 系统设计272 10.4.3 系统实现286 10.4.4 项目小结297 10.5 基于OMAP的音频与视频处理298 10.5.1 概述298 ...

    Linux与unix shell编程指南

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

    linux shell 编程教程

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

Global site tag (gtag.js) - Google Analytics