Linux积累

DBA 常用Linux命令

2020-11-06  本文已影响0人  轻飘飘D

1.查看CPU某段时间比如7:00到10:00期间的使用率

[oracle@mppay2 ~]$ sar -s 07:00:00 -e 10:00:00
Linux 2.6.32-642.el6.x86_64 (mppay2)    11/06/2020  _x86_64_    (16 CPU)

07:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
07:10:01 AM     all      0.39      0.00      0.81      0.11      0.00     98.68
07:20:02 AM     all      0.36      0.00      0.79      0.11      0.00     98.75
07:30:01 AM     all      0.36      0.00      0.79      0.10      0.00     98.75
...
09:40:01 AM     all      0.39      0.00      0.79      0.11      0.00     98.71
09:50:01 AM     all      0.45      0.00      0.80      0.11      0.00     98.64
Average:        all      0.38      0.00      0.80      0.11      0.00     98.71
cpu属性值说明:

%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。

%idle:CPU空闲时间百分比。

2.汇总连接1521端口的每个客户端IP的连接数
方法1

[oracle@mppay1 ~]$ netstat -apnT|grep 1521 |awk  '{print $5}'|sort -u |grep -v 1521 |grep -v '*' |awk -F ':'  '{print $4}'|uniq -c |sort -nr
      4 10.0.101.177
      2 10.0.101.6
      2 10.0.101.123
      1 10.0.101.7
      1 10.0.101.175
      1 10.0.101.134
      1 

方法2

[oracle@mppay1 ~]$ netstat -anpT|grep 1521 |awk  '{print $5}'|grep -o -E  '1.*:' |awk -F ':' '{print $1}' | sort |uniq -c |sort -nr
      5 10.0.101.177
      2 10.0.101.6
      2 10.0.101.175
      2 10.0.101.123
      1 10.0.101.7
      1 10.0.101.134

3.按监听端口1521来查询连接数据库的客户端IP

[oracle@mppay1 ~]$ netstat -anpT | grep 1521 | awk '{print $5}' | grep -o -E  '1.*:' | awk -F ':' '{print $1}' | sort
10.0.101.123
10.0.101.123
10.0.101.134
10.0.101.175
10.0.101.175
10.0.101.177
10.0.101.177
10.0.101.177
10.0.101.177
10.0.101.177
10.0.101.6
10.0.101.6
10.0.101.7

4.按oracleSID(MPPAY )来查询连接数据库的客户端IP

[oracle@mppay1 ~]$ netstat -anpT | grep MPPAY | awk '{print $5}' | grep -o -E  '1.*:' | awk -F ':' '{print $1}' | sort
10.0.101.123
10.0.101.123
10.0.101.134
10.0.101.177
10.0.101.177
10.0.101.177
10.0.101.177
10.0.101.6
10.0.101.6
10.0.101.7

5.查询连接1521端口的process进程数

[oracle@mppay1 ~]$ netstat -pan |grep 1521 |wc -l
15

6.查询来自某台服务器 10.0.101.6 的连接的process进程数

[oracle@mppay1 ~]$ netstat -pan |grep  10.0.101.6 |wc -l
2

7.删除几天前的文件

find /u01/app/oracle/diag/rdbms/mpmon/MPMON/trace/ -mtime +15 -name "*.*" -exec rm -Rf {} \;

--删除15天前的文件
find /mitac/mds/arch/ -ctime +15 -exec rm -rf {} \;    --常用

--删除以836701255.dbf结尾,15天前被修改过的文件
find /mitac/mds/arch/ -name '*836701255.dbf' -ctime +15 -exec rm -rf {} \;

8.資源消耗監控

CPU占用最多的前10个进程:
ps auxw|head -1;ps auxw|sort -rn -k3|head -10
 
内存消耗最多的前10个进程
ps auxw|head -1;ps auxw|sort -rn -k4|head -10
 
虚拟内存使用最多的前10个进程
ps auxw|head -1;ps auxw|sort -rn -k5|head -10

top命令後再輸入1,可以看到多少个cpu,
再按 shift+p 则按cpu排序,
再按 shift+m 则按内存排序

9.資源消耗查詢

