工作中用到的几个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命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux --- 程序后台运行的几种方法

Linux基础-运维工作中必用的几个命令

测试工作中经常用到的几个Linux命令(第一弹)

测试或运维工作过程中最常用的几个linux命令?

[C#.NET 拾遗补漏]02:数组的几个小知识

项目中用到的Linux命令