相信很多用户会在文章中听到或者提到电脑宕机或者服务器宕机,很多用户不太理解宕机的含义。那么服务器宕机意味着什么呢?下面就和小E分享一下电脑停机的读法和意义。
情绪低落的时候怎么看书?
我相信很多人不知道“当”这个词怎么发音,所以他们不知道它是什么意思。“停机”的拼音发音是:dàng ji。
服务器宕机意味着什么?
停机是计算机术语,指计算机或服务器无**常工作。在口语中,我们简单地称停机的机器为停机的机器,在汉字中翻译为“停机”,但大多数人称之为“死机”/“死机”,这不是标准化的,而是流行的。
在服务器故障的情况下,很少会马上想到问题的原因。基本上,我们将从以下步骤开始:
首先,试着找出问题的因果。 不要一下子一头扎进服务器的前端,你需要弄清楚你对这个服务器了解多少,以及失败的细节。否则,你可能没有目标。
必须澄清的问题是:
故障的表现是什么?没有回应?错误的报告?
故障是什么时候发现的?
故障是否可再现?
有规律吗(例如,每小时一次)
对整个平台(代码、服务器等)的最新更新是什么?)?
哪些特定用户组受到故障的影响(登录、注销、在某个区域……)?
可以找到基础架构(物理和逻辑)文档吗?
有监控平台吗?(例如,穆宁、扎比克斯、纳吉奥斯、新遗迹…任何东西)
有日志可以查看吗?。(如Loggly、Airbrake、Graylog…...)
最后两个是最方便的信息来源,但是不要抱太大希望,基本上它们是不可用的。只能继续探索。
第二,谁在那里? $ w
最后12美元
使用这两个命令查看谁在线,谁访问过。这不是关键步骤,但最好不要在其他用户工作时调试系统。有句话说,一山不容二虎。(厨房里没有厨师就够了。)
3.之前发生了什么? $历史记录1
检查之前在服务器上执行过的命令。看着总是对的,加上之前登录过的人的信息应该是有用的。另外,作为管理员,你要注意不要利用自己的权限去侵犯别人的隐私。
这是一个警告。稍后,您可能需要更新HISTTIMEFORMAT环境变量,以显示这些命令的执行时间。没错。否则,只是看到一堆不知道什么时候执行的订单也会抓狂。
4.现在运行过程是怎样的? $ pstree -a
$ ps aux12
这是为了查看现有流程。ps aux的结果比较乱,pstree -a的结果简单明了,可以看到运行的进程和相关用户。
动词 (verb的缩写)监控网络服务 $ netstat -ntlp
$ netstat -nulp
$ netstat -nxlp123
我通常会分别运行这三个命令,我不想一次看到所有的服务都列出来。Netstat -nalp没问题。但我绝对不会用数字选项(拙见:IP地址看起来更方便)。
找到所有正在运行的服务,并检查它们是否应该运行。检查每个监听端口。netstat显示的服务列表中的PID与ps aux进程列表中的PID相同。
如果服务器上有几个Java或Erlang进程同时运行,那么通过PID分别找到每个进程是很重要的。
通常,我们建议每台服务器上运行的服务较少,如果需要,我们可以添加更多的服务器。如果你看到一个服务器上有三四十个监听端口打开,做一个记录,空以后清理,重新组织服务器。
不及物动词中央处理器和内存 $免费-m
$正常运行时间
$ top
$ htop1234
请注意以下问题:
还剩下空内存吗?服务器是否在内存和硬盘之间交换?
还有CPU剩下吗?服务器的核心是什么?是不是有些CPU内核过载了?
服务器的最大负载来自哪里?平均负荷是多少?
七.五金器具 $ lspci
$ dmidecode
$ ethtool123
许多服务器仍然是裸机,所以您可以看一看:
找到RAID卡(你有BBU备用电池吗?),CPU,空备用内存插槽。根据这些情况,我们可以大致了解硬件问题的来源和性能改进的方法。
网卡设置好了吗?是否在半双工状态下运行?速度是10MBps吗?有没有发射/接收错误?
八.输入输出性能 $ IOs tat-kx 2 $ vmstat 2 10 $ mpstat 2 10 $ dstat & # 8211;top-io & # 8211;顶级生物1234
这些命令对于调试后端性能非常有用。
检查磁盘使用情况:服务器硬盘是否已满?
交换切换模式(si/so)是否打开?
CPU被谁占用:系统进程?用户流程?虚拟机?
Dstat是我最喜欢的。有了它,就能看出是谁在做IO:My*L是不是吃掉了所有的系统资源?还是你的PHP进程?
九.挂载点和文件系统 $ mount
$ cat /etc/fstab
$ vgs
$ pvs
$ lvs
$ df -h
$ lsof +D / /*注意不要***死你的盒子*/ 1234567
安装了多少个文件系统?
是否有专用于某项服务的文件系统?(比如My*L?)
系统的挂载选项是什么:noatime?默认?文件系统是否以只读模式重新装载?
磁盘空之间有空闲空间吗?
是否有大文件被删除但未清除+?
如果磁盘空有问题,您还有空来扩展分区吗?
$ sysctl-a | grep & # 8230;$ cat/proc/中断
$ cat /proc/net/ip_conntrack /*在繁忙的服务器上可能需要一些时间*/
$ netstat
$ ss -s12345
您的中断请求是平均分配给CPU处理,还是会因为大量网络中断请求或RAID请求而导致CPU内核过载?
SWAP的设置是什么?工作站将swappinness设置为60是好的,但对服务器来说太差了:最好永远不要让服务器做SWAP交换,否则读写磁盘会锁定SWAP进程。
conntrack_*x设置是否足够大以处理服务器的流量?
不同状态(TIME_WAIT、…)的TCP连接时间设置是怎样的?
如果您想显示所有现有的连接,netstat会很慢。你可以先用ss看看大局。
你也可以看看Linux TCP调优,了解一些网络性能调优的要点。
X.系统日志和内核消息 $ dmesg
$ less/var/日志/消息
$更少/风险/日志/安全
$ less /var/log/auth1234
例如,检查错误和警告消息,看看是否有太多连接导致的许多问题。
查找硬件错误或文件系统错误。
分析这些错误事件是否可以与早期发现的疑点进行对比。
XI。定时任务 $ ls /etc/cron* + cat
$用户的$(cat/etc/passwd | cut-fd:;do crontab-l-u $ user;done12
是否有某个计划任务运行过于频繁?
是否有用户提交了隐藏的计划任务?
失败的时候,是不是刚好有一个备份任务在进行?
十二.应用系统日志 这里要分析的东西很多,但作为运维人员恐怕没有时间仔细研究。注意明显的问题,比如在典型的LAMP(Linux+Apache+Mysql+Perl)应用环境中:
Apache &。Nginx查找访问和错误日志,直接查找5xx错误,然后查看是否有limit_zone错误。
My*L在mysql.log中查找错误消息,查看是否有结构损坏的表,是否有innodb修复进程在运行,是否有磁盘/索引/查询问题。
PHP-FPM;如果设置了php-slow日志,直接查找错误信息(php,My*L,memcache,...);如果没有设置,请快速设置。
清漆;在varnishlog和varnishstat中,检查命中/未命中比率。看看配置信息里有没有缺什么规则,让终端用户可以直接攻击你的后端?
高可用性-代理;后端的状态如何?健康检查成功了吗?前端或后端队列大小是否达到最大值?
结论 5分钟后,您应该清楚以下情况:服务器上正在运行什么?此故障似乎与IO/硬件/网络或系统配置(有问题的代码、系统内核调优、…)有关。这个故障有你熟悉的一些特征吗?例如,数据库索引使用不当,或者apache后台进程过多。
你甚至可以找到故障的真正来源。即使你还没有发现,搞清楚了上面的情况之后,你现在有条件去深挖了。继续努力!