本文汇总系统工程师岗位经典面试题,涵盖技术基础、系统设计、项目管理等维度,附详细解析与实例,助力求职者系统化备战面试,精准匹配岗位需求。
1. 请简述TCP三次握手的过程及必要性
TCP三次握手通过SYN、SYN-ACK、ACK三次报文交换建立连接。客户端发送SYN报文初始化序列号,服务端回复SYN-ACK确认并发送自身序列号,客户端最终回复ACK完成连接。两次握手无法解决历史重复连接问题,三次握手可确保双方收发能力正常,避免资源浪费。
2. 解释进程与线程的区别
进程是资源分配的最小单位,拥有独立内存空间;线程是CPU调度的最小单位,共享进程内存。进程创建开销大,线程切换效率高。例如,浏览器多标签页为多进程架构,每个标签页崩溃不影响其他;而视频解码可多线程处理,提升并行效率。
3. 死锁的四个必要条件是什么?如何预防?
死锁需满足互斥、占有并等待、非抢占、循环等待。预防方法包括破坏条件:如资源有序分配(破坏循环等待)、超时释放(破坏非抢占)等。
4. RAID5与RAID10的区别
RAID5通过分布式奇偶校验实现容错,至少需3块硬盘,空间利用率高(n-1/n),但重建时间较长;RAID10结合镜像与条带化,至少需4块硬盘,空间利用率50%,但读写性能与容错性更优。
5. Linux中`ps aux`与`top`命令的区别
`ps aux`静态显示当前进程快照,包括CPU、内存占用等;`top`动态实时更新进程状态,支持交互操作(如排序、终止进程)。
6. HTTP与HTTPS的区别
HTTPS在HTTP基础上通过SSL/TLS协议加密传输,防止中间人攻击。HTTPS需CA证书,建立连接时需额外握手开销,但保障数据安全。
7. 防火墙的作用及类型
防火墙通过规则过滤网络流量,防止未授权访问。类型包括包过滤(基于IP/端口)、状态检测(跟踪连接状态)、应用层(深度解析协议)。
8. DNS解析的过程
客户端向本地DNS服务器发起查询,若缓存无结果,则递归查询根域名服务器、顶级域服务器,最终获取目标IP并返回客户端。
9. VLAN的作用及配置示例
VLAN将物理网络划分为逻辑隔离的广播域,提升安全性与效率。配置示例:`switchport mode trunk`(中继模式)、`switchport access vlan 10`(分配端口至VLAN10)。
10. DDoS攻击的防御策略
通过流量清洗(过滤异常流量)、限速(阈值控制)、CDN加速分散请求、Anycast路由分散攻击源等方式防御。
11. 负载均衡的算法及适用场景
轮询(均匀分配)、加权轮询(按权重分配)、最少连接(动态选择最少连接数服务器)、IP哈希(固定客户端请求至同一服务器)。高并发场景常用最少连接,静态内容分发适用轮询。
12. 微服务架构的优缺点
优点:独立部署、技术栈灵活、扩展性强;缺点:分布式事务复杂、服务间调用开销大、监控难度高。需通过API网关、服务注册中心等组件管理。
13. 高可用架构的设计原则
冗余设计(多节点部署)、故障转移(自动切换备机)、无单点(避免单一故障点)、健康检查(实时监控服务状态)。
14. CAP理论在分布式系统中的应用
CAP指一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance)不可同时满足。例如,电商系统通常选择AP(最终一致性),金融系统倾向CP(强一致性)。
15. 数据库读写分离的实现方式
通过主从复制同步数据,应用层配置读写分离中间件(如MyCat),写请求路由至主库,读请求分发至从库。需处理主从延迟问题,可通过半同步复制或缓存缓解。
16. IaaS、PaaS、SaaS的区别
IaaS提供基础设施(如虚拟机、存储),用户管理操作系统;PaaS提供开发平台(如数据库、中间件),用户专注应用开发;SaaS提供完整软件服务(如CRM),用户直接使用。
17. KVM与VMware的对比
KVM为开源虚拟化技术,依赖Linux内核,性能接近原生;VMware为商业产品,功能全面(如动态资源调度),但成本较高。
18. 容器与虚拟机的区别
容器共享主机内核,启动快、资源占用低;虚拟机拥有独立内核,隔离性强但开销大。容器适用于微服务部署,虚拟机适合传统应用。
19. AWS中EC2与Lambda的适用场景
EC2适合需要持续运行、复杂环境、自定义需求高的应用。
Lambda适合事件驱动、短时、无状态、自动弹性、无需运维的场景。
20. Linux中如何查看进程占用的CPU和内存?
使用`top`命令动态查看,或通过`ps aux --sort=-%cpu | head`(按CPU排序)和`ps aux --sort=-%mem | head`(按内存排序)快速定位高资源占用进程。
21. 什么是僵尸进程?如何清理?
僵尸进程是子进程退出后父进程未调用`wait()`回收其状态,导致进程表残留条目。可通过`kill -HUP 父进程PID`通知父进程处理,或重启父进程。
22. 如何限制Linux用户的磁盘使用空间?
使用`quota`工具配置磁盘配额:编辑`/etc/fstab`添加`usrquota`选项,运行`quotacheck -cugm /`和`quotaon /`启用,最后通过`edquota -u 用户名`设置限额。
23. 解释RAID 0、RAID 1、RAID 5的区别
- RAID 0:条带化存储,提升读写速度,无冗余。
- RAID 1:镜像存储,数据完全冗余,读写性能均衡。
- RAID 5:分布式奇偶校验,至少3块盘,允许单盘故障,读写性能较好。
24. 如何优化MySQL查询性能?
- 使用`EXPLAIN`分析查询计划。
- 添加适当索引(如主键、外键、复合索引)。
- 避免`SELECT *`,仅查询必要字段。
- 定期执行`ANALYZE TABLE`更新统计信息。
25. Nginx与Apache的主要区别
Nginx采用异步事件驱动模型,高并发下性能更优;Apache使用多进程/线程模型,适合静态内容。Nginx常作为反向代理或负载均衡器,Apache模块丰富。
26. OSI七层模型中每层的协议示例
- 应用层:HTTP、FTP
- 表示层:SSL/TLS
- 会话层:NetBIOS
- 传输层:TCP、UDP
- 网络层:IP、ICMP
- 数据链路层:以太网、PPP
- 物理层:RS-232、光纤
27. 如何排查网络连通性问题?
使用`ping`测试基础连通性,`traceroute`分析路径,`netstat -tuln`检查本地端口监听,`tcpdump`抓包分析具体流量。
28. HTTPS的工作原理
通过SSL/TLS协议加密传输层数据。客户端与服务器协商对称密钥(使用非对称加密交换),后续通信使用对称加密,确保数据机密性和完整性。
29. 防火墙的三种类型及区别
- 包过滤防火墙:基于IP/端口过滤,效率高但功能有限。
- 状态检测防火墙:跟踪连接状态,更安全。
- 应用层防火墙:深度检测应用层协议(如HTTP),安全性最高但性能开销大。
30. 如何防止DDoS攻击?
- 使用云服务商的DDoS防护服务(如AWS Shield)。
- 配置防火墙限制单IP请求速率。
- 部署CDN分散流量。
- 启用Anycast网络架构。
31. 设计一个高可用的电商网站架构
- 前端:CDN加速静态资源,负载均衡器(如Nginx)分发流量。
- 应用层:微服务架构,容器化部署(Docker+K8s),多区域部署。
- 数据层:主从复制MySQL,Redis缓存热点数据,分库分表。
- 监控:Prometheus+Grafana实时告警。
32. 什么是CAP理论?如何权衡?
CAP指一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance)。通常牺牲一致性(如最终一致性)换取高可用性,或通过强一致性协议(如Raft)保证数据准确。
33. 微服务与单体架构的优缺点
- 微服务:独立部署、技术栈灵活,但运维复杂、网络调用开销大。
- 单体:开发简单、性能高,但扩展性差、修改风险高。
34. 如何设计一个分布式锁?
使用Redis的`SETNX`命令实现:客户端A尝试设置锁键,若成功则持有锁;其他客户端需等待或使用Redlock算法(多Redis节点协调)。
35. 消息队列的作用及常见协议
作用:解耦系统、异步处理、削峰填谷。协议:AMQP(RabbitMQ)、Kafka协议(高吞吐)、STOMP(简单文本协议)。
未经 qmjianli.com 同意,不得转载或采集本站的文章。