51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程
第一课 Linux运维经验分享与思路
1、一般把主机名,写到hosts下 127.0.0.1 hostname,因为很多应用要解析到本地。oracle没有这个解析可能启动不了。
2、注释掉UUID以及MAC地址,需要绑定网卡的时候,这个可能会有影响。
3、磁盘满了无法启动, var下木有空间,无法创创建PID等文件,导致文件无法启动,按e 进入single 然后b 重启进入单用户模式。
4、ssh登陆系统策略
/etc/ssh/sshd.conf port 改成5位数 设置 允许IP
permitroot 改为 no
使用秘钥登录 可以关闭 passwordauth
GSSAPIAuthentication no 以及UseDNS no 提高ssh链接速度
5、用户权限策略
禁止root用户远程登录系统,授权仅普通用户登录系统,需要管理员权限执行 sudo,避免root用户登录。
/etc/sudoers (普通用户切换到root权限,sudo 时不需要加密码)
liqilong ALL=(ALL) NOPASSWD: ALL
6、更新yum源以及必要软件安装
常用的yum源:epel、repoforge软件更新快 系统升级 yum update
7、定时自动更新服务器时间
1、) crontab 推荐服务器 time-a.nist.gov ntp.sjtu.edu.cn
/usr/sbin/ntpdate ntp.sjtu.edu.cn >> /var/log/ntp.log 2>&1;
/sbin/hwclock -w
执行同步,以及保存
2、) 架设ntp server /etc/ntp.conf
8、精简开机自启动服务
线上服务建议开启的服务:crond,network,syslog,sshd,iptables,udev-post (资源安全设置),sysstat(系统负载、资源监控)
全部关闭
for serv in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $serv off;done
然后开启需要的服务
for serv in ‘crond network syslog sshd iptables udev-post sysstat;do chkconfig --level 3 $serv on;done
9、删除无关用户组、用户
查看组 more /etc/group 查看用户 /etc/passwd
10、定时自动清理垃圾文件
du -sh ./* 查看目录里 文件的大小
ls -al 查看全部文件(使用习惯)
/var/spool/cron 每个用户的定时任务都会生成相应的目录
11、重要文件安全策略(重要文件加锁,禁止修改)
chattr +i /etc/sudoers (加锁) chattr -i (去锁)
chattr +i /etc/shadow /etc/passwd /etc/grub.conf
12、内核参数优化
1、关注ulimit命令 ulimit -a 查看相关参数
需要重点关注:ulimit -c -f -n -u
ulimit -c core file 类似于 debug,调试程序 ulimit -c unlimited 打开core file
ulimit -f file size 限制文件大小
ulimit -n open file 最大打开文件个数,大一点 一般 65536,tomcat 可能是404,没有更多的文件可以打开。
ulimit -u 最大用户进程数,某个用户的最大进程数,一般不需要修改,系统一般设置成最大值。
临时生效,永久生效需要配置文件 /etc/security/limits.conf 以及 /etc/security/limits.d/20-nproc 两个同时配置,20-nproc生效,max user processes 设置在20-nproc
/etc/sysctl.conf
net.ipv4.ip_forward = 0 ,默认关闭,要做代理服务器或nat需要打开
* soft nofile 65536 最大打开文件个数
* hard nofile 65536
13、系统故障排查关注点
1、tail -f /var/log/messages #应用日志查询
2、tail -f /var/log/secure #登陆日志查询
3、dmesg #系统日志查询(内存信息,系统重启保存在/var/log/dmesg)
4、/var/tmp, /tmp #容易***点查询,权限777
5、crontab -l、/etc/crontab #计划任务查询(经常***对象)
/etc/cron.d 目录下会被 crontab调用, 各个目录(cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/)里面的文件
第二课 Linux系统性能优化思路和方法
一、影响Linux性能的各种因素
1、系统硬件资源
(1)CPU 个数 频率
processor、physical id 、cpu cores(每个CPU核数)、
如何判断CPU 超线程:核数是 physical id 、cpu cores 的两倍使用了超线程
消耗CPU的业务:动态web服务,mail服务
(2)内存 64位系统、磁盘操作改到内存中 swap分区:任何时候都需要,物理内存足够大,swap可以小点 , 服务器内存大于16G,swap可以设为16G,小于16G,swap=物理内存也可以是物理内存*2
消耗内存的业务:内存数据库(redis、hbase、mongodb)读写在内存,支持大并发
(3)磁盘IO
RAID技术:RAID0/1/5/01/10 性能、安全性,RAID1 互为镜像 ,安全性 ; RAID 0 两个磁盘 变为一个; RAID5 带奇偶校验 ;RAID10 底层两个磁盘 RAID0 然后再RAID1,RAID10 安全性、性能 ;数据库重要 RAID10。
消耗磁盘的业务:数据库服务器、、、
(4)网络带宽
网卡/交换机的选择:千兆网卡、接入交换全千兆、核心交换万兆交换
操作系统双网卡绑定:双网卡的负载均衡或者累加
消耗宽带的业务:hadoop平台,视频业务平台
2、操作系统相关资源
系统安装优化、内核参数优化、文件系统优化(xfs高性能文件系统,linux 3.10内核开始默认支持)
读操作频繁,同时小文件众多的应用:首选ext4文件系统,接下来依次是xfs、ext3
写操作频繁的应用:首选是xfs、接下来是ext4和ext3
二、Linux性能优化工具
1、cpu性能评估工具
(1)vmstat 3 5 每三秒输出一次,输出5次
procs r:运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU个数,说明CPU不足,需要增加CPU核数
b:等待资源的进程数,长期比较大,CPU不足
memory :swap 切换到内存交换区的内存数量,(单位k)
buff表示 buffer cache 一般是对块设备的读写才需要缓冲。
cache 表示page cache 的内存数量,一般作为文件系统caches,频繁访问的文件都会被cached,如果cached值较大。说明caches的文件较多
swap :si 由磁盘进入内存 经常非常大内存不足
so 内存进入磁盘 经常非常大内存不足
IO : bi 从块设备读入数据的总量(读磁盘)(每秒kb)
bo 写入块设备数据的总量(写磁盘)(每秒kb)
bi+bo 超过1000,并且wa值较大,则表示 系统磁盘有问题,应该考虑提高磁盘的书写性能。
system : in 某一时间间隔中观测到的每秒设备中断数
cs 每秒产生的上下文切换
2个值越大,由内核消耗的CPU时间会越多
CPU : us 用户进程消耗的CPU时间百分比。us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期大于50%,就需要考虑优化程序或算法。
sy 内核消耗的CPU时间百分比
us+ys 参考值80% 大于80%可能内存资源不足
id 显示了CPU处在空闲状态的时间百分比。
wa :io等待所占用的CPU时间百分比,wa越高,说明等待越严重。
2、内存评估
(1) free -m
(2)sar/ pidstat -r 内存 -u cpu -d 磁盘
sar -r 3 5 每三秒输出一次,输出5次
sar -u 3 获取内存3秒内的状态
kbcommit 内存使用
pidstat -r -p 1 3 获取内存3秒内的状态 -p 进程 pid
3、硬盘性能
iostat -d 3 5 tps 每秒到物理磁盘的传送数,也每秒的I/O流量
4、网络性能
mtr 动态路由跟踪
traceroute 静态路由跟踪
netstat -i 查看路由情况 -r 网络接口
debug模式 Shift+F2
案例1、/etc/passwd root名称改成别的名称(test),权限不改。。。导致系统无法启动, 能登录,ps -ef发现所有进程都是 以test用户启动的
解决方案:单用户模式修改/etc/paawd
案例2、远程登录以后,立即退出,本地登录也是如此。密码错误有提示。ulmit -n 设置 问题
tail -f /var/log/secure
error :PAM:pam_open_session():Permission denied.
pam_limits: could not set limit
解决方案:ulmit -n 6553600 基本满足一般要求
limits.conf nofiles 设置过大,申请不到最大值回复到默认的值1024。
欢迎打算使用阿里云服务器的小伙伴,加我私聊!!QQ:3533470970 或直接领取阿里云幸运券:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=b6h928qb&utm_source=b6h928qb