Linux运维不可不知的性能监控和调试工具

时间:2021-09-20 10:34:42

Linux运维不可不知的性能监控和调试工具

1 nagios

Nagios是一个开源监控解决方案,我觉得他可以监控一切 ,可以看一下我以前的文章:NAGIOS

2 ps #用来查看程序的运行情况

ps -ef |grep svr.py|grep -v grep |awk '{print $2}' #查看svr.py的进程pid号
14554

dongwm@linux-b8lh:~> ps -e -o pid,args --forest #层次结构中的进程ID

3 free
#查看系统的物理(RAM)和交换内存的信息

dongwm@linux-b8lh:~> free -mto #MB值显示,显示总计
total used free shared buffers cached
Mem: 3196 2947 249 0 264 1436
Swap: 2053 88 1965
Total: 5250 3035 2215
4 top
#显示所有正在运行的进程的信息,类似于windows的资源管理器 详细的清参看:
关于top命令的研究5 pmap #显示一个给定的进程的内存映射

dongwm@linux-b8lh:~> pmap 14443
14443: bash
START SIZE RSS PSS DIRTY SWAP PERM MAPPING
08048000 580K 476K 74K 0K 0K r-xp /bin/bash
080d9000 4K 4K 4K 4K 0K r--p /bin/bash
080da000 8K 8K 8K 8K 0K rw-p /bin/bash
080dc000 1076K 976K 976K 976K 0K rw-p [heap]
b744c000 8K 8K 8K 8K 0K rw-p [anon]
b744e000 252K 32K 6K 0K 0K r--p
/usr/lib/locale/zh_CN.utf8/LC_CTYPE
b748d000 1344K 24K 2K 0K 0K r--p
/usr/lib/locale/zh_CN.utf8/LC_COLLATELinux运维不可不知的性能监控和调试工具

6 nestat
#显示各种网络相关信息,如网络连接,路由表,接口统计等,这个很常用,比如判断某程序的端口是否在监听

dongwm@linux-b8lh:~> sudo /bin/netstat -ap |grep ssh #-a 表示所有端口
-p显示pid
root's password:
tcp 0 0 linux-b8lh.site:59073 mta1:61002 ESTABLISHED
29323/ssh
tcp 0 0 linux-b8lh.site:35252 10.14.22.26:61300 ESTABLISHED
11986/ssh
tcp 0 0 linux-b8lh.site:57146 mta1:61002 ESTABLISHED
9138/ssh
tcp 0 0 linux-b8lh.site:32997 10.14.22.26:61300 ESTABLISHED
15122/ssh
tcp 0 0 linux-b8lh.site:45807 10.14.22.26:61300 ESTABLISHED
29240/ssh
tcp 0 0 linux-b8lh.site:35865 mta1:61002 ESTABLISHED
28751/ssh
unix 2 [ ACC ] STREAM LISTENING 13182 2929/gnome-keyring-
/tmp/keyring-TMukPL/ssh
unix 3 [ ] STREAM CONNECTED 607118 29323/ssh
unix 3 [ ] STREAM CONNECTED 607117 29326/sshfs
unix 3 [ ] STREAM CONNECTED 608427 29240/ssh
unix 3 [ ] STREAM CONNECTED 608426 29244/sshfs

dongwm@linux-b8lh:~>
sudo /bin/netstat -tunlp|grep name #我常用的命令

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program
name
tcp 0 0 172.16.180.1:53 0.0.0.0:* LISTEN 5160/named
tcp 0 0 172.16.110.1:53 0.0.0.0:* LISTEN 5160/named
tcp 0 0 192.168.8.46:53 0.0.0.0:* LISTEN 5160/named
tcp 0 0 127.0.0.2:53 0.0.0.0:* LISTEN 5160/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 5160/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 5160/named
udp 0 0 172.16.180.1:53 0.0.0.0:* 5160/named
udp 0 0 172.16.110.1:53 0.0.0.0:* 5160/named
udp 0 0 192.168.8.46:53 0.0.0.0:* 5160/named
udp 0 0 127.0.0.2:53 0.0.0.0:* 5160/named
udp 0 0 127.0.0.1:53 0.0.0.0:*

dongwm@linux-b8lh:~> netstat -r #显示路由信息类似于'route
-n'的输出
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
172.16.180.0 * 255.255.255.0 U 0 0 0 vmnet8
172.16.110.0 * 255.255.255.0 U 0 0 0 vmnet1
192.168.8.0 * 255.255.255.0 U 0 0 0 eth3
link-local * 255.255.0.0 U 0 0 0 eth3
loopback * 255.0.0.0 U 0 0 0 lo
default 192.168.8.254 0.0.0.0 UG 0 0 0 eth3
7 IPTraf

dongwm@linux-b8lh:~> sudo zypper install iptraf

网络流量实时监控工具,可以监控所有的流量,IP流量,按协议分的流量,还可以设置过滤器等

启动需要root权限,一个图形化的工具,可以抓包,报告网卡流量情况,网卡数据包个数等,我也比较喜欢它来判断一些网络问题

