开发者学堂课程【线上Linux服务器优化经验:Linux故障排除思路以及影响Linux性能的各种原因】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/382/detail/4803
Linux故障排除思路以及影响Linux性能的各种原因
课程安排
系统故障排除思路
重视报错信息
永远不要忘记日志文件
分析、定位、解决问题
影响 Linux 性能的各种因素服务器硬件因素
操作系统相关因素
程序因素
Linux 性能优化工具
cpu 性能优化工具 vmstat.iostat sar
内存性能检测工具 :free、top、sar、pidstat
磁盘性能评估工具 :iostat、sar
网络性能分析工具 : ping、mtr、netstat 系统性能分析标准
几个故障处理案例和性能优化案例
su 命令切换用户导致的问题
磁盘突然变成只读怎么处理
基于动、静态网站的优化案例
Linux 故障排除思路
磁盘突然变成只读怎么处理基于动、静态网站的优化案例
一、Linux故障排除思路
1、重视报错提示信息
每个错误的出现 都是给出错误提示信息,一般情况下提示基本定位了问题的所在。因此一定要重视报错信息,如果对这些错误信息视而不见,问题永远得不到解决
要解决的重点,就是关于系统的报错信息,执行任何操作,或者命令的时候,如果出现问题的话。第一时间会在操作完成之后,给出色的提示,出错提示会出现在屏幕上,以错误为基准,然后一步一步,往下解决问题。
所以一定要重视,就是说在在执行任何操作的过程中,报的错误,经常看到的可能有一些 warning,就是警告信息。其实可以忽略另外一部分信息就是关于L的信息,一定要关注的。
2、永远不要忘记日志文件
日志是排查问题的第一思路,一定要学会查看日志的习惯。
系统日志:dmesg、/var/log/messages、/var/log/secure
应用日志:
Apache:$APACHE_BASE/logs/errorJog $APACHE_BASE/logs/access_log Nginx:$NGINX_BASE/logs/error_log
$NGINXBASE/logs/access_log
Tomcat·$TOMCAT BASE/ogs/catalina.out
永远不要忘记日志文件,就是说在出现问题之后,如果通过报错信息,还没有办法去判断他的问题所在的话,第二个所要做的工作,就是要看相关的日志文件。
这个文件,在运营过程中,是有两种日志文件,最常见的是两种,一种就是操作系统本身的日志文件,另外一种就是跟业务相关的适用制度问题。
对这些日志文件的,查看和梳理是解决问题的非常重要的方法和思路。
最经常查看的这些日子都有哪些?
比如说。在系统方面,重点关注的一些日志文件,有三个,第一个,就是 message,这个命令,它是会实时输出一些系统级别的一些信息,这个信息可能包含一些报错信息,还有一些警告信息,当然有一些正常的信息。信息的内容,它是存在信息当中的。
第二个就是关注 crlog message ,日志文件的输出文件也是实施输出的,只不过他的输出方式,跟 DNS 也不一样。
这个 VR log message ,它是以文件的形式输出的,出了问题之后,首先要看 max 文件是否有报错。
第三个是 we are lost ,文件,它重点是判断远程 SSH 登录的状态,很多情况下,比如说服务器要遭受 SSH 暴力破解攻击的时候,它有很多日志,都会在在文件上进行输出。
可以通过文件输出,判断来源的一些 IP ,他们是不是在暴力破解。如果是的话,可以对这些来源IP进行一些评比操作,当然还有很多,最常用的,就是这三个命令的 message,还有 logmessage 。
最后一个,查看 SSH 登录日志的文件是关于系统日志,比如说常见的阿帕奇,他会有相关的日志,也就是说阿帕奇,服务如果运行不正常,或者是启动不起来的话,第一要关注的点,就是它的 log 日志,Log 的路径,一般都是在阿帕奇,比如阿帕奇是在 Apache 的安装目录下,Locks 目录下,重点看一下 error log 日志里面基本上阿瓦提的所有的信息,都会在里面进行输出。
除了文件,还可以看另外一个文件,就是 access log ,是正常的日志文件,但是有一些错误,在排查问题的时候,也可以看这个文件作为参考,同理,X,也是一样的,也是有对应的 flog。
还有 X 的,都可以去查看,第三个列举的是 tomcat ,刚开始,最常去用的就是catalina out 。这个文件其实就是记录了逃不开的运行状态。一些错误的信息,也都会在里边进行输出。
核心思想只有一个,当出现了问题之后,一定要关注日志文件,日志文件有很多,每个应用出问题,就看哪个应用的日志。
3、分析、定位问题、解决问题
综合分析过程,要以日志为导向,配合应用环境,根据报错信息、排除故障。
第一,以日志文件作为导向,然后再配合应用环境,再结合报错信息。
三个思路,最重点就是要重视日志文件的报错,一定要对这种文件有重视。在Linux 运维过程当中,可能有很大一部分解决的问题,可能是跟网络相关的问题。
4、网络排除思路
(1)网络硬件传输问题
(2)检查网卡是否能正常工作、可以从网卡是否正常加载,网卡IP设置是否正确
(3)检查DNS是否设定正确
(4)服务是否打开
(5)访问权限是否打开(iptables/selinux)
(6)局域网主机之间是否联机正常
第一部分,就是关于网络硬件传输的问题,就是要检查。比如说,网线是否正常,交换机是否正常。就是关于一些网络,硬件设施运营状态。
怎么去判断?
要结合自己的网络环境,比如最经常的方法去做拼操作,在局域网内对第一个要做的操作,就是在局域网内拼对方的IP,如果能拼通的话,那就说明局域网内网是通的,那么接着能会拼一下网关,如果网关能拼通的话,那说明就是网是正常的,或者网络环境是正常的,这是关于网络硬件要关注的。
第二块就是要检查就是网卡配置是否正常。这块就是涉及到服务器本身。
如果说,硬件网络设备都是正常的。第二个要看的是关于网卡的一些配置信息,首先要保证就是的网卡IP配置,网关配置,然后子网掩码配置是正常的。
那么第三个,就是要检查DNS是不是正常,DS,其实有两个方面的DS,比如说有时候经常遇到问题,就是某个网站发布。针对这个问题,其实第一方面网站防不了了。那么得到这个问题之后,拼一下网站的域名。
二、影响Linux性能的各种因素
1、系统资源硬件
(1)Cpu
如何判断多核 CPU 与超线程
消耗 CPU 的业务:动态 web 服务、mail 服务
cpu 是纯硬件方面的东西,关于 cpu,其实他的影响,也是很大的,比如说 cpu 的性能如何,对 cpu 是几核几核的。
那么现在的服务器级别的 cpu ,它基本上都是以多核。这种多核的方式来区分的,最常见的是两颗四核,两颗六合,现在两颗,和两颗16核。
(2)内存
物理内存与 swap 的取舍
选择64位 Linux 操作系统
消耗内存的业务:内存数据库(redis、hbase、mongodb)
内存的话。其实就涉及到两个方面,一个就是物理内存。另外一个是 swap,swap其实也是应该叫虚拟内存,在系统里面叫虚拟内存。
第二块就是在内存方面,比如说要在操作系统上,尽量选择64位的操作系统,为什么?
因为32位的操作系统,有一套本身本身寻址范围的限制,它在内存的使用上不够充分。
比如说32位操作系统上,原则上一个进程可以用的最大内存,不会是不超过2G。
那么即使用在大内存的话,在32系统它都是得不到一个有力的一个使用的,所以选择64位的一个另一个操作系统,那么在原则上,对内存这块东西,它是使用是没有任何限制的,这是关于内存,尽量在使用的时候选择64位操作系统就不用30,那么内存信号比较大的。
(3)磁盘IO
RAID技术(RAID0\1\5\01\10)
SSD磁盘
消耗磁盘的业务:数据库服务器
第一个方面就是在磁盘初期。就是刚有磁盘技术初期,要提高磁盘L技术,其实是通过很多种方法去实验,那么第一个是通过这个瑞的技术来实现。其实就是一个逻辑,磁盘阵列,简称为这个瑞的技术。
该技术是为了更好的去利用磁盘扩大磁盘的这个性能,然后提高磁盘的这样一个扩展性和安全性而来的。那么在企业当中,我们最常用的可能有 raid1 和 raid5。
(4)网络带宽
网卡、交换机的选择
操作系统双网卡的绑定
消耗带宽的业务:hadoop 平台、视频业务平台
连接的性能的重要方面。带宽涉及两个方面。
第一个方面,就是服务器本身的网卡的带宽,每个服务器基本上都是千兆网卡。
另外就是跟网卡相连接的,交换机的带宽或者交换机的背板带宽。这两个都要保持足够的大才能充分的保证的网络性能。
在另外的情况下,比如业务对网络带宽非常高的情况下,还可以考虑在操作系统基础之上,考虑双卡绑定,因为现在服务器有很多网卡,至少有四网卡。可以考虑两张卡,做一个双卡荣誉绑定。
绑定的策略,其实有很多种,最常见的就是主备策略。其实就是是同时工作,单独的大量之后,再启用。
还有一种是附带策略,就是两块网卡。
比如每块都是千兆的网卡,两块,就是2000兆的,也就是2G的带宽,就是做这么负债绑定。具体做哪种方式的绑定,还要跟业务相关联起来。
业务系统,只有两个方面,一块就是大数据分析,就是 hadoop 平台。另外,就是有在线视频业务。对服务器网络带宽要求是非常非常高的。
最常见的就是比如额度,数据分析平台,因为有非常非常多的数据,要在几点之间做传输。如果把带宽,提高之后,他能最大程度的就是提高的数据传输性能,进而,就会提高数据分析性。影响 Linux 性能的,关于硬件方面的四个因素,那其实就是 cpu ,内存磁盘 io ,还有网络带宽,这四个方面。