当前位置:8090st.com >系统管理 > 查看文章
阿里云优惠码

当你为了解决一个性能问题登录到一台 Linux 服务器:在第一分钟,你应该检查些什么?

 

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 -h

看磁盘空间,磁盘满了?你应该自己立即发现哦 #

 

/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,诊文件句柄查看所有进程的文件打开数是否接近系统限制

/usr/sbin/lsof |wc -l 

查看某个进程打开的文件是否异常,包括wc -l查看数目/usr/sbin/lsof -p pid

 

6,诊系统限制

ulimit -a

看是否可生成core文件、可打开文件句柄数”open files”,经常需要修改系统限制。

 

7, 诊程序系统调用

strace -p pid

看程序进程的系统调用函数和返回值,在“显微镜”下看这程序在偷偷干吗? 多
线程程序可尝试看pid+1,pid+2后面一般依次是进程创建的多条线程

 

strace -p pid -c 

看某个进程id的系统调用函数次数统计,按ctrl + c退出并输出统计信息

 

8,诊通信包 常用命令:

 
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

 

tcpdump -n -x -s 0 tcp port 7820 and host 192.156.30.100

用root可以在linux上用tcpdump抓包,tcp和udp包都可以抓。

常用选项:
-X 以可读方式显示数据包,适合http、memcachedasccii等明文传输的协议
-x 输出16进制的包内容,Print each packet (minusits link level header) in hex -A ascii码显示
-i lo 看本机localhost的通信包
-n 不要域名解析,Don’t convert host addresses tonames. This can be used to avoid DNS lookups.
-s 设置抓完整的包,Snarf snaplen bytes of datafrom each packet rather than the default of 68…
Setting snaplen to 0 means use the requiredlength 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 programcore.***
有时也可以强制coredump:kill -s SIGSEGV pid

本文链接:https://www.8090st.com/diagnosis-linux-server.html 转载请注明出处.
如果喜欢:点此订阅本站
相关文章
为您推荐
各种观点
暂时还木有人评论,坐等沙发!
发表评论

快捷键:Ctrl+Enter