以下是一篇关于Linux运维工程师面试中的核心知识点及问题的整理,结合高频考点和实际应用场景进行了详细分类。
一、系统管理与监控
1. 内存和CPU统计信息的查看方法
使用`free -h`查看物理内存使用情况。
`vmstat`命令提供虚拟内存统计信息。
`sar`命令用于查看CPU利用率及其他系统活动信息。`top`或`htop`可以实时查看资源占用情况,重点关注内存和CPU的占用率。
2. buffer和cache的区别
buffer主要用于暂存待写入磁盘的数据,解决磁盘I/O速度慢的问题。
cache用于缓存从磁盘读取的数据,加速后续访问。两者均占用内存,但用途不同。
3. sar的功能及日志位置
`sar`命令用于收集系统活动信息,包括CPU、内存、磁盘、网络等。
默认日志存储在`/var/log/sa/`目录下,文件名为`sa{{dd}}`(`dd`为当前日期)。
4. vmstat关键列
`r`:运行队列中的任务数。
`b`:阻塞任务数。
`si`/`so`:交换分区与内存的数据交换量。
`bi`/`bo`:磁盘与内存的数据读写量。
二、磁盘与LVM管理
1. LVM的作用及扩容步骤
LVM能够动态调整分区大小,支持在线扩容,提升存储管理灵活性。
扩容流程包括创建物理卷、扩展卷组、扩展逻辑卷和调整文件系统大小等步骤。具体命令如`pvcreate`、`vgextend`、`lvextend`和`resize2fs`等。对于XFS文件系统,可能需要使用`xfs_growfs`命令。
三、网络与协议
1. OSI七层模型及TCP握手与挥手
OSI七层模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
TCP三次握手过程为SYN→SYN-ACK→ACK;四次挥手过程为FIN→ACK→FIN→ACK。
2. DNS过程
客户端查询本地DNS缓存,然后进行递归查询本地DNS服务器,接着进行迭代查询根域名服务器,最后逐级查询权威DNS服务器,返回最终IP。
3. 端口转发示例
可以使用iptables命令进行端口转发,如`-A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.1.1:8080`。也可以使用socat工具实现端口转发。
四、服务与架构
1. LVS、Nginx、HAProxy的区别
LVS基于四层,性能高但配置复杂,支持DR/NAT/TUN模式。
Nginx是七层反向代理,支持HTTP/HTTPS负载均衡,扩展性强。
HAProxy专注七层,支持TCP/HTTP,适合高可用场景。
2. Tomcat端口作用
8005:关闭服务端口;8009:AJP协议端口(与Apache/Nginx通信);8080:默认HTTP服务端口。
3. Keepalived原理
Keepalived基于VRRP协议实现高可用,通过主备节点选举(Master/Backup)和健康检查实现IP漂移。该机制确保在系统故障时能够快速切换至备用节点,保证服务的高可用性。五、故障排查与优化实战指南
在系统运维过程中,故障排查与优化是每一个运维工程师必须掌握的技能。将针对一些常见的故障排查方法和优化手段进行深入。
一、系统负载过高分析
当系统负载过高时,首先可以通过 `uptime` 或 `w` 命令查看系统的负载情况,了解系统的运行状态。结合 `sar` 和 `iostat` 命令,可以定位到系统的瓶颈所在,是I/O瓶颈还是CPU瓶颈。负载过高的原因可能有很多种,比如进程阻塞、频繁磁盘交换或者CPU密集型任务等。在实际排查过程中,需要根据具体情况进行具体分析,定位到具体的问题所在。
二、日志分析实战
日志分析是故障排查的重要手段之一。以Nginx访问日志为例,可以通过awk、sort、uniq、head等命令对日志进行统计和分析,找出访问量前十的IP。通过 `tcpdump` 命令可以抓包分析80端口的流量,帮助我们了解网络数据包的情况。这些命令的使用都需要我们熟练掌握,以便在实际工作中灵活运用。
六、进阶知识点详解
一、RAID级别对比
RAID是一种磁盘阵列技术,它通过把多个磁盘组合起来,形成一个逻辑上的单一磁盘。不同的RAID级别有不同的特点和适用场景。例如,RAID 0注重性能,条带化存储提高了读写速度,但无冗余;RAID 1注重冗余性,通过镜像方式保证了数据的安全性,但容量利用率较低;RAID 5则是一种平衡性能和安全性的选择,通过分布式校验的方式实现了数据的冗余和恢复。在实际应用中,需要根据业务需求和场景选择合适的RAID级别。
二、MySQL主从复制延迟优化
MySQL主从复制是MySQL高可用性和负载均衡的重要技术手段之一。但当主从复制出现延迟时,会影响系统的性能和稳定性。为了优化主从复制延迟,可以通过调整 `sync_binlog` 和 `innodb_flush_log_at_trx_commit` 参数来实现。还可以采用并行复制或半同步复制等高级手段来减少延迟。这些优化手段需要根据实际情况进行选择和调整。
故障排查与优化是Linux运维工作中的重要环节。在实际工作中,我们需要结合具体场景理解原理,通过命令实践加深记忆,不断提高自己的技能水平。还需要不断学习和掌握新的技术和工具,以适应不断变化的市场需求和技术发展。