[oracle@mppay2 ~]$ iostat -m   --以兆為單位
Linux 2.6.32-642.el6.x86_64 (mppay2)    11/06/2020  _x86_64_    (16 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.75    0.00    0.81    0.31    0.00   98.12

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda              41.18         1.49         0.38   13526302    3425779
dm-0            131.33         1.49         0.38   13519950    3416590


[oracle@mppay2 ~]$ iostat -k   -- K為單位
Linux 2.6.32-642.el6.x86_64 (mppay2)    11/06/2020  _x86_64_    (16 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.75    0.00    0.81    0.31    0.00   98.12

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              41.18      1521.71       385.40 13850933657 3508007816
dm-0            131.33      1521.00       384.37 13844429749 3498599180

------------------------------------------------------------------------------
cpu属性值说明:
%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。

备注:
如果%iowait的值过高,表示硬盘存在I/O瓶颈
如果%idle值高,表示CPU较空闲
如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量。
如果%idle值持续低于10,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU。

cpu属性值说明:
tps:该设备每秒的传输次数
kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
kB_read:  读取的总数据量;
kB_wrtn:写入的总数量数据量;

10.查看设备使用率(%util)、响应时间(await)

#  【-d 显示磁盘使用情况,-x 显示详细信息 -k 以K為單位, 1 2 每1秒一次,共2次 】
[oracle@mppay2 ~]$ iostat -d -x -k 1 2
Linux 2.6.32-642.el6.x86_64 (mppay2)    11/06/2020  _x86_64_    (16 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               9.38    81.47   18.31   22.87  1521.67   385.40    92.62     0.31    7.60    4.19   10.33   1.67   6.86
dm-0              0.00     0.00   27.60  103.72  1520.96   384.36    29.02     0.09    0.66    5.77    3.84   0.52   6.85

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    48.00    0.00   29.00     0.00   272.00    18.76     0.10    3.38    0.00    3.38   1.69   4.90
dm-0              0.00     0.00    0.00   75.00     0.00   272.00     7.25     0.34    4.56    0.00    4.56   0.65   4.90
----------------------------------------------------------------
说明:
rrqm/s:  每秒进行 merge 的读操作数目.即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目.即 delta(wmerge)/s
%util: 一秒中有百分之多少的时间用于 I/O
如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷
idle小于70% IO压力就较大了,一般读取速度有较多的wait。

11.查看IO信息

--如下 每1秒显示一次,一共显示3次,显示为MB
[oracle@mppay2 ~]$ iostat -d -x -m 1 3
Linux 2.6.32-642.el6.x86_64 (mppay2)    11/06/2020  _x86_64_    (16 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               9.38    81.48   18.31   22.87     1.49     0.38    92.63     0.31    7.60    4.19   10.33   1.67   6.86
dm-0              0.00     0.00   27.61  103.73     1.49     0.38    29.02     0.09    0.66    5.77    3.84   0.52   6.85

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    15.00    0.00   11.00     0.00     0.09    16.00     0.03    2.73    0.00    2.73   1.27   1.40
dm-0              0.00     0.00    0.00   25.00     0.00     0.09     7.04     0.06    2.40    0.00    2.40   0.56   1.40

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     6.00    0.00   44.00     0.00     0.11     5.09     0.12    2.66    0.00    2.66   2.50  11.00
dm-0              0.00     0.00    0.00   50.00     0.00     0.11     4.48     0.13    2.52    0.00    2.52   2.20  11.00

備註:Linux iostat命令详解
iostat常用命令格式如下:
iostat [参数] [时间] [次数]

命令参数说明如下:
-c 显示CPU使用情况
-d 显示磁盘使用情况
-k 以K为单位显示
-m 以M为单位显示
-N 显示磁盘阵列(LVM) 信息
-n 显示NFS使用情况
-p 可以报告出每块磁盘的每个分区的使用情况
-t 显示终端和CPU的信息
-x 显示详细信息

使用实例 1

[oracle@mppay2 ~]$ iostat -x
Linux 2.6.32-642.el6.x86_64 (mppay2)    11/06/2020  _x86_64_    (16 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.75    0.00    0.81    0.31    0.00   98.12

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               9.38    81.47   18.30   22.87  3043.20   770.76    92.62     0.31    7.60    4.19   10.33   1.67   6.86
dm-0              0.00     0.00   27.60  103.72  3041.77   768.70    29.02     0.09    0.66    5.77    3.84   0.52   6.85
------------------------------------------------
输出内容详解:

%user:CPU处在用户模式下的时间百分比
%nice:CPU处在带NICE值的用户模式下的时间百分比
%system:CPU处在系统模式下的时间百分比
%iowait:CPU等待输入输出完成时间的百分比
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
%idle:CPU空闲时间百分比

当然了,iostat命令的重点不是用来看CPU的,重点是用来监测磁盘性能的。

Device:设备名称
rrqm/s:每秒合并到设备的读取请求数
wrqm/s:每秒合并到设备的写请求数
r/s:每秒向磁盘发起的读操作数
w/s:每秒向磁盘发起的写操作数
rkB/s:每秒读K字节数
wkB/s:每秒写K字节数
avgrq-sz:平均每次设备I/O操作的数据大小
avgqu-sz:平均I/O队列长度
await:平均每次设备I/O操作的等待时间 (毫秒),一般地,系统I/O响应时间应该低于5ms,如果大于 10ms就比较大了
r_await:每个读操作平均所需的时间;不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间
w_await:每个写操作平均所需的时间;不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间
svctm:平均每次设备I/O操作的服务时间 (毫秒)(这个数据不可信!)
%util:一秒中有百分之多少的时间用于I/O操作,即被IO消耗的CPU百分比,一般地,如果该参数是100%表示设备已经接近满负荷运行了

使用实例 2

[oracle@mppay2 ~]$ iostat -d -k 2 3
Linux 2.6.32-642.el6.x86_64 (mppay2)    11/06/2020  _x86_64_    (16 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              41.18      1521.58       385.38 13850936425 3508103708
dm-0            131.32      1520.86       384.34 13844432517 3498695072

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               9.00         0.00       168.00          0        336
dm-0             46.50         0.00       168.00          0        336

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               7.00         0.00        46.00          0         92
dm-0             14.00         0.00        46.00          0         92
------------------------------------------------------------------------------
输出内容详解:
tps:每秒I/O数(即IOPS。磁盘连续读和连续写之和)
kB_read/s:每秒从磁盘读取数据大小,单位KB/s
kB_wrtn/s:每秒写入磁盘的数据的大小,单位KB/s
kB_read:从磁盘读出的数据总数,单位KB
kB_wrtn:写入磁盘的的数据总数,单位KB

性能监控指标

[root@dbs2 ~]# iostat -x -k
Linux 2.6.32-642.el6.x86_64 (dbs2.mp)   11/06/2020  _x86_64_    (56 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.94    0.00    0.22    0.02    0.00   98.83

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
scd0              0.00     0.00    0.01    0.00     0.02     0.00     8.06     0.00   57.70   57.70    0.00  57.69   0.03
sda               0.60   472.36   74.95  152.58  4482.59  2499.76    61.38     0.06    0.27    0.32    0.25   0.10   2.26
dm-0              0.00     0.00    0.09    0.61     1.12     2.43    10.21     0.00    0.74    0.47    0.78   0.13   0.01
dm-1              0.00     0.00    0.69    0.71     2.75     2.85     8.00     0.00    1.27    0.32    2.19   0.05   0.01
dm-2              0.00     0.00    0.00    0.06     0.10     0.26    10.91     0.00    3.33    0.31    3.41   0.03   0.00
dm-3              0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00    3.00    4.52    1.06   0.17   0.00
dm-4              0.00     0.00    0.20    1.70     1.80     6.79     9.07     0.00    0.44    0.55    0.42   0.06   0.01
dm-5              0.00     0.00   74.58  617.49  4476.82  2469.96    20.08     0.05    0.04    0.32    0.01   0.03   2.24
dm-6              0.00     0.00    0.00    4.37     0.00    17.48     8.00     0.06   13.52    4.79   13.52   0.00   0.00
------------------------------------------------------------------
在日常运维中到底需要关注哪些字段呢?下面就来说说这篇文章的重点了,我们到底该关注哪些输出内容就可以确定这台服务器是否存在IO性能瓶颈。

%iowait:如果该值较高,表示磁盘存在I/O瓶颈
await:一般地,系统I/O响应时间应该低于5ms,如果大于10ms就比较大了

avgqu-sz:如果I/O请求压力持续超出磁盘处理能力,该值将增加。如果单块磁盘的队列长度持续超过2,
一般认为该磁盘存在I/O性能问题。需要注意的是,如果该磁盘为磁盘阵列虚拟的逻辑驱动器,
需要再将该值除以组成这个逻辑驱动器的实际物理磁盘数目,以获得平均单块硬盘的I/O等待队列长度

%util:一般地,如果该参数是100%表示设备已经接近满负荷运行了
最后,除了关注指标外,我们更需要结合部署的业务进行分析。对于磁盘随机读写频繁的业务,
比如图片存取、数据库、邮件服务器等,此类业务吗,tps才是关键点。对于顺序读写频繁的业务,
需要传输大块数据的,如视频点播、文件同步,关注的是磁盘的吞吐量。

网卡流量(iftop命令)

iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息、TCP/IP连接等

#安装iftop
cd /usr/local/src

 yum install flex byacc  libpcap ncurses ncurses-devel libpcap-devel -y
 wget http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gz
  tar -zxvf iftop-0.17.tar.gz
 cd iftop-0.17
    ./configure
 make
 make install
 iftop --help


[root@xag182 iftop-0.17]# ip addr
    2: ens33:

[root@xag182 iftop-0.17]# iftop -N -n -i ens33
上一篇 下一篇

猜你喜欢

热点阅读