帮你解决系统性能问题的Linux命令

许多系统管理员在遇到性能问题时常简单化处理,依靠硬件的更新换代,更大的内存和更强的CPU来解决问题,事实上,利用一些简单的Linux命令,可以发现许多管理主机的细节问题并且能迅速而简单地解决性能问题。下面为大家一一介绍。

一、top

对许多管理员来说,最新学会的就是TOP命令,它可以显示出当前运行的所有内核任务,并且提供了一些主机状态的统计报告。默认地,TOP命令每隔五分钟自动更新一次这个数据(这个更新间隔是可设置的)。

TOP命令的功能丰富到令人难以置信(估计很少有人使用过一半以上的功能)。一般来说你会以‘h’键开始,就是‘help’(说明文档也非常精彩)。帮助参数可以快速显示出你能从中增加和减去的内容,同时也可以改变排序。你还可以用k来结束进程或者用r标注特别的进程。

Top命令显示当天的正常运行时间、系统负载、处理器的数量、内存的使用率和哪些进程使用了大多数CPU资源(包括每个进程的大量相关信息,例如在线用户和正在执行的命令等)。

二、vmstat

Vmstat命令提供给你一个当前CPU、IO、进程和内存使用率的快照。和TOP命令一样,它自动动态刷新,并且可以用下面的命令执行:
$ vmstat 10

在这里延迟是指两次刷新间隔的以秒为单位的时间,这里是10秒钟。VMSTAT命令会将检查的结果不停刷新显示在屏幕上,直到你用CTRL-C命令结束它(或者你也可以在执行的时候设置一个限制)。这个持续输出的结果有时候被用来导入到文件中用来分析性能趋势,但是我们将找到更好的方式来做这件事情,在文章后面的部分会介绍。

第一列显示的是处理器, r列是待命的处理器,而b列是休眠的处理器。如果你在这里看到好多个待命的处理器,那说明你可能在某个地方遇到了性能瓶颈。第二列显示的是内存:虚拟的,空闲的,缓冲和缓存内存。第三列显示的是交换存储以及具体有多少内存在和磁盘做交换。第四列则是I/O信息,显示了块服务接收和发送的块数据信息。

最后两列显示了系统和CPU相关的信息。系统列显示的是冲突的数量和每秒钟的交换。CPU列是显示了特别有用的信息。每个分列显示了一个CPU时间的百分比。这些分列如下:
US:运行用户任务和代码耗费的时间
SY:运行内核或者系统代码耗费的时间
ID:空闲时间
WA:等待IO耗费的时间
ST:虚拟机占用的时间

VMSTAT命令擅长用来查询CPU使用情况,虽然记住每个参数主要取决于持续的监控,因为对CPU进行短时间的观察你可能无法获知CPU真正的问题所在。你需要查看长期的运行趋势来获得一个确切的CPU性能信息。

三、iostat

我们接下来要讲的命令是IOSTAT。IOSTAT命令(在UBUNTU、红帽和FEDORA系统中都是由SYSSTAT软件包提供的)可以提供三个报告:CPU使用率、设备使用率和网络文件系统使用率。如果你不加任何参数地运行该命令,它会显示所有这三个报告,你可以通过加参数-c、-d和-h来单独显示它们中的一种。

在上面的图中你可以看到它们中的其中两个报告,第一个是CPU使用率,它将各进程占用的CPU用百分比分类列出来了。你能看到用户进程、系统进程、iowait和空闲时间等信息。

第二个报告是关于设备使用率,显示了安装在该主机上的每个设备和一些有用的信息,诸如每秒传输量、数据块读写,并且允许你对有性能问题的设备做标记。你可以通过添加-k或者-m参数来按照千字节或者兆字节显示统计信息,而不是以数据块为单位,这样在某些情况下会更便于查阅和理解。

最后一个报告,没有截图,显示的信息和上面介绍的设备使用率有点相似,只是对象从附件的设备换成了挂载的网络文件系统。

四、free
下一个命令free,可以显示主内存和交换内存的统计量。
你可以通过添加-t参数来显示总的内存,或者通过添加-b参数和-m参数来用字节数显示(默认情况是用千字节为单位)。
FREE命令还可以通过使用-s参数来使其以某个间隔时间持续刷新地运行:
$ free -s 5
这个命令是以每隔5秒钟刷新一次的方式运行FREE命令并输出结果。

五、sar

像我们见过的许多其它工具一样,我们可以用sar命令来收集、查看和记录服务器的性能数据。它比我们见过的任何类似工具都更强大,并且可以收集和显示长时间段的数据。在红帽和UBUNTU上,它通过SYSSTAT包来安装。让我们从不添加任何参数运行SAR命令开始吧:

从这里我们可以看到sar命令的基本输出信息,包括CPU统计(每隔10分钟一次的数据和最后的平均数据)。该信息是从一个以24小时为单位不停收集信息的日统计文件中抓取出来的(这个文件存储在目录/var/log/sa/中,并且被命令为saxx这样的格式,xx代表该数据收集的日期)。另外它还收集关于内存、设备、网络等的统计信息(例如,通过加-b参数可以查看块设备统计信息,-n采查看网络数据,-r参数看内存使用)。你还可以用-A参数来查看所有收集的数据。

你还可以长时间运行sar命令然后将输出数据导入一个文件中来收集数据。要达到这个效果,需要使用参数-o和一个文件名称,要运行该命令的时间间隔(记得收集数据会导致性能变差,所以最好确保这个间隔不要太短)和循环的次数-你要记录的间隔次数。如果你不输入循环次数,则sar命令会一直运行下去,例如:
$ sar -A -o /var/log/sar/sar.log 600 >/dev/null 2>&1 &

