工作中用到的几个linux命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工作中用到的几个linux命令相关的知识,希望对你有一定的参考价值。
最近因为工作需要,新学习了几个linux命令,记录一下。内容参考相关博客
https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html
https://www.cnblogs.com/peida/archive/2012/12/28/2837345.html
http://blog.csdn.net/hguisu/article/details/7493661
iostat:用于监视磁盘的活动
命令格式: iostat [参数] [时间] [次数]
通过iostat方便查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息
- -C 显示CPU使用情况
- -d 显示磁盘使用情况
- -k 以 KB 为单位显示
- -m 以 M 为单位显示
- -N 显示磁盘阵列(LVM) 信息
- -n 显示NFS 使用情况
- -p[磁盘] 显示磁盘和分区的情况
- -t 显示终端和CPU的信息
- -x 显示详细信息
- -V 显示版本信息
iostat 显示所有负载情况
CPU属性:
%user :CPU在用户模式下时间百分比
%nice : CPU处在带NICE值的用户模式下的时间百分比
%system :CPU处在系统模式下的时间百分比
%iowait :CPU等待输入输出完成时间的百分比
%steal :管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
%idle: CPU空闲时间百分比
如果%iowait的值过高,表示硬盘存在I/O瓶颈,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。
DISK属性:
rrqm/s: 每秒需要读取需求的数量
wrqm/s: 每秒需要写入需求的数量
r/s: 每秒完成的读 I/O 设备次数。即 rio/s
w/s: 每秒完成的写 I/O 设备次数。即 wio/s
rsec/s: 每秒读扇区数。即 rsect/s
wsec/s: 每秒写扇区数。即 wsect/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s: 每秒写K字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
avgqu-sz: 平均I/O队列长度。
await: 平均每次设备I/O操作的等待时间 (毫秒)。
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待。
常用 iostat -x /dev/sda1 1 100 (每1s刷新一次,刷新100次)来观看磁盘I/O的详细情况
sar命令是linux系统性能分析工具,可以对文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等等进行分析
命令格式
sar [options] [-A] [-o file] t [n]
其中:
t为采样间隔,n为采样次数,默认值是1;
-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。
options 为命令行选项,sar命令常用选项如下:
-A:所有报告的总和
-P:设定CPU
-u:输出CPU使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-n:汇报网络情况
-q:汇报队列长度和负载信息
-r:输出内存和交换空间的统计信息
-b:显示I/O和传送速率的统计信息
-a:文件读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息
对cpu进行监控
sar -u -o cpuinfo 1 5 (间隔1s,采样5次)
对IO和传送速率进行监控
sar -b 1 5
tps:每秒钟磁盘的 I/O 传输总量
rtps:每秒钟从磁盘读取的数据总量
wtps:每秒钟向磁盘写入的数据总量
bread/s:每秒钟从磁盘读取的数据量,单位为 块/s
bwrtn/s:每秒钟向磁盘写入的数据量,单位为 块/s
怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看
怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看
sed命令:一种在线编辑器,一次对一行命令进行操作,主要用于编辑一个或者多个文件。
sed [-nefr] [动作] 选项与参数: -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 -e :直接在命令列模式上进行 sed 的动作编辑; -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作; -r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法) -i :直接修改读取的文件内容,而不是输出到终端。
动作说明: [n1[,n2]]function n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 10 到 20 行之间进行的,则『 10,20[动作行为] 』 function: a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~ s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
sed命令的使用常常结合正则表达式一同使用。
主要用到了使用sed命令修改文件中某一行内容
sed -i "s/^xxx.*$/yyyy/g" 文件名 (将文件中包含xxx一行修改为yyyy)
以上是关于工作中用到的几个linux命令的主要内容,如果未能解决你的问题,请参考以下文章