参考
1.Linux监控指令
2.Linux服务器上监控网络带宽的18个常用命令和linux带宽流量监控查看工具
3.Linux top指令
文章目录
- Linux 命令行工具
- 总体性能监控
- 网络监控
- 网络监控iftop
- 磁盘IO使用情况和性能分析 iostat
Linux 命令行工具
总体性能监控
$ top
直接输入 top,返回下图所示内容,其中,load average: 0.00,0.01,0.05 分别表示最近1分钟、5分钟和15分钟的负载,数值越高负载越大。一般要求最好不要超过cpu的核数。比如,单核就最好小于1。如果看到机器长期出于高于核数的情况,说明机器的cpu排队严重。
%Cput(s)这一行表示的是cpu使用情况,例如cpu的利用率、空闲等信息。如果按下数字键“1”,还可以看到每一个核的情况。
我们还可以查看每一个进程的情况,可以运行的时候加上-p参数:top -p pid即可。如果想按照某种方式排序,只需要按下大写的字母“O”,即可选择排序。
我们还可以按下大写的M:根据内存占用降序排序,
按下大写的P:根据CPU占用降序排序
首先是我们的老面孔。top、vmstat、sar命令,可以初步判断io情况。
bi、bo等在你了解磁盘的类型后才有判断价值。wa已经达到30%,证明cpu耗费在上面的时间太多。
查看应用启动指令以及pid
ps -ef | grep java
网络监控
$ nethogs
安装nethogs:Ubuntu、Debian和Fedora用户可以从默认软件库获得。CentOS用户则需要Epel。
ubuntu或debian(默认软件库)
$ sudo apt-get install nethogs
fedora或centos(来自epel)
$ yum install nethogs -y
交互命令
以下是NetHogs的一些交互命令(键盘快捷键)
m : 修改单位
r : 按流量排序
s : 按发送流量排序
q : 退出命令提示符
网络监控iftop
查看占流量最大的IP
有时候我们发现网络带宽占用非常高,但我们无法判断到底流量来自哪里。这时候,iftop就可以帮上忙了。如图,可以很容易的找出流量来自哪台主机。
安装:
yum install iftop
使用
iftop
iftop -B # 以bytes为单位显示流量(默认是bits)
iftop -m 100M #设置界面最上边的刻度的最大值,刻度分五个大段显示
iftop界面相关说明
界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
中间的=>箭头表示出流量方向, <= 箭头表示入流量方向
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
iftop相关参数
常用的参数
-i设定监测的网卡,如:# iftop -i eth1
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n使host信息默认直接都显示IP,如:# iftop -n
-N使端口信息默认直接都显示端口号,如: # iftop -N
-F显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message),帮助,显示参数信息
-p使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b使流量图形条默认就显示;
-f这个暂时还不太会用,过滤计算包用的;
-P使host信息及端口信息默认就都显示;
-m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
进入iftop画面后的一些操作命令(注意大小写)
按h切换是否显示帮助;
按n切换显示本机的IP或主机名;
按s切换是否显示本机的host信息;
按d切换是否显示远端目标主机的host信息;
按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按N切换显示端口号或端口服务名称;
按S切换是否显示本机的端口信息;
按D切换是否显示远端目标主机的端口信息;
按p切换是否显示端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按T切换是否显示每个连接的总流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
按j或按k可以向上或向下滚动屏幕显示的连接记录;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按<根据左边的本机名或IP排序;
按>根据远端目标主机的主机名或IP排序;
按o切换是否固定只显示当前的连接;
按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
按q退出监控。
常见问题
1、make: yacc: Command not found
make: *** [grammar.c] Error 127
解决方法:apt-get install byacc / yum install byacc
2、configure: error: Curses! Foiled again!
(Can’t find a curses library supporting mvchgat.)
Consider installing ncurses.
解决方法:apt-get install libncurses5-dev / yum install ncurses-devel
磁盘IO使用情况和性能分析 iostat
iostat
使用
iostat
iostat -x 1 # 1秒刷新一次
参数说明:
%util
最重要的判断参数。一般地,如果该参数是100%表示设备已经接近满负荷运行了
Device
表示发生在哪块硬盘。如果你有多快,则会显示多行
avgqu-sz
这个值是请求队列的饱和度,也就是平均请求队列的长度。毫无疑问,队列长度越短越好
await
响应时间应该低于5ms,如果大于10ms就比较大了。这个时间包括了队列时间和服务时间
svctm
表示平均每次设备I/O操作的服务时间。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢
总体来说,%util 代表了硬盘的繁忙程度,是你进行扩容增加配置的指标。而await、avgqu-sz、svctm等是硬盘的性能指标,如果%util正常的情况下反应异常则代表你的磁盘可能存在问题。