51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程(高俊峰)

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。

时间: 2024-12-28 15:00:06

51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程(高俊峰)的相关文章

Linux运维故障排查思路

linux系统故障 网络问题 linux系统无响应 linux系统无法启动 linux系统故障处理思路 1.重视报错信息,一般情况下此提示基本定位了问题的所在 2.查阅日志文件,系统日志和应用日志 3.分析.定位问题 4.动手解决 网络问题处理思路 1.网络硬件问题.网线.网卡.路由器.交换机等是否正常工作. 2.网卡驱动是否正常加载.网卡ip设置是否正确,系统路由是否正确. 3.检查局域网之间的通信是否正常. 4.检查dns是否设定正确.可从/etc/resolv.conf./etc/host

linux运维系统故障排查思路及常见故障处理

一 linux系统故障的一般处理思路 报错信息--->查阅日志文件--->分析定位问题--->解决问题. 二 linux系统无法启动原因及解决 系统无法启动的原因很多,常见的有下面几种情况: 1 文件系统被破坏,常常因断电和非法关机引起文件系统结构不一致.修复方法是用fsck命名强制修复,进入单用户模式或者交互界面,按提示进入修改模式中,卸载对应的问题磁盘,然后用fsck命令修复,无法恢复的数据会存放在lost+found下.umount /dev/sda3    fsck.ext4 -

Linux系统运维故障排查思路

一些处理问题的一般思路   1)重视报错提示信息,每当错误出现,都会给出错误提示信息,一般情况下,这个提示基本定位了问题的所在,因此一定要重视这个报错信息,如果对这些错误信息视而不见,问题永远都得不到解决.   2)查询日志文件.有时候报错信息只是给出了问题的表面现象,要想更深入的了解问题,必须查看想应的日志文件,二日志文件有分为系统日志文件(/var/log),和应用程序日志文件,结合这两个日志文件,一般就能定位问题所在.   3)分析定位问题.这个过程是比较复杂的,根据报错信息,结合日志文件

linux学习13 Linux运维常用文件管理命令及系统变量基础

一.文件管理命令 1.cp命令,copy a.单源复制,cp [OPTION]... [-T] SOURCE DEST 如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中. 如果DEST存在: 如果DEST是非目录文件则覆盖目标文件,如果DEST是目录文件则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流至目标文件. b.多源复制 cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOUR

linux运维故障

dmidecode -t processor | grep Socket (物理cpu个数) dmidecode | grep Size | grep MB | awk '{a+=$2}END{print a}' (物理内存大小MB) dmidecode | grep Size | grep MB | wc -l (物理内存个数) ps -eo pid,lstart,etime | grep 26871 (进程运行时间) 26871 Thu Sep 26 17:08:55 2013 00:19

学习老男孩linux运维-自我介绍-决心书

大家好,我叫吴德义. 我来自于福建省宁德市一个小山村,家境平平,毕业后一直在深圳工作,目前在深圳福田O2O公司工作,工作岗位:项目实施工程师,工资水平一般,工作内容:经常出差客户现场,现场安装部署公司的软件产品,并给客户培训产品的使用,在工作中linux使用的不多,由于对linux系统情有独钟,平常自己也喜欢琢磨linux技术,遇到不懂的常常也要查百度,缺少一个导师,所以我来到了老男孩培训linux,想在将来从事linux运维相关工作, 我的目标,在经过老男孩四个月学习后,我要达到的薪水目标为:

Linux编程学习:Linux运维必会的系统工具

×××教育,独家开创"Linux云计算架构师课程".这是独家的全栈Linux运维课程,包含"公有云+私有云+自动化运维+Python运维开发"等核心开发技术,其中"私有云课程"较同行最全.而值得注意的是,私有云是运维行业中薪资最高的. 更何况,×××教育Linux运维课程内容,还是由中国第29位红帽认证架构师亲自编写的,更是由他和另一位业界大咖唐老师一同讲授.课程内容紧贴一线,实时动态更新,实力打造Linux运维行业佼佼者. 1.acct or

学习老男孩linux运维的决心书

大学毕业一年多了,由于读书不努力,没有一技之长,工作一直不是那么顺利,工资也都是4000块钱,远远不如身边朋友啊,每每一个人自叹不如,自惭形秽.一直以来听说老男孩linux很不错,于是痛下决心,一定要学习个一技之长,别人能做到的,我也要做到,别人能月入过万,我也一定要.在家里人的支持下,我报名了linux的网络学习班,白天上班,晚上学习.我相信只要努力付出,一定会有收获的. 在此,我写下决心书,一定要在4到5个月内顺利毕业,期望薪资一定要达到8k以上. 为了实现这个目标,我将做到并坚持做到以下几

【sehll学习】linux运维一个简单shell脚本监控系统内存

学习shell脚本入门后,慢慢要尝试编写一些脚本练练手,在这先简单的学习写个系统内存的监控. 1.首先先要确定一下截取一下需要关注的内存使用值,可使用free 命令来操作 free -m 显示 一般在监控内存是我们都是截取 第三行(-/+ buffers/cache)的值.确定后可以使用管道线和grep命令来获取这个的值. free -m | grep - | awk  '{print $4}' 获取到他的值为  858 当中 grep -  就是匹配一下要选取的内容,不太熟悉的可以学习一下gr