Hi,大家好我是tom,I am back.今天要给大家讲讲linux系统一些性能相关命令。
1.fdisk 磁盘管理
是一个强大的危险命令,所有涉及磁盘的操作都由该命令完成,包括:新增磁盘、增删改磁盘分区等。
1.fdisk -l 查看磁盘分区情况
Disk /dev/sda: 27.8 GB, 27896315904 bytes
255 heads, 63 sectors/track, 3391 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3260 26185918+ 83 Linux
/dev/sda2 3261 3391 1052257+ 82 Linux swap / Solaris
可以看到,该机器上的硬盘只有一块,命名为/dev/sda,可用27.8G。在fdisk中以柱面为单位计数,该硬盘被分为3391个柱面,每个柱面8225280bytes。(现代硬盘容量超大,导致fdisk运算失准,虽然最后计算的数值是准确的,但是磁头(heads)、分段(sectors)都是不准确的,准确的是柱面数量。)
该磁盘分为两个分区,第一个分区从第一个柱面开始到第3260个柱面结束,占据26185918个数据块,为linux分区……这样的信息在某些紧急情况下是有用的。
2.df -h 查看分区使用情况
-h参数是以人类可理解方式显示磁盘空间。第一列为分区,第二列为分区大小,第三列为使用量,第四列为剩余量,第五列为使用百分比,最后是挂载点。一目了然,反应磁盘使用情况。
其中tmpfs是个特殊分区,可以理解为2.6内核带来的新特性,更高效率的使用内存和虚拟空间的技术。系统偶尔用到,某些特殊应用有需求,比如:oracle。
3.du -h filename显示文件目录大小命令,这里h参数代表以人性化的方式展示
du -sh filename 对于目录,不加-s参数会将目录下所有目录依次列出。加了-s参数后仅仅显示目标目录的大小。
经典用法,du –sk *|sort –nr。看看哪个目录占空间大
4.free命令查看当前内存使用情况
如上图所示,free命令可以显示当前内存使用情况。
Linux有一个特性,被命令执行过的目录结构会暂时存放在buffer中,系统中打开过的文档内容暂时存放在cache中。这两个类似缓存的内容都放在内存中,如果内存没有使用满,则不会释放,当内存不足时,立刻释放。也就是说,查看linux内存是否大量使用,实际上不是看的第一行的used和free,而是看第二行,used减去buffers、cached以后和free加上buffers、cached以后的空间。可以用多次执行ls /dev做实验,验证cache的作用;可以多次man kill做实验,验证buffers。
5.uptime查看cpu load情况
load average:平均负载,被定义为在特定时间间隔内(一个cpu周期)运行队列中的平均进程数。这个数值关系到cpu是否还能胜任。分为1分钟平均值、5分钟平均值和15分钟平均值三个数值。
[root@localhost home]# uptime
11:27:09 up 17:55, 3 users, load average: 0.49, 0.40, 0.37
机器允许突发时间的处理,也就是1分钟load很高,5分钟load较高,15分钟load起伏不大的情况下,说明该次高load为突发情况,可以容忍。但是如果高load持续,导致5分钟和15分钟load都已经超过报警值,这时候需要考虑进行处理。如果15分钟load高于1分钟load,说明高load情况已经得到缓解。
6.vmstat是一个常用的运维命令,可以从进程数(load)、内存、swap、cpu使用率等方面考虑机器的使用情况。
如上图所示,其中参数1代表每一秒钟取一回数值。第一行数值为数据在之前一段时间的平均值,之后每一行列出的为当前的值。
7.top 查看进程对系统资源使用情况
OP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。
TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用、内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。
在top显示视图中,按字母“f”,进入增加信息的选项。上述所有列以字母a到z排列在该视图中,在该视图中按任意字母键,可以增加或者删除top显示的信息。字母为大写且左侧有“*”的选项将在显示视图中显示。选择完毕后,按非字母的任意键退回显示视图。
在显示视图中按小写字母“o”,进入显示顺序选择。对某个字母按其大写键,可以将其向上移动,按小写键,将其向下移动。比如,需要把“%cpu”放置在第二列显示,则连续按动大写字母“K”。
8.使用iostat分析IO性能
iostat可以显示CPU和I/O系统的负载情况及分区状态信息
avg-cpu段:
%user: 在用户级别运行所使用的CPU的百分比.
%nice: nice操作所使用的CPU的百分比.
%sys: 在系统级别(kernel)运行所使用CPU的百分比.
%iowait: CPU等待硬件I/O时,所占用CPU百分比.
%idle: CPU空闲时间的百分比.
Device段:
tps: 每秒钟发送到的I/O请求数.
Blk_read /s: 每秒读取的block数.
Blk_wrtn/s: 每秒写入的block数.
Blk_read: 读入的block总数.
Blk_wrtn: 写入的block总数.
iostat各个参数说明:
-c 仅显示CPU统计信息.与-d选项互斥.
-d 仅显示磁盘统计信息.与-c选项互斥.
-k 以K为单位显示每秒的磁盘请求数,默认单位块.
-p device | ALL
与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名,如:
# iostat -p hda
或显示所有设备
# iostat -p ALL
-t 在输出数据时,打印搜集数据的时间.
-V 打印版本号和帮助信息.
-x 输出扩展信息.
常见用法
iostat -d -k 1 10 #查看TPS和吞吐量信息
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10 #查看cpu状态