了解最新公司动态及行业资讯
我们团队在为上一家公司承担运维优化扩容工作时,遇到了各种规模性能较差的系统和基础设施(多为大型系统,如CNN或世界银行系统)。 如果赶上紧迫的修复时间,怪异的技术平台,以及资料和文档的匮乏,基本上这个过程会痛苦到让我们留下深刻的记忆。
当遇到服务器故障时,很少能立即想到问题的原因。 我们基本上从以下步骤开始:
1.尽量了解问题的前因后果
不要一下子跳到服务器前面,你需要搞清楚这个服务器的已知信息有多少,以及故障的具体情况。 否则,您可能没有任何目标。
必须明确的问题是:
最后两个是最方便的信息来源,但不要抱太大希望,它们基本上都不是。 我只能继续探索。
2. 那里有谁?
$ w $ last
使用这两个命令可以查看谁在线,哪些用户访问过。 这不是关键步骤,但最好不要在其他用户正在工作时调试系统。 俗话说,一山难容二虎。 (不用做饭。)
3、之前发生了什么?
$ history
查看之前在服务器上执行的命令。 看一看总是对的,再加上登录过的人的信息,应该会有用的。 此外,作为管理员,您应该注意不要利用您的权限侵犯他人的隐私。
在这里提醒一下,稍后您可能需要更新环境变量以显示这些命令的执行时间。 是的,不然光是看到一堆不知道什么时候执行的命令也会抓狂。
4、现在运行的进程是什么?
$ pstree -a $ ps aux
这都是关于查看现有流程的。 ps aux的结果比较乱,-a的结果比较简单明了,可以看到正在运行的进程和相关用户。
5. 监控网络服务
$ netstat -ntlp $ netstat -nulp $ netstat -nxlp
我通常分别运行这三个命令,不想一次列出所有服务。 -nalp 也可以。 不过我永远不会使用选项(我的愚见:IP 地址似乎更方便)。
查找所有正在运行的服务并检查它们是否应该运行。 查看各个侦听端口。 显示的服务列表中的PID与ps aux进程列表中的相同。
如果服务器上有几个Java什么的进程同时运行,能够通过PID分别找到每个进程是非常重要的。
通常我们建议每台服务器运行较少的服务,并在必要时添加更多服务器。 如果你看到一台服务器开了三十、四十个监听端口,就做个记录,以后有时间清理一下服务器运维,重新整理一下服务器。
6.CPU和内存
$ free -m $ uptime $ top $ htop
注意以下问题:
七、硬件
$ lspci $ dmidecode $ ethtool
很多服务器还处于裸机状态,可以看看:
八、IO性能
$ iostat -kx 2 $ vmstat 2 10 $ mpstat 2 10 $ dstat --top-io --top-bio
这些命令对于调试后端性能非常有用。
9. 挂载点和文件系统
$ mount $ cat /etc/fstab $ vgs $ pvs $ lvs $ df -h $ lsof +D / /* beware not to kill your box */
十、内核、中断和网络
$ sysctl -a | grep ... $ cat /proc/interrupts $ cat /proc/net/ip_conntrack /* may take some time on busy servers */ $ netstat $ ss -s
您还可以查看 Linux TCP服务器运维,了解网络性能调整的一些基本知识。
11.系统日志和内核消息
$ dmesg $ less /var/log/messages $ less /var/log/secure $ less /var/log/auth
12.定时任务
$ ls /etc/cron* + cat $ for user in $(cat /etc/passwd | cut -f1 -d:); do crontab -l -u $user; done
13、应用系统日志
这里可以分析的东西很多,但是作为运维人员恐怕没有时间细细研究。 关注明显的问题,比如在一个典型的LAMP(Linux++Mysql+Perl)应用环境中:
综上所述
在这 5 分钟之后,您应该更清楚地了解以下内容:
您甚至可能会找到问题的真正根源。 就算你还没有找到,弄清楚以上情况后,你现在也具备了深入挖掘的条件。 继续努力吧!
蓝梦成立于上海,致力于提供IT外包、弱电工程(网络布线、机房建设、门禁考勤、视频监控、电话交换机、多媒体会议室)、系统集成(建网、网络改造、WIFI覆盖)企业客户、数据备份、病毒防护、文件权限、虚拟化等)、云服务(微软云、阿里云、企业邮箱等)“一站式”IT外包解决方案。 ,,,咨询。 支持热线: