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可检测、显示与设定
IDE或
SCSI硬盘的参数。
4,诊网络连接
netstat
-
nap
这个命令输出当前所有连接,包括连接所属的进程
ping
host或
ip
诊断网络是否可达和域名解析是否成功。
/
sbin
/
ethtool
ethX
(
ethX表示网卡名如
eth0)
检查网卡和网络速度“
Speed”,
100Mb和
1000Mb的带宽差别可大了。
有时要确信两台机器之间的实际带宽,
a,可用
scp传一个大文件看看,不过
scp传送会受
ssh协议的影响,会偏慢一些。
b,用
http协议会更真实,在
nginx的
htdocs目录下放个大文件,到另一台机器用
wget下载。
sar
-
n
DEV
5
500
诊断网络流量,是否遭到攻击?看网卡读写数据量
rxbyt
/
s和
txbyt
/
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抓包,
tcp和
udp包都可以抓。
常用选项:
-
X
以可读方式显示数据包,适合
http、
memcached
asccii等明文传输的协议
-
x
输出
16进制的包内容,
Print
each
packet
(
minus
its
link
level
header
)
in
hex
-
A
ascii码显示
-
i
lo
看本机
localhost的通信包
-
n
不要域名解析,
Don’
t
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这个磁盘分区参数
.
11,
gdb
core文件
如果已生成
coredump文件,则
gdb
program
core
.
*
*
*
有时也可以强制
coredump:
kill
-
s
SIGSEGV
pid
|