这里我们将收集所有数据(-A),记录到文件/var/log/sar/sar.log中,每隔600秒(或者5分钟)收集一次,持续在后台运行。如果接下来我们想要显示这个数据我们可以用sar命令加上-f参数,例如:
$ sar -A -f /var/log/sar/sar.log

这是一个非常基本的sar命令介绍。用sar命令还可以得到许多很有用的数据,这能使得查看主机性能变得更加方便和有效。我建议你去查看一下sar命令的说明文档从而获得更详细的方法来获得你需要的数据。

除此之外,去看一下其它一些工具如munin和collected等也是非常值得的,它们不仅收集关于性能的数据,还能查看应用程序和服务等,包括使用你自己的插件等。想知道更多Linux相关的知识,请进入e良师益友网学习Linux视频教程

时间: 2024-11-08 21:51:43

帮你解决系统性能问题的Linux命令的相关文章

五大Linux简单命令解决系统性能问题

五大Linux简单命令解决系统性能问题 2010-12-17 10:07 James Turnbull TechTarget中国 字号:T | T 管理Linux主机的性能看起来经常象是在变魔术一样.许多管理员在遇到性能问题的时候常常简单化处理,依靠硬件的更新换代,更大的内存和更强的CPU来解决问题.事实上,利用一些简单的命令,可以发现许多管理主机的细节问题并且能迅速而简单地解决性能问题. AD:2014WOT全球软件技术峰会北京站 课程视频发布 管理Linux主机的性能看起来经常象是在变魔术一

linux 系统性能调优 相关命令汇总

linux 系统性能调优 相关命令汇总: 1. ps:查看系统中当前有哪些进程在运行 常用命令有ps aux  | grep  -i  mysql http://www.cnblogs.com/peida/archive/2012/12/19/2824418.html 2. top:动态显示各个程序对cpu,内存的占用,以及负载的情况 http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316399.html 3. io的总体负载,进程的io

sudo命令:解决使用Linux命令行时出现的错误提示

你在使用 Linux 命令行时曾经得到过"拒绝访问(Permission denied)"的错误提示吗?这可能是因为你正在尝试执行一个需要 root 权限的操作.例如,下面的截图展示了当我尝试复制一个二进制文件到一个系统目录时产生的错误. shell 的拒绝访问 那么该怎么解决这个错误?很简单,使用 sudo 命令. 用 sudo 运行命令 用户运行此命令后会被提示输入他们(自己)的登录密码.一旦输入了正确的密码,操作将会成功执行. 毫无疑问,sudo 是任何在 Linux 上使用命令

Linux 命令多到记不住?这个开源项目帮你一网打尽!

本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 最近发现了一个开源项目,简直赞不绝口,喜爱之情,无以言表. 它就是 Linux-command,一个用于快速查找 Linux 命令的项目. 对于大多数技术人员来说,Linux 命令是每天必用的工具.由于命令的多样性和复杂性,我们并不能清楚地记得每个命令的用法,这个时候只能靠搜索,但是很多时候,搜到的东西要么不全,

linux 命令总结(转载)

linux 命令总结(转载) 1. 永久更改ip ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip 2.从Linux上远程显示Windows桌面 安装rdesktop包 3. 手动添加默认网关 以root用户, 执行: route add default gw 网关的IP 想更改网关 vi /etc/sysconfig/network-scripts/ifcfg-eth0 更改GATEWAY  /etc/in

Linux命令自己总结

对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面我们就开始了解一下linux目录结构的相关知识. 当 在使用Linux的时候,如果您通过ls –l / 就会发现,在/下包涵很多的目录,比如etc.usr.var.bin ... ... 等目录,而 在这些目录中,我们进去看看,发现也有很多的目录或文件.文件系统在Linux下看上去就象树形结构,所以

Linux命令随笔

1 Linux命令总结 2 3 man ==命令帮助; 4 help ==命令的帮助(bash的内置命令); 5 ls ==list,查看目录列表; 6 -ld:查看目录权限; 7 -l:(long)长格式显示属性; 8 -F:给不同的文件类型结尾加标识 9 -p:给目录加斜线 10 -r:(reverse)反转排序 11 -t:按时间排序 12 --color=auto 给输出的不同类型文件加不同颜色 13 -a:显示隐藏文件 14 ls -l --time-style=long-iso,显示

Linux 命令行下的好东西

  列举你可能没注意过的好用的 Linux 命令行命令 现在做网站做移动应用最讲究的就是推广了,推广做的好那就成功了一大半,相对的没曝光产品再好也很难做下去.就这个角度而言绝大多数 Linux 命令行的推广简直是烂透了.繁多 Linux 有用极了的命令行工具就静静的躺在你发行版默认安装的包裹里,很多时候只有当你碰到什么问题的时候网上搜一圈才能知道.更蛋疼的是这里面很多东西你一旦知道了就会想我靠原来没这个到底是怎么过的下去.所以这里我会列出一些我用过的一些,大部分发行版默认就有,或者能用包裹管理工

最近用到的Linux命令总结 find route netstat ping watch killall iostat free top ps

http://www.cnblogs.com/peida/tag/每日一linux命令/default.html?page=1 find 如果想在当前目录查找文件名以一个个小写字母开头,最后是4到9加上.log结束的文件:  命令: find . -name "[a-z]*[4-9].log" -print 如在当前目录下查找文件权限位为755的文件,即文件属主可以读.写.执行,其他用户可以读.执行的文件,可以用:   find . -perm 755 -print 如果在查找文件时希