8 htop

dongwm@linux-b8lh:~> sudo zypper install htop

彩色字体的top ,支持鼠标点击,对cpu使用情况。内存使用情况,当前负载情况等都直接显示,替代了top

9 dstat

dongwm@linux-b8lh:~> sudo zypper install dstat

#彩色字体的vmstat

dongwm@linux-b8lh:~> dstat -a
----total-cpu-usage---- -dsk/total- -net/total- ---paging--
---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int
csw
25 2 72 0 0 0| 43k 75k| 0 0 | 107B 839B|2066 7231
25 2 72 0 0 0| 0 40k|1328B 0 | 0 0 |2029 6175
27 2 70 1 0 0| 0 20k|2245B 1231B| 0 0 |2191 6545
28 1 70 0 0 0| 0 0 |1610B 0 | 0 0 |2243 6815
25 2 72 0 0 0| 0 104k|1224B 0 | 0 0 |2075 6610

10 Strace #i like it
用于调试和故障排除Linux环境下的可执行文件的执行。 它显示了系统调用的进程所使用的过程中收到的信号,常用 *2
不会这个基本不要作运维了

#strace + 可执行程序

注:想要特定一个系统调用 使用‘-e’

11 lsof
#卸载移动存储时经常提示device busy,也可能误删了一个正在打开的文件,lsof(list open
files)是一个列出当前系统打开文件的工具.应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个
列表有助于系统监测以及排错

dongwm@linux-b8lh:~> lsof -a -u dongwm -d txt
#查看所属root用户进程所打开的文件类型为txt的文件
dongwm@linux-b8lh:~> lsof /home
#在卸载文件系统时,如果该文件系统中有任何打开的文件,操作通常将会失败。那么通过lsof可以找出那些进程在使用当前要卸载的文件系统

WebQQ\xe5 24090 dongwm 2u REG 8,7 7247256 12320783
/home/dongwm/.xsession-errors
notificat 27261 dongwm mem REG 8,7 1512 12982245
/home/dongwm/.local/share/mime/mime.cache
bluefish 29204 dongwm cwd DIR 8,7 12288 12320769
/home/dongwm
bluefish 29204 dongwm DEL REG 8,7 12321855
/home/dongwm/.local/share/gvfs-metadata/home-4be5293d.log
bluefish 29204 dongwm DEL REG 8,7 12320866
/home/dongwm/.local/share/gvfs-metadata/home


复文件:当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,那么我们就可以通过lsof从/proc目录下恢复该文件的内
容。思路就是lsof|grep 这个删除了的文件,如果输出了项,记住pid 和第4列的“数字+字母”其中的数字,然后, cat
/proc/那个pid/fd/那个数字 > 删掉的文件 就恢复了

12 w
#查看当前登录系统的用户

13 uptime
#查看当前负载的命令

dongwm@linux-b8lh:~> uptime
17:52 已启动1 天 8:41,6 个用户,平均负载:0.42, 0.26, 0.24
14 vnstat
#用来统计网络流量

dongwm@linux-b8lh:~> sudo zypper install vnstat

vnstati -i eth0 – -months – -output /dir/month.png
#每月的流量统计图,做成定时任务+html显示就更OK了

dongwm@linux-b8lh:~> sudo vnstat-create-db eth0
root's password:
Error: Unable to read database "/var/lib/vnstat/eth0".
Info: -> A new database has been created.
dongwm@linux-b8lh:~> vnstat --top10 #创建数据库信息,查看流量前10

15 ss #socket流量状态情况,
我喜欢

dongwm@linux-b8lh:~> sudo /usr/sbin/ss -o state established
#查看建立连接的socket
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 192.168.8.46:59073 60.2.235.195:61002
timer:(keepalive,60min,0)
0 0 192.168.8.46:52996 112.95.243.28:http
0 0 192.168.8.46:51066 128.121.22.144:http
0 0 192.168.8.46:38547 112.95.240.222:http
0 0 192.168.8.46:49295 74.125.71.154:http
0 0 192.168.8.46:46500 10.14.22.26:61300
timer:(keepalive,48min,0)

dongwm@linux-b8lh:~> sudo /usr/sbin/ss -l #显示所有的监听套接字
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 3 172.16.180.1:domain *:*
0 3 172.16.110.1:domain *:*
0 3 192.168.8.46:domain *:*
0 3 127.0.0.2:domain *:*
0 3 127.0.0.1:domain *:*
0 128 127.0.0.1:ipp *:*
0 128 ::1:ipp :::*
0 128 127.0.0.1:953 *:*
0 50 *:mysql *:*
0 128 :::sunrpc :::*
0 128 *:sunrpc *:*
0 128 :::http

dongwm@linux-b8lh:~> sudo /usr/sbin/ss -s
#显示根据类型划分的总数值统计
Total: 719 (kernel 769)
TCP: 62 (estab 5, closed 16, orphaned 4, synrecv 0, timewait 2/0),
ports 42

