linux内存和网络命令详解
linux内存和网络命令详解
iostat查看cpu和硬盘负载
[TOC]
原文链接:https://blog.csdn.net/lqx0405/article/details/44777463
1 硬盘使用方法
iostat -d -k -x vdb 2
参数
-d 表示,显示设备(磁盘)使用状态;
-k某些使用block为单位的列强制使用Kilobytes为单位;
-x ,该选项将用于显示和io相关的扩展数据。
2表示,数据显示每隔2秒刷新一次。
vdb是我的数据盘名称
输出如下
参数 | 解释 |
---|---|
rrqm/s | 每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge) |
wrqm/s | 每秒这个设备相关的写入请求有多少被Merge了 |
rsec/s | 每秒读取的扇区数; |
wsec | 每秒写入的扇区数。 |
rKB/s | 每秒向设备发出的读取请求数 |
wKB/s | 每秒向设备发出的写入请求数 |
avgrq-sz | 平均请求扇区的大小 |
avgqu-sz | 是平均请求队列的长度。毫无疑问,队列长度越短越好。计算方式: 两次读取的rq_ticks(加权毫秒数)的差值除以两次读取的时间间隔时间毫秒数。 |
await | 每一个IO请求的处理的平均时间(单位是微秒毫秒)。 |
r_await | 每个读操作平均所需的时间(单位ms), r_await + w_await 就是磁盘对请求响应时间 |
w_await | 每个写操作平均所需的时间(单位ms) |
svctm | 表示平均每次设备I/O操作的服务时间(以毫秒为单位) |
%util | 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。 |
1.3 通过 pidstat 命令
1 # 命令的含义:展示I/O统计,每秒更新一次
pidstat -d 1
可见其中 grep 命令占用了大量的读IO,之后可根据 PID 查看相关进程信息。
参数 | 翻译 |
---|---|
PID | 进程id |
kB_rd/s | 每秒从磁盘读取的KB |
kB_wr/s | 每秒写入磁盘KB |
kB_ccwr/s | 任务取消的写入磁盘的KB。当任务截断脏的pagecache的时候会发生。 |
COMMAND | task的命令名 |
进程上下文切换
2 cpu使用方法
-c 参数
iostat还可以用来获取cpu部分状态值:
[oracle@rh6 ~]$ iostat -c 1 1
Linux 2.6.32-71.el6.i686 (rh6.cuug.net) 09/03/2014 _i686_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.34 0.00 0.78 13.60 0.00 85.28
常见用法
iostat -d -k 1 10 #查看TPS和吞吐量信息(磁盘读写速度单位为KB)
iostat -d -m 2 #查看TPS和吞吐量信息(磁盘读写速度单位为MB)
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10 #查看cpu状态
二 cryptsetup加密磁盘
参考地址:https://blog.csdn.net/imliuqun123/article/details/81672193
参考地址2:https://blog.csdn.net/weixin_42101155/article/details/109694714
1 示例
##密码复杂度最少8位 大小写 特殊字符
##示例密码: MtVg7zKgl5j0bPPa
## 安装
yum install cryptsetup
## 1 分区加密
### 1.1 先格式化分区创建一个分区2
在加密分区添加密码
fdisk -l
mkfs.ext4 /dev/vdb
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (1,3,4,默认 1):2
Partition 2 is already defined. Delete it before re-adding it.
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
### 1.2 在加密分区添加密码
cryptsetup luksFormat /dev/vdb2
##这将覆盖 /dev/vdb 上的数据,该动作不可取消。
Are you sure? (Type uppercase yes): YES ##这里必须大写
输入 /dev/vdb 的口令:
确认密码:
### 1.3 先挂载到默认路径/dev/mapper/ test2=挂载名字(提示输入密码)。然后在通过test2挂载到实际自定义目录
cryptsetup luksOpen /dev/vdb2 test2
输入 /dev/vdb2 的口令:
ls /dev/mapper/test2
mkfs.ext4 /dev/mapper/test2
mount /dev/mapper/test2 /test2
三 iperf和iftop带宽峰值
3.1 linux查看带宽
第一种iperf3测试带宽
1安装
cd /opt/
wget https://iperf.fr/download/fedora/iperf3-3.1.3-1.fc24.x86_64.rpm
rpm iperf3-3.1.3-1.fc24.x86_64.rpm
2使用方法
iperf3 -c 10.0.3.147 -b 5M -t 20
5M是宽带兆数 -t 20秒
可添加参数-t tcp协议
-u udp协议
-R 下载
-P 127 此处的-P是指启用多线程,127为线程数,范围为1-128,但是使用128则会引起windows端的iperf3程序崩溃,所以最多一台电脑可以模拟127个线程同时连接服务器。观察最后的统计结果,每个线程都有流量,且最后SUM为100M满速即可。
服务端:iperf3 -s
客户端:iperf3 -c 10.0.3.147 -n 1000000
第二种iftop 查看当前网络流量
1 安装
yum install iftop –y
2 命令说明
语法: iftop -h | [-npblNBP] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6]
-h 显示本帮助(Help)信息
-n 不进行主机名(hostName)查找
-N 不将端口号(port Number)转换成对应的服务 to services
-p 混合(Promiscuous)模式(显示网络相关的其他主机信息)
-b 不显示流量图形条(Bar)
-B 以字节(Byte)为单位,显示带宽(Bandwidth);默认以比特(bit)显示的
-i interface 监控的网卡接口(interface)
-f filter code 包统计时,使用过滤码;默认:无,只统计IP包
-F net/mask 显示特定IPv4网段的进出流量(Flow);如# iftop -F 10.10.1.0/24
-G net6/mask6 显示特定IPv6网段的进出流量(Flow)
-l 显示并统计IPv6本地(Local)链接的流量(默认:关)
-P 显示端口(Port)
-m limit 设置显示界面上侧的带宽刻度(liMit)
-c config file 指定配置(Config)文件
-t 使用不带窗口菜单的文本(text)接口
排序:
-o 2s Sort by first column (2s traffic average)
-o 10s Sort by second column (10s traffic average) [default]
-o 40s Sort by third column (40s traffic average)
-o source Sort by source address
-o destination Sort by destination address
The following options are only available in combination with -t
-s num print one single text output afer num seconds, then quit
-L num number of lines to print
3 用法
iftop -i eth0 -n -P -m
iftop界面相关说明
界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
中间的< = =>这两个左右箭头,表示的是流量的方向。
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
四 iotop查看进程io
1 找到io占用高的进程
如果没有该命令,请通过 yum install iotop
进行安装。
iotop -oP
通过这个命令可以看见比较详细信息,如:进程号,磁盘读取量,磁盘写入量,IO百分比,涉及到的命令是什么「两个都是 grep 命令造成的IO读取量大」。
参数 | 详解 |
---|---|
Total DISK READ | 从磁盘中读取的总速率 |
Total DISK WRITE | 往磁盘里写入的总速率 |
Actual DISK READ | 从磁盘中读取的实际速率 |
Actual DISK WRITE | 往磁盘里写入的实际速率 |
TID | 线程ID,按p可转换成进程ID |
PRIO | 优先级 |
USER | 线程所有者 |
DISK READ | 从磁盘中读取的速率 |
DISK WRIT | 往磁盘里写入的速率 |
SWAPIN | swap交换百分比 |
IO> | IO等待所占用的百分比 |
COMMAND | 具体的进程命令 |
–version #显示版本号
-h, –help #显示帮助信息
-o, –only #显示进程或者线程实际上正在做的I/O,而不是全部的,可以随时切换按o
-b, –batch #运行在非交互式的模式
-n NUM, –iter=NUM #在非交互式模式下,设置显示的次数,
-d SEC, –delay=SEC #设置显示的间隔秒数,支持非整数值
-p PID, –pid=PID #只显示指定PID的信息
-u USER, –user=USER #显示指定的用户的进程的信息
-P, –processes #只显示进程,一般为显示所有的线程
-a, –accumulated #显示从iotop启动后每个线程完成了的IO总数
-k, –kilobytes #以千字节显示
-t, –time #在每一行前添加一个当前的时间
-q, –quiet #suppress some lines of header (implies –batch). This option can be specified up to three times to remove header lines.
-q column names are only printed on the first iteration,
-qq column names are never printed,
-qqq the I/O summary is never printed.
2 通过 pidstat 命令
1 # 命令的含义:展示I/O统计,每秒更新一次
pidstat -d 1
可见其中 grep 命令占用了大量的读IO,之后可根据 PID 查看相关进程信息。
- 感谢你赐予我前进的力量