运维之十个问题--6
1. 系统瓶颈如何处理
查看哪有问题:
通过工具实时监控 CPU、内存、磁盘、网络等资源利用率
CPU / 内存:top
top命令动态的查看进程,分为两部分,上面是机器整体的负载情况展示,下边是单个进程信息。比较重要的参数load average 代表cpu 1 5 15分钟的平均负载,其中 us 代表用户空间占用cpu%,sy代表内核空间占用cpu百分比,id代表cpu空闲率,wa代表io等待cpu处理的时间。下边是内存及进程的一些信息,可以用来抓取系统瓶颈
磁盘:iostat、df -h
网络:netstat、sar
CPU:用户态占用率 > 70% 且持续居高不下,或us(用户空间)与sy(内核空间)比值异常
内存:可用内存 <10%,或 swap 使用率> 20%
磁盘:%util(设备利用率)>70%,或await(I/O 响应时间)>50ms
网络:带宽利用率 > 80%,或丢包率 > 1%
解决:
CPU 瓶颈
优化代码,增加 CPU 资源:升级多核 CPU ,进程管控,异步处理:将耗时任务(如日志写入)放入队列异步执行
内存瓶颈
优化缓存,排查泄漏,增加物理内存:升级服务器内存,或启用swap(但 swap 性能差,仅作临时方案)内存分片:将数据按规则拆分到不同节点(如分布式缓存集群)
磁盘 I/O 瓶颈
硬件升级:更换 SSD 硬盘,或用 NVMe 固态硬盘提升速度
I/O 优化:日志异步写入,数据库批量提交,磁盘分区,使用缓存:用 Redis 等内存数据库缓存高频访问数据,减少磁盘读写
网络瓶颈
带宽升级,流量管控优化协议,防御攻击:部署防火墙或 DDoS 防护服务
2. 计划周天8点重启服务
Crontab -e
0 8 * * 0 /usr/bin/systemctl restart 服务名
3. 三次握手
第一次握手:建立连接时,客户端发送syn包到服务器,并进入syn_sent状态,等待服务器确认:第二次握手:服务器收到SYN包,必须确认客户的SYN,同时也发送一个syn+ack包,此时服务器进入syn_rcvd状态;第三次握手;客户端收到服务器的SYN+ACK 包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入established状态,完成三次握手,客户端与服务器开始传送数据
4. 进程优先级范围
静态优先级:-20~19
数值越小优先级越高
5. linux系统类型
Ext ,xfs nfs Btrfs fat32 tmpfs
6. 为什么做raid
为了保证数据完整性,防止数据丢失
7. 有几种bond模式?平常用的哪种bond
一共有七种,常用mode4动态链路聚合模式,不常用的例如主备轮训,平衡论衡等等
8. OSI七层模型
物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
9. 主从复制原理
主库db的更新事件(update、insert、delete)被写到binlog
从库发起连接,连接到主库
此时主库创建一个binlog dump thread线程,把binlog的内容发送到从库
从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log.
还会创建一个SQL线程,从relay log里面读取内容,将更新内容写入到slave的db.
10.子接口和bond区别
子接口是一个接口配置多个IP
Bond是多个网络接口配置一个IP