故障排除的最佳实践、服务器为什么这么慢、为什么系统无法启动、为什么磁盘无法写入、服务器宕机了、为什么主机名无法解析、为什么无法收发邮件、网站宕机了、为什么数据库这么慢、硬件问题
1、服务器为什么这么慢
服务器慢,可以从CPU、RAM、磁盘I/O、网络中查找原因。
CPU:uptime 如果单CPU系统的平均负载是4,那么这个系统处于它可承受负载能力的4倍,所以3/4的进程都在等待资源。
影响负载的原因分析:CPU密集型、RAM密集型、I/O密集型
查看进程的具体资源使用情况:top -b -n 1|tee output.txt
TOP排序选择:
iostat 查看IO被谁占领了
iostat 2 每两秒看到一次输出
iotop 查看每个进程的IO使用情况
安装sysstat,并开启,软件会每十分钟自己记录一次系统状态并保存
查看每个CPU的详细情况:sar -P
查看内存信息:sar -r
查看磁盘统计信息:sar -b
查看当天某个时间段的统计统计信息:sar -s 20:00:00 -e 20:30:00
查看本月第6天的统计信息:sar -f /var/log/sysstat/sa06
2、为什么系统无法启动
BIOS启动会检测:硬盘驱动器、USB磁盘、CD-ROM、网卡及其他硬件
/etc/init.d 包含在所有运行等级中都会启动的脚本
/etc/rc0.d~rc6.d
/etc/rc.local
3、为什么磁盘无法写入
df -h 查看磁盘
tune2fs -l /dev/sda1|grep -i "block count" 查看保留区块大小
du -ckx|sort -n 查看哪个目录占用空间多
df -i 查看节点使用情况
mount 查看文件系统是否只读
修复文件系统: umount /dev/sdb2; fsck -y -c /dev/sdb2
每5秒运行一次cat: watch -n 5 "cat /proc/mdstat"
4、服务器宕机了
dns:nslookup www.baidu.com
如果ICMP包被限制了,则traceroute替换成tcptraceroute
iftop 查看网络使用情况
抓包:
tcpdump -n
tcpdump -n host web1
tcpdump -n not host web1
tcpdump -n port 53
tcpdump -n port 53 or port 80
5、为什么主机名无法解析
清空DNS缓存:/etc/init.d/nsdc restart
6、为什么无法接收邮件
7、网站宕机了
curl -w "%{http_code} %{time_total} %{size_download} %{content_type}"
web状态马:
2xx:成功
3xx:重定向状态马
4xx:客户端错误状态马
5xx:服务端错误状态马
apache服务器状态模块:LoadModule status_module /usr/lib/apache2/modules/mod_status.so
NGINX状态马:http://www.xxx.com/server-status?auto
nginx -t 检查语法
9、为什么数据库这么慢
mysqladmin -u root -p status
mysqladmin -u root -p processlist