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