常用机器性能评估工具

作者介绍:杨海春,曾在从兴技术有限公司担任主要设计开发岗,熟悉移动计费系统整体系统架构。目前就职于腾讯计算机系统有限公司,担任工程师职位,熟悉日志计费系统,离线计算等场景。

主要的几大硬件:CPU、内存网络磁盘。本文主要结合本人经验介绍这几大硬件的性能评估工具。

1.CPU性能评估

1.1 vmstat 工具

使用举例:

vmstat 1 10

第一个参数:采样频率

第二个参数:采样次数

结果参数:

--procs--

r:运行和等待CPU时间片的进程数

b:等待资源的进程数。如等待网络I/O

如果r值长期大于CPU的个数, 则CPU遇到瓶颈

--cpu--

us:用户进程消耗CPU时间百分比

sy :内核进程消耗的CPU时间百分比

如上图,跑了几个耗cpu的程序,发现us长期接近100,cpu已经跑满了。这个时候,可能需要考虑优化应用服务算法了。

一般:如果us长时间大于50,需要考虑优化程序算法等。

sy + us > 80 可能存在CPU瓶颈了

1.2 Sar工具

举例:sar -u 1 5

%idle值高,表示CPU较空闲。

如果idle值持续低于10,表示系统中目前的瓶颈在CPU。

如上图,CPU已经达到瓶颈了。

2. 内存性能评估

2.1 free 工具

举例:free –g or free –m

-g:以GB为单位查看

-m:以MB为单位查看

关注第二行:

-buffers/cache=Mem行:used-buffers-cached

+buffers/cache=Mem行:free+buffers+cached

一般第二行 +buffers/cache 表示应用程序可使用的内存。

cached里的内容,一般可以释放给应用程序使用。

释放cached里的内存,看是否可用:

echo 3 > /proc/sys/vm/drop_caches

再查看内存:

发现末完全释放,只释放了一部分。(与上面的图比较)

检查:发现部分共享内存占用,无法释放,应用程序也就无法使用这部分了。

删除目前没有使用的共享内存:

ipcs -m | awk '$6 == 0 {system("ipcrm -m "$2)}'

再执行

echo 3 > /proc/sys/vm/drop_caches

再执行

free –m

cached里的内存又释放了一些。

剩下的,部分的共享内存,应用程序正常使用,无法释放。

所以,真正可用的内存,应该是 2400M左右。

还可以使用cat /proc/meminfo查看

3. 磁盘性能评估

3.1 iostat工具

举例:

 iostat -d -x -k 1 10

-d 表示,显示设备(磁盘)使用状态

-x将用于显示和io相关的扩展数据

-k某些使用block为单位的列强制使用Kilobytes为单位

await I/O请求的平均等待时间,单位毫秒;值越小,性能越好;

svctm I/O请求的平均服务时间,单位毫秒

%util 统计时间内有百分几的时间用于I/O操作。接近100,表示磁盘已经接近满负荷运行了。

如上图,如果await时间远大于svctm,表示等待I/O队列的时候太大,磁盘已经达到瓶颈了。

3.2 Sar工具

举例:

sar –d 1 10

avwait:队列占满时传送请求等待队列空闲的平均时间。

avserv:完成传送请求所需平均时间(毫秒)。

%util: 100磁盘已经繁忙了。

看写入速度,100多M每秒。要提高写入速度,可以换更快的盘。

4. 网卡性能监控

4.1 ss工具

举例:

ss -a -tp -s|grep agent
ss –s

查看现有连接数等:

常用选项:

-a 显示所有的sockets

-l 显示正在监听的

-n 显示数字IP和端口,不通过域名服务器

-p 显示使用socket的对应的程序

-s 打印出统计信息。

5. 整体性能评估工具

5.1 Top工具

举例:

 top

%us:指的是cpu用在用户态程序上的时间;

%sy:指的是cpu用在内核态程序上的时间;

%ni:指的是用在nice优先级调整过的用户态程序上的时间;

%id:指的是cpu空闲时间;

load average:

任务队列的平均长度

1分钟、5分钟、15分钟前到现在平均值

三个值长时间大于CPU核数的话,表示机器很繁忙。上图开了8个耗CPU程序,可以发现,1分钟均值已经越过CPU个数(机器CPU个数为8核)

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

杨海春的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序你好

微服务和传统中间件平台

微服务与部署在中间件平台(esb、应用服务器)上的传统服务有何不同?什么是微服务体系结构模式,它解决了什么问题?本文将讨论所有这些重要的主题,并描述如何管理、管...

972
来自专栏文渊之博

数据库压缩备份提高备份效率

背景     在数据库的备份过程中有很多参数,前几日发现公司的备份数据库job运行的很慢,就去研究了一下,发现在备份程序中都没有启用压缩,加上压缩以后有发现效率...

2059
来自专栏CSDN技术头条

30个4GB内存Rackspace云服务器45分钟内可运行1万个Docker容器

摘要:本文主要讲述了在Rackspace上利用不到45分钟的时间在一个由30个4GB内存的云服务器组成的集群上部署10,000个Nginx 容器。具体步骤:在N...

25510
来自专栏IT技术精选文摘

缓存更新的套路

看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作...

3387
来自专栏漫漫全栈路

ASP.NET MVC学习笔记01初始

技术栈跳来跳去,最后还是选择回归最初。从Asp.Net的WebFrom到PHP到Python的Django,最后还时回到了最熟悉的.net平台。三层之前只做过...

3526
来自专栏美团技术团队

磁盘I/O那些事

背景 计算机硬件性能在过去十年间的发展普遍遵循摩尔定律,通用计算机的CPU主频早已超过3GHz,内存也进入了普及DDR4的时代。然而传统硬盘虽然在存储容量上增长...

61510
来自专栏IT派

利用VPS下载YouTube视频并上传至百度云网盘

前一段时间接了个小任务,要把 YouTube 上的几百个视频下载回来,用百度云网盘分享给公司的同事供学习使用。

4923
来自专栏FreeBuf

一则邮件攻击样本分析分享

通过邮件投递病毒文件是网络攻击常用的一种方式,因此防御邮件攻击是每个安全团队都需要重点考虑的内容。中兴通讯每天都会收到数万封外部邮件,为了及时检测每封邮件是否含...

832
来自专栏企鹅号快讯

可编程逻辑控制器PLC

PLC代表可编程逻辑控制器。它们基本上用于控制工业中的自动化系统。它们是最先进和最简单的控制系统之一,现在正在大规模地取代硬连线逻辑继电器。 ? 在详细介绍PL...

2197
来自专栏数据和云

ASM的备份解析与恢复

编辑说明:《Oracle性能优化与诊断案例精选》出版以来,收到很多读者的来信和评论,我们会通过连载的形式将书中内容公布出来,希望书中内容能够帮助到更多的读者朋友...

3186

扫码关注云+社区