Linux 性能监测:介绍

来源:本站
导读:目前正在解读《Linux 性能监测:介绍》的相关信息,《Linux 性能监测:介绍》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《Linux 性能监测:介绍》的详细说明。
简介:本文是关于Linux 性能监测:介绍。

看了某某教程、读了某某手册,按照要求改改某某设置、系统设定、内核参数就认为做到系统优化的想法很傻很天真:)系统优化是一项复杂、繁琐、长期的工作,优化前需要监测、采集、测试、评估,优化后也需要测试、采集、评估、监测,而且是一个长期和持续的过程,不是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上的优化就适合眼下正在运行的系统,不同的系统、不同的硬件、不同的应用优化的重点也不同、优化的方法也不同、优化的参数也不同。性能监测是系统优化过程中重要的一环,如果没有监测、不清楚性能瓶颈在哪里,优化什么呢、怎么优化呢?所以找到性能瓶颈是性能监测的目的,也是系统优化的关键。系统由若干子系统构成,通常修改一个子系统有可能影响到另外一个子系统,甚至会导致整个系统不稳定、崩溃。所以说优化、监测、测试通常是连在一起的,而且是一个循环而且长期的过程,通常监测的子系统有以下这些:

CPUMemoryIONetwork

这些子系统互相依赖,了解这些子系统的特性,监测这些子系统的性能参数以及及时发现可能会出现的瓶颈对系统优化很有帮助。

应用类型

不同的系统用途也不同,要找到性能瓶颈需要知道系统跑的是什么应用、有些什么特点,比如 web server 对系统的要求肯定和 file server 不一样,所以分清不同系统的应用类型很重要,通常应用可以分为两种类型:

IO 相关,IO 相关的应用通常用来处理大量数据,需要大量内存和存储,频繁 IO 操作读写数据,而对 CPU 的要求则较少,大部分时候 CPU 都在等待硬盘,比如,数据库服务器、文件服务器等。CPU 相关,CPU 相关的应用需要使用大量 CPU,比如高并发的 web/mail 服务器、图像/视频处理、科学计算等都可被视作 CPU 相关的应用。

看看实际中的例子,第1个是文件服务器拷贝一个大文件时表现出来的特征,第2个是 CPU 做大量计算时表现出来的特征:

$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------rb swpd free buffcache si so bi bo in cs us sy id wa st04 140 1962724 335516 48523080 0 388 65024 144256302 47 52004 140 1961816 335516 48538680 0 768 65536 143452201 50 48004 140 1960788 335516 48553000 0 768 48640 141257301 50 49004 140 1958528 335516 48572800 01024 65536 141552101 41 57005 140 1957488 335516 48588840 0 768 81412 150460902 50 490
$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------rb swpd free buffcache si so bi bo in cs us sy id wa st40 140 3625096 334256 32665840 0 0 16 1054470 100 000040 140 3625220 334264 32665760 0 0 12 1037448 100 000040 140 3624468 334264 32665800 0 0 148 1160632 100 000040 140 3624468 334264 32665800 0 0 0 1078527 100 000040 140 3624712 334264 32665800 0 0 80 1053501 100 0000

上面两个例子最明显的差别就是 id 一栏,代表 CPU 的空闲率,拷贝文件时候 id 维持在 50% 左右,CPU 大量计算的时候 id 基本为 0。

底线

我们如何知道系统性能是好还是差呢?这需要事先建立一个底线,如果性能监测得到的统计数据跨过这条线,我们就可以说这个系统性能差,如果数据能保持在线内我们就说性能好。建立这样底线需要知道一些理论、额外的负载测试和系统管理员多年的经验。如果自己没有多年的经验,有一个简单划底线的办法就是:把这个底线建立在自己对系统的期望上。自己期望这个系统有个什么样的性能,这是一个底线,如果没有达到这个要求就是性能差。比如,VPSee 上个月有个 RAID0 的测试,期望的测试结果应该是 RAID0 的 IO 性能比单硬盘有显著提高,底线是 RAID0 的 IO 至少要比单硬盘要好(好多少不重要,底线是至少要好),测试结果却发现 RAID0 性能还不如单硬盘,说明性能差,这个时候需要问个为什么,这往往是性能瓶颈所在,经过排查发现是原硬盘有硬件瑕疵造成性能测试结果错误。

监测工具

我们只需要简单的工具就可以对 Linux 的性能进行监测,以下是 VPSee 常用的工具:

工具简单介绍

top

查看进程活动状态以及一些系统状况

vmstat

查看系统状态、硬件和系统信息等

iostat

查看CPU 负载,硬盘状况

sar

综合工具,查看系统状况

mpstat

查看多处理器状况

netstat

查看网络状况

iptraf

实时网络状况监测

tcpdump

抓取网络数据包,详细分析

tcptrace

数据包分析工具

netperf

网络带宽工具

dstat

综合工具,综合了 vmstat, iostat, ifstat, netstat 等多个信息

接下来几天,VPSee 将会陆续介绍一些 Linux 性能监测方面的经验。

提醒:《Linux 性能监测:介绍》最后刷新时间 2024-03-14 01:00:52,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《Linux 性能监测:介绍》该内容的真实性请自行鉴别。