Transport Total IP IPv6
* 769 - -
RAW 1 1 0
UDP 12 10 2
TCP 46 43 3
INET 59 54 5
FRAG 0 0 0

Linux运维不可不知的性能监控和调试工具的更多相关文章

  1. Linux运维入门到高级全套常用要点

    Linux运维入门到高级全套常用要点 目 录 1. Linux 入门篇................................................................. ...

  2. Linux运维之道(大量经典案例、问题分析,运维案头书,红帽推荐)

    Linux运维之道(大量经典案例.问题分析,运维案头书,红帽推荐) 丁明一 编   ISBN 978-7-121-21877-4 2014年1月出版 定价:69.00元 448页 16开 编辑推荐 1 ...

  3. linux运维的认知及RHEL7 Unix/Linux 系统 介绍和安装

    如何成为一个优秀的linux运维人员?      如果你有机会和条件:环境能够磨练一个人的能力和意志.      大胆的做你从未做过的项目,每一个项目都是对自身的极大提升.      有好的环境资源不 ...

  4. linux运维中的命令梳理(一)

    在linux日常运维中,我们平时会用到很多常规的操作命令. 下面对常用命令进行梳理: 命令行日常系快捷键(不分大小写)CTRL + A 移动光标到行首CTRL + E 移动光标到行末CTRL + U ...

  5. Linux运维工程师成长必经之路

    本路线图是从0基础开始,全方位由浅入深,按照多年Linux培训经验和优秀教学方法制定的学习思路和学习方法,路线图包括初级入门.中级进阶.高级提升和资深冲刺四个阶段,每阶段对应着不同优秀的课程和学习方法 ...

  6. linux上安装shell编辑器与linux运维面试题

    分两个部分 一.安装B-shell解释器 安装cygwin  Eclipse要找到安装的bin路径 https://cygwin.com 二.安装编辑器shellEd 下载可以得到一个:net.sou ...

  7. 13款Linux运维比较实用的工具

    本文介绍几款Linux运维比较实用的工具,希望对Linux管理员有所帮助. 1.查看进程占用带宽情况-Nethogs Nethogs 是一个终端下的网络流量监控工具可以直观的显示每个进程占用的带宽. ...

  8. 如何掌握并提高linux运维技能

    初中级Linux运维人员们系统学习并迅速掌握Linux的运维实战技能.学习路线大纲如下: 入门基础篇 系统运维篇 Web运维篇 数据库运维篇 集群实战篇 运维监控篇 第一篇:Linux入门(安装.配置 ...

  9. linux 运维,代理,acl控制访问

    运维概述:运行 & 维护,Operation & MaintanceIT运维.业务运维.日常管理运维采用相关的方法.手段.技术.制度.流程和文档等,对IT运行环境.IT业务系统和IT运 ...

随机推荐

  1. Docker Compose to CoreOS

    taken from https://docs.docker.com/compose/install/ the only thing is that /usr is read only, but /o ...

  2. C# winform中的datagridview控件标头加入checkbox,实现全选功能。

    /// <summary> /// 给DataGridView添加全选 /// </summary> public class AddCheckBoxToDataGridVie ...

  3. android studio Keymap快捷键

    android studio整理代码格式的快捷键 在设置里面看 File-->Setting-->Keymap-->Reformat Code 或者在Keymap右上的搜索栏搜 Re ...

  4. Emit Mapper官方文档

    概述 优点 快速指导 类型转换 用户配置

  5. ECNU1101-Dinic

    题意:从起点到终点有几条特殊路径. 特殊路径指的是:对于任意两条路径,他们的与起点相连的点是不同的点 && 与终点的相连的点是不同的点. /* 题意:从起点到终点有几条特殊路径. 特殊 ...

  6. Vijos1352 NOI2006 最大获利 最小权闭合图

    Orz胡伯涛<最小割模型在信息学竞赛中的应用> 建图方法: 设立源点S和汇点T,S和用户(共M个)连边,载流量为满足其要求的获利 T和中转站(共N个)连边,载流量为建立该中转站的费用 每个 ...

  7. Lucene&period;Net 2&period;3&period;1开发介绍 —— 三、索引(六)

    原文:Lucene.Net 2.3.1开发介绍 -- 三.索引(六) 2.2 Field的Boost 如果说Document的Boost是一条线,那么Field的Boost则是一个点.怎么理解这个点呢 ...

  8. golang 框架 之 CHI

    1,特性 golang 的 http框架已经有很多,究其原因:go 的net/http 已经做了大部分工作,封装一个框架的工作量,没有那么的大. 不过呢,林子大了鸟也就多了,部分框架的代码质量实在不敢 ...

  9. 分布式锁之redisson

    redisson是redis官网推荐的java语言实现分布式锁的项目.当然,redisson远不止分布式锁,还包括其他一些分布式结构.详情请移步:https://github.com/mrniko/r ...

  10. &lbrack;转&rsqb;让linux的coredump文件

    原文标题:gdb结合coredump定位崩溃进程 原文:http://lazycat.is-programmer.com/posts/31925.html 这个文件中说的方法我试过了,在CentOS和 ...