系统诊断工具

1,诊运行历史
   sar
  看最近一天的运行历史信息,包含 iowait
 
   sar - f / var / log / sa / sa日期   
  看本月某一天的运行历史信息
 
2,诊整体资源
   top   
  看当前负载、 cpu、内存、进程、用户数等
 
   ps aux | sort - nk3
  查看 CPU占用率最大的进程,显示在最下面一行
 
   ps aux | sort - nk4
  查看内存占用率最大的进程 ,显示在最下面一行
 
3,诊磁盘
   iostat - x - k 2   
  这个命令每隔 2秒输出一次磁盘 io统计信息,这是看数据存储方案最常用命令。
 
   df - kh
  看磁盘空间,磁盘满了?你应该自己立即发现哦
 
   #/sbin/hdparm -t /dev/sda
  评估磁盘的读取性能。 hdparm可检测、显示与设定 IDESCSI硬盘的参数。
 
4,诊网络连接
   netstat - nap   
  这个命令输出当前所有连接,包括连接所属的进程
 
   ping hostip
  诊断网络是否可达和域名解析是否成功。
 
   / sbin / ethtool ethX
ethX表示网卡名如 eth0
  检查网卡和网络速度“ Speed”, 100Mb1000Mb的带宽差别可大了。
 
  有时要确信两台机器之间的实际带宽,
   a,可用 scp传一个大文件看看,不过 scp传送会受 ssh协议的影响,会偏慢一些。
   b,用 http协议会更真实,在 nginxhtdocs目录下放个大文件,到另一台机器用 wget下载。
 
   sar - n DEV 5 500
  诊断网络流量,是否遭到攻击?看网卡读写数据量 rxbyt / stxbyt / s,单位字节。
 
5,诊文件句柄
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
6,诊系统限制
   ulimit - a
  看是否可生成 core文件、可打开文件句柄数 "open files",经常需要修改系统限制。
 
7 , 诊程序系统调用
   strace - p pid
  看程序进程的系统调用函数和返回值,在“显微镜”下看这程序在偷偷干吗?
  多线程程序可尝试看 pid + 1 , pid + 2后面一般依次是进程创建的多条线程
 
   strace - p pid - c
  看某个进程 id的系统调用函数次数统计,按 ctrl + c退出并输出统计信息   
 
8,诊通信包
  常用命令:
   #/usr/sbin/tcpdump -X -s 0 tcp port 8030 -i lo
   #/usr/sbintcpdump -n -x -s 0 tcp port 23000 or 23002 or 23003 or 22122 >dump
   #/usr/sbin/tcpdump -n -x -s 0 tcp port 7820 and host 192.156.30.100
  root可以在 linux上用 tcpdump抓包, tcpudp包都可以抓。
  常用选项:
   - X 以可读方式显示数据包,适合 httpmemcached asccii等明文传输的协议
   - x 输出 16进制的包内容, Print each packet ( minus its link level header ) in hex
   - A ascii码显示
 
   - i lo 看本机 localhost的通信包
   - n 不要域名解析, Dont convert host addresses to names .  This can be used to avoid DNS lookups .
   - s 设置抓完整的包, Snarf  snaplen  bytes  of data from each packet rather than the default of 68...
     Setting snaplen to 0 means use the required length to catch whole packets .
 
9,诊程序配置文件或启动参数
  以上几个命令一看基本知道系统内脏情况,必要时查看具体程序的配置或启动参数,
  查看是否连接数、磁盘数、内存数、进程线程数配置不合理。
 
10,诊日志
  看具体程序运行日志、统计日志、耗时日志
 
   vi / etc / syslog . conf
  查看 linux系统 log在哪个目录
   # vi /var/log/messages
  查看最近系统运行日志,包括机器重启前后的日志、用户登录日志
 
   dmesg
  查看 linux启动日志
   dmesg | grep sda
  查看启动日志中有关 sda这个磁盘分区参数 .
 
11gdb core文件
如果已生成 coredump文件,则 gdb program core . * * *
有时也可以强制 coredumpkill - s SIGSEGV pid
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值