云计算笔试面试题库

一、Linux系统基础(1–50)

  1. 简述Linux系统架构
    答:分为用户空间与内核空间;内核包含进程管理、内存管理、文件系统、网络协议栈、设备驱动;用户空间为应用程序、shell、命令行工具,通过系统调用和内核交互。
  2. Linux 中 rwx 权限代表什么?数字权限怎么计算?
    答:r=读4,w=写2,x=执行1;例如755= rwxr-xr-x,属主读写执行,属组和其他读+执行。
  3. chmod 和 chown 的区别?
    答:chmod 修改文件权限;chown 修改文件属主/属组。
  4. 软链接和硬链接区别?
    答:软链接:独立inode,类似快捷方式,跨分区、可链接目录,源文件删除失效;硬链接:同inode,不跨分区、不能链接目录,删除源文件链接仍可用。
  5. 简述 buffer 和 cache 的区别
    答:buffer 写缓冲,内存临时存放要刷入磁盘的数据;cache 读缓存,把磁盘热点数据缓存到内存,加速读取。
  6. top、htop、vmstat、iostat、ss、netstat 各自作用?
    答:top/htop:实时进程、CPU、内存负载;vmstat:系统整体负载、上下文切换;iostat:磁盘IO;ss/netstat:端口、TCP连接。
  7. 什么是swap交换分区?什么时候会使用swap?
    答:磁盘一块空间充当虚拟内存;物理内存不足时,内核把冷数据换入swap,缓解OOM;swap使用过高说明内存资源不足。
  8. 如何查看CPU、内存、磁盘信息?
    答:CPU:lscpu、cat /proc/cpuinfo;内存:free -h、cat /proc/meminfo;磁盘:lsblk、df -h、fdisk -l。
  9. 简述RAID0/RAID1/RAID5/RAID10原理和优缺点
    答:RAID0条带化,无冗余,读写快,坏一块全盘丢;RAID1镜像,冗余高,读快写慢;RAID5分布式奇偶校验,至少3盘,允许坏1块;RAID10先镜像再条带,性能+冗余好,成本高。
  10. 什么是inode?inode包含哪些信息?
    答:inode是文件元数据索引,存储文件大小、权限、属主、时间戳、磁盘块指针;不存储文件名。
  11. 磁盘满了但df和du结果不一致,原因?
    答:文件被进程占用删除(句柄未释放),du统计不到,但空间不释放;解决方案重启对应进程。
  12. 简述Linux 进程状态 R/S/D/Z/T
    答:R运行;S休眠可中断;D不可中断休眠(通常磁盘IO阻塞);Z僵尸进程(子进程退出父未回收);T停止。
  13. 僵尸进程如何产生,怎么处理?
    答:子进程exit,父进程没调用wait/waitpid回收;短期等父进程处理;直接方案:kill父进程,子进程由init收养回收。
  14. 什么是孤儿进程?
    答:父进程先退出,子进程被systemd/init收养,PPID=1。
  15. 怎么查找占用端口的进程?
    答:ss -ltnp、netstat -ltnp、lsof -i :端口号。
  16. crontab定时任务语法?
    答:分 时 日 月 周 命令;*代表任意,,逗号多个值,-范围,/间隔。
  17. 系统时区、时间同步怎么做?
    答:timedatectl set-timezone;chrony / ntpd 同步时间。
  18. systemd优势,unit、target含义?
    答:并行启动、按需启动、自动依赖管理;unit是最小管理单元(service/socket等);target是一组unit集合,类似运行级别。
  19. 简述CentOS7 systemctl常用命令
    答:start/stop/restart/status启用停止查看;enable/disable开机自启;list-units查看运行单元。
  20. 什么是OOM killer?
    答:内存耗尽时内核触发,挑选评分高的进程杀死,保护系统不崩溃;/var/log/messages 可看OOM日志。
  21. ulimit作用?常见配置项?
    答:限制进程资源:打开文件数nofile、进程数nproc,防止单进程耗尽系统资源。
  22. 如何永久修改open files?
    答:/etc/security/limits.conf 修改nofile,注意systemd单独限制。
  23. 简述sysctl,怎么调整内核参数?
    答:sysctl管理运行时内核(2参数;)临时sysctl -w,永久写入/etc/sysctl.conf,sysctl -p生效。
  24. 如何抓包tcp流量?
    答:tcpdump、wireshark;示例tcpdump -i eth0 port 80。
  25. dmesg命令作用?
    答:查看内核环形缓冲区日志,硬件、OOM、磁盘报错优先看dmesg。
  26. /var/log下常见日志文件?
    答:messages系统日志、secure安全/ssh登录、nginx/应用日志单独目录。
  27. grep、sed、awk各自擅长?
    答:grep过滤文本;sed流编辑,替换、删行;awk结构化文本处理、统计、列截取。
  28. 简述软硬限制soft/hard limit
    答:soft是当前生效上限,用户可临时上调;hard是最大天花板,普通用户不能突破。
  29. mount挂载参数noatime作用?
    答:不更新文件访问时间,减少磁盘写IO,优化性能。
  30. ext4和xfs区别?
    答:ext4稳定,适合小文件;xfs大磁盘、大文件性能更好,CentOS7默认。
  31. dd命令用途,注意事项?
    答:底层读写块设备,测试磁盘、制作镜像;风险极高,防止误写盘。
  32. rsync是什么?增量同步原理?
    答:远程/本地增量文件同步;校验文件块差异,只传输变化块;常用–delete保持两边一致。
  33. scp和rsync对比
    答:scp全量传输,简单;rsync增量、支持断点、节省带宽,生产优先rsync。
  34. 什么是LD_LOAD_PRELOAD?
    答:预加载自定义动态库,可劫持系统函数,排查或后门检测会用到。
  35. /etc/passwd、/etc/shadow作用?
    答:passwd存用户基础信息;shadow存放加密密码,仅root可读。
  36. 单用户模式作用?
    答:系统故障修复,重置root密码、修复fstab等。
  37. fstab字段含义,defaults包含哪些挂载选项?
    答:设备、挂载点、文件系统、挂载参数、dump、fsck顺序;defaults包含rw,suid,dev,exec,auto,nouser,async。
  38. 开机提示mount失败进emergency怎么排查?
    答:优先检查fstab、UUID、磁盘是否损坏、网络盘网络是否通。
  39. 如何查看进程打开的所有文件?
    答:lsof -p PID。
  40. 什么是上下文切换?频繁切换原因?
    答:CPU切换进程/线程;过高:进程过多、锁竞争、频繁IO,消耗CPU。
  41. nice和renice调整进程优先级
    答:nice启动时指定;renice修改运行中进程;数值越大优先级越低。
  42. 什么是cgroup?
    答:内核特性,对进程组做CPU、内存、IO资源限制,Docker底层依赖cgroup。
  43. namespaces作用?
    答:内核隔离机制,隔离PID、网络、挂载、用户等,容器底层隔离依赖namespace。
  44. 如何排查CPU负载高?
    答:top看高CPU进程,perf/mpstat看是用户us、系统sy还是软中断si;再看代码/锁/循环。
  45. 如何排查内存持续上涨?
    答:free、top、smem、valgrind,区分进程泄漏、cache占用。
  46. 磁盘IO高排查步骤?
    答:iostat看%util;iotop定位进程;看是随机读还是顺序写,优化SQL/程序。
  47. 简述TCP半开连接、time_wait
    答:半开:一方异常断开未发FIN;TIME_WAIT主动关闭方等待2MSL,确保对方收到ACK、防止旧报文干扰。
  48. Linux优化TIME_WAIT内核参数?
    答:net.ipv4.tcp_tw_reuse、tcp_syncookies等,按需调整,不盲目改。
  49. 如何禁止root直接ssh登录?
    答:sshd配置PermitRootLogin no,重启sshd。
  50. 简述PAM作用
    答:Pluggable认证模块,统一管理ssh、login等认证规则,可做密码复杂度、登录限制。

二、网络基础(51–75)

  1. OSI七层模型 + TCP/IP四层
    答:OSI:物理、数据链路、网络、传输、会话、表示、应用;TCP/IP:网络接口、网络层、传输层、应用层。
  2. TCP和UDP区别?适用场景
    答:TCP面向连接、可靠、有序、拥塞控制;文件传输、网页、数据库;UDP无连接、开销小、不可靠;直播、DNS、游戏。
  3. TCP三次握手、四次挥手过程
    答:握手:SYN→SYN+ACK→ACK;挥手:FIN→ACK,FIN→ACK(半关闭)。
  4. HTTP 301/302/304区别
    答:301永久重定向;302临时重定向;304资源未修改,走缓存。
  5. HTTP和HTTPS区别,443加密流程?
    答:HTTPS=HTTP+TLS;握手协商加密套件、交换公钥、会话加密传输。
  6. DNS递归查询、迭代查询区别
    答:递归:DNS服务器替客户端查到结果返回;迭代:服务器逐级向根、顶级域查询,返回地址给客户端自己继续查。
  7. ARP协议作用?ARP欺骗原理?
    答:IP转MAC;伪造ARP报文,篡改网关MAC,劫持流量。
  8. 什么是MTU?MTU过大问题?
    答:链路最大帧字节;大包超过MTU会分片,增加开销甚至丢包,常见1500。
  9. 路由和交换区别?
    答:交换机二层,基于MAC,内网转发;路由器三层,基于IP,跨网段。
  10. 什么是网关?
    答:跨网段出口,本机目标不在同子网时,数据包发给网关转发。
  11. traceroute原理?
    答:递增TTL,利用ICMP超时回包,探测每一跳路由。
  12. 什么是CDN?核心原理?
    答:内容分发网络;就近节点缓存静态资源,用户访问调度到边缘节点,降低源站压力、降低延迟。
  13. 负载均衡四层和七层区别?
    答:四层LVS:传输层TCP/UDP,基于IP+端口,性能高;七层Nginx/Haproxy:应用层,解析HTTP、Host、URL,支持更多策略。
  14. 什么是会话保持(session persistence)?
    答:负载均衡把同一用户请求固定转发到同一后端,适合依赖本地session的业务。
  15. 源NAT和目的NAT?
    答:SNAT:出网改源IP(内网上网);DNAT:入网改目标IP(端口映射、公网访问内网)。
  16. 什么是拥塞控制?TCP拥塞控制阶段?
    答:防止网络过载;慢启动、拥塞避免、快重传、快恢复。
  17. TCP滑动窗口作用?
    答:流量控制,接收方通告窗口大小,防止发送方发太快淹没接收端。
  18. 什么是BGP?简单说用途
    答:边界网关协议,互联网跨AS域路由,IDC、云厂商出口常用。
  19. 什么是VXLAN?
    答:Overlay网络,UDP封装二层帧,大二层网络,云主机、K8s网络常用。
  20. ICMP常见类型?ping基于ICMP Echo。
    答:echo请求应答、目标不可达、超时、重定向。
  21. 带宽、吞吐量、延迟区别
    答:带宽理论上限;吞吐量实际每秒流量;延迟数据包往返耗时。
  22. 什么是DoS、DDoS?
    答:DoS单机攻击;DDoS分布式多源,耗尽带宽/连接,防护:清洗、CDN、黑洞、限流。
  23. 什么是SYN洪水攻击?
    答:大量SYN包,不回ACK,占满服务端半连接队列;防护tcp_syncookies。
  24. 长连接短连接区别?
    答:短连接:请求完关闭TCP;长连接复用TCP,减少握手开销,HTTP/1.1 keepalive。
  25. HTTP1.1/2/3简单差异
    答:1.1支持长连接、管线化;HTTP2二进制、多路复用;HTTP3基于QUIC(UDP),握手更快,弱网友好。

三、Nginx(76–100)

  1. Nginx是什么?优势?
    答:高性能HTTP/反向代理、负载均衡;epoll模型、异步非阻塞、低内存、高并发。
  2. Nginx进程模型(master+worker)
    答:master管理worker、加载配置、热重启;worker处理连接请求,单worker单线程,无锁。
  3. worker_processes一般配置多少?
    答:通常等于CPU核心数,或auto自动识别。
  4. worker_connections含义?
    答:单个worker最大并发连接上限;总理论并发=worker数*worker_connections。
  5. Nginx反向代理和正向代理区别?
    答:反向代理:代理后端服务,对外提供入口;正向代理:代理客户端上网。
  6. proxy_pass末尾/有无区别?
    答:带/会把匹配路径后直接拼接;不带/会把location匹配内容一起带上。
  7. Nginx负载均衡策略有哪些?
    答:轮询、weight加权轮询、ip_hash、least_conn最少连接、url_hash等。
  8. ip_hash优缺点?
    答:同IP固定后端,会话保持;后端扩容、后端宕机时会话会变;IP代理场景失效。
  9. Nginx缓存原理,proxy_cache
    答:对后端响应按key缓存,直接返回缓存,减少后端压力;可设置过期、忽略缓存条件。
  10. Nginx热重载原理 nginx -s reload
    答:master加载新配置,启动新worker,旧worker处理完现有连接后优雅退出,不中断业务。
  11. 什么是Nginx跨域?怎么配置CORS?
    答:浏览器同源策略限制;add_header Access-Control-*配置。
  12. Nginx防盗链怎么实现?
    答:valid_referers校验referer,非法返回403。
  13. Nginx日志字段$request、$status、$upstream_response_time含义
    答:请求行、响应码、后端上游处理耗时(定位后端慢查询首选)。
  14. Nginx常见403原因?
    答:权限不足、目录无index文件、防盗链、IP限制、selinux、location规则拦截。
  15. 499错误含义?
    答:客户端提前关闭连接,服务端还在处理请求,多为客户端超时、断开。
  16. Nginx限流模块limit_req原理?
    答:漏桶算法,限制单位时间请求数;burst允许一定突发队列。
  17. limit_conn连接限流?
    答:限制单IP最大并发连接数。
  18. Nginx静态资源优化方案?
    答:expires缓存、gzip压缩、sendfile、tcp_nopush,CDN。
  19. gzip压缩生效条件?
    答:gzip on;指定压缩类型;仅文本类(html/js/css),图片视频一般不压。
  20. Nginx和Apache对比
    答:Nginx异步非阻塞,高并发内存低;Apache多进程/线程,稳定但高并发资源开销大。
  21. Nginx和HAProxy区别?
    答:Nginx七层为主,HTTP友好;HAProxy四层+七层,TCP负载均衡更强,适合数据库、MQ代理。
  22. location匹配优先级
    答:=精确匹配 > ^~前缀不正则 > /*正则 > 普通前缀匹配。
  23. rewrite flag last、break、redirect、permanent区别
    答:last重写后重新匹配location;break终止不再匹配;redirect302临时;permanent301永久。
  24. upstream健康检查(原生vs第三方)
    答:原生被动健康检查(失败标记down);商业版/ngx_http_healthcheck主动探测。
  25. Nginx+Keepalived高可用架构简述
    答:两台Nginx,VRRP虚拟IP;主节点持有VIP,主故障,备机抢占VIP,实现入口高可用。

四、MySQL(101–135)

  1. MySQL引擎InnoDB和MyISAM核心区别
    答:InnoDB支持事务、行锁、外键、崩溃安全;MyISAM表锁、不支持事务,查询快,易损坏。
  2. 事务ACID
    答:原子性、一致性、隔离性、持久性。
  3. 事务4种隔离级别,默认?
    答:读未提交、读已提交RC、可重复读RR(InnoDB默认)、串行化;RR解决幻读靠MVCC+间隙锁。
  4. MVCC原理?
    答:多版本并发控制,undo日志保存历史快照,读快照不加锁,实现无锁读;靠事务ID、read view。
  5. 什么是脏读、不可重复读、幻读?
    答:脏读读到未提交数据;不可重复读同一事务内同查询结果变(其他事务修改提交);幻读同一范围行数变化(插入)。
  6. InnoDB行锁、表锁、意向锁?
    答:DML命中索引走行锁;无索引退化为表锁;意向共享/排他锁,协调行锁表锁冲突检测。
  7. 间隙锁、临键锁作用?
    答:RR级别防止幻读;临键锁=索引+间隙,锁定区间禁止插入。
  8. B+树索引特点,为什么不用B树?
    答:B+树数据全在叶子、有序链表、非叶子只存key;范围查询、分页更好,IO更少。
  9. 聚簇索引 vs 二级索引
    答:聚簇索引叶子存整行数据,主键即聚簇;二级索引叶子存主键值,回表查询拿完整数据。
  10. 覆盖索引是什么?好处?
    答:查询字段全部在索引里,不需要回表,减少IO,优化显著。
  11. 最左前缀原则?
    答:联合索引从左往右匹配,跳过一列则后面失效。
  12. explain字段type,性能从优到劣
    答:system>const>eq_ref>ref>range>index>ALL(全表扫描)。
  13. extra里Using filesort、Using temporary含义?
    答:filesort文件排序,没利用索引排序;temporary临时表,常见group by无索引。
  14. 慢查询是什么?如何开启慢日志?
    答:超过long_query_time的SQL;slow_query_log=ON,指定日志路径,优化优先抓慢SQL。
  15. MySQL主从复制原理?
    答:主库binlog记录变更;IO线程拉取binlog到从库relay log;SQL线程回放日志,同步数据。
  16. 主从异步、半同步、组复制区别
    答:异步主写完直接返回,丢数据风险;半同步至少一个从收到binlog ack再返回;MGR组复制,多数派确认,强一致高可用。
  17. 主从延迟常见原因和排查?
    答:从库单SQL线程回放、大事务、无索引、网络、从库资源不足;看Seconds_Behind_Master,解析relay日志。
  18. binlog三种格式statement/row/mixed
    答:statement记录SQL语句,省空间,函数/随机数可能不一致;row记录行变更,精准,体积大;mixed混合。
  19. redo log、undo log作用
    答:redo崩溃恢复,事务提交持久化;undo保存数据快照,MVCC+回滚事务。
  20. delete/truncate/drop区别
    答:delete逻辑删除、可回滚、不重置自增;truncate清空表、DDL、不可回滚、重置自增;drop删除表结构+数据。
  21. 大表加索引注意什么?
    答:5.6+Online DDL,避免锁表;业务低峰操作,防止主从延迟。
  22. MySQL优化通用思路
    答:SQL优化、索引优化、分库分表、读写分离、参数调优、硬件升级。
  23. 读写分离架构?
    答:主写,多个从读;应用层或中间件代理路由读写。
  24. 分库分表垂直/水平拆分
    答:垂直按字段拆表;水平按ID哈希/范围拆分数据行,解决单表过大。
  25. 什么是死锁?怎么排查?
    答:互相持有对方锁并等待;show engine innodb status查看死锁日志,优化事务顺序、缩小事务。
  26. max_connections、wait_timeout含义
    答:最大连接数;空闲连接超时自动断开。
  27. buffer pool作用?
    答:InnoDB核心,缓存页数据和索引,减少磁盘IO;生产尽量调大。
  28. 主从切换流程(手动)
    答:停止写入、确认binlog同步完成、提升从为主、业务切新主、重建其他从。
  29. MHA是什么?能力?
    答:MySQL高可用工具;监控主库故障,自动选从提升为主,补差异binlog,切换VIP。
  30. 备份mysqldump、xtrabackup区别
    答:mysqldump逻辑备份,导出SQL,适合小库;xtrabackup物理热备,InnoDB不锁表,适合大库。
  31. 全量+增量备份方案
    答:xtrabackup全量,后续增量;恢复先全量+增量,apply log,启动实例。
  32. 备份一定要做恢复演练?
    答:是,备份不可恢复等于没备份。
  33. 什么是SQL注入?简单防护
    答:拼接用户输入执行SQL;预编译语句、参数化查询、输入过滤,禁止直接拼接。
  34. 连接池作用?
    答:复用数据库连接,避免频繁TCP握手、创建销毁连接开销,控制并发。
  35. MySQL常见报错:Too many connections
    答:连接数打满;检查慢SQL长连接泄漏,调高max_connections,优化业务。

五、Redis(136–165)

  1. Redis是什么?特点?
    答:内存KV数据库,可持久化;高性能、多数据结构、单线程模型、原子命令。
  2. Redis单线程模型?为什么快?
    答:命令执行单线程,IO多路复用epoll;瓶颈不在CPU,而在网络/内存;多核可多实例。
  3. 5种基础数据结构及适用场景
    答:string:缓存、计数器;list:消息队列、栈;hash:对象存储;set:去重、交集;zset:排行榜、延时队列。
  4. RDB和AOF持久化区别
    答:RDB快照,二进制文件,压缩,恢复快,丢最后一次快照数据;AOF追加命令日志,数据更安全,文件体积大,可rewrite压缩。
  5. RDB触发方式?
    答:save手动、bgsave后台fork子进程、配置定时save、shutdown、主从同步触发。
  6. AOF rewrite原理?
    答:合并日志,精简重复命令,减少AOF体积,fork子进程执行,不阻塞主线程。
  7. 缓存穿透、击穿、雪崩(必考)
    答:穿透:查不存在key,绕过缓存打DB → 空值短TTL缓存/布隆过滤器;击穿:热点key过期瞬间流量打DB → 永不过期/互斥锁;雪崩:大量key同时过期 → 过期时间加随机值、集群、限流降级。
  8. Redis过期删除策略?
    答:惰性删除(访问才删)+定期随机采样删除;不是到期立刻删。
  9. 内存淘汰策略maxmemory-policy
    答:volatile-lru、allkeys-lru、volatile-random、noeviction(默认,满内存报错)等。
  10. Redis主从复制原理
    答:从发PSYNC;主RDB全量同步,后续命令增量同步;异步复制。
  11. Redis哨兵Sentinel作用
    答:监控主从、自动故障转移、客户端服务发现;集群部署防止哨兵单点,多数派投票选新主。
  12. Redis Cluster集群原理
    答:去中心化,16384哈希槽;主节点分配槽,key CRC16取模映射槽;MOVED重定向;主从故障转移;不支持跨槽多key事务。
  13. Cluster为什么16384槽?
    答:兼顾分片、心跳包bitmap大小,2^14=16384。
  14. Redis事务?MULTI/EXEC,原子性?
    答:命令入队,exec批量执行;不支持回滚,语法错误整体失败,运行时错误不会回滚。
  15. Lua脚本优势?
    答:原子执行、减少网络往返;集群注意脚本key必须在同一槽。
  16. 什么是Pipeline?
    答:批量打包多条命令,减少RTT,非事务,中间可部分成功。
  17. Redis分布式锁方案(SETNX+过期)
    答:SET key value NX EX;注意:锁超时、业务没执行完风险;用redlock或续期;释放用Lua保证原子。
  18. RedLock简单理解?
    答:多独立Redis实例,过半获取锁才算成功,降低单实例宕机丢锁风险。
  19. 大key问题危害,怎么排查优化?
    答:大key删除阻塞主线程、网卡突增;redis-cli –bigkeys扫描;拆分大hash/list。
  20. 热key问题?方案?
    答:大量请求同一个key,CPU打满;本地二级缓存、代理层缓存、分片。
  21. Redis慢查询
    答:slowlog记录执行耗时命令;注意:不含网络往返时间,只算服务端执行。
  22. 避免Redis作为消息队列丢消息?
    答:持久化+确认机制;生产优先专业MQ如RabbitMQ/Kafka。
  23. 主从复制增量同步PSYNC2
    答:支持复制偏移量、replid,避免每次全量同步。
  24. Redis网络模型IO多路复用
    答:epoll监控多个socket事件,单线程处理就绪事件。
  25. 集群扩容槽迁移过程?
    答:reshard迁移哈希槽,在线迁移,业务基本无感。
  26. Redis和Memcached对比
    答:Redis多结构、持久化、主从/集群、Lua;Memcached简单string、无持久化、多核。
  27. 安全:密码、rename危险命令
    答:requirepass设置密码;rename-command禁用flushall/keys等高风险命令。
  28. keys命令为什么禁止在线上?替代方案?
    答:全库扫描,阻塞;用scan迭代遍历。
  29. Redis监控重点指标
    答:内存、命中率、连接数、命令耗时、fork耗时、主从延迟、key过期淘汰数。
  30. 如何做Redis高可用选型?
    答:中小规模哨兵;大规模分片用Cluster;强一致性不适合单纯Redis。

六、MongoDB(166–180)

  1. MongoDB是什么?文档型NoSQL,BSON结构。
  2. 集合、文档、字段对应关系(类似表、行、列)
  3. 索引类型:单字段、复合、唯一、文本、地理索引
  4. _id索引默认存在,不可删除。
  5. 副本集Replica Set作用?主从+自动选举高可用,读可分流从节点。
  6. 副本集投票、仲裁节点arbiter:只投票不存数据,节省资源。
  7. 分片集群组件:mongos路由、shard分片、config元数据副本集。
  8. 分片键选择要点:基数高、分布均匀,避免热点。
  9. 读写关注点:读优先从库注意数据最终一致性。
  10. W写关注、R读关注,控制一致性和持久化。
  11. oplog:副本集增量同步日志,类似binlog。
  12. 大集合建索引业务低峰,避免锁。
  13. MongoDB事务支持版本(4.0+副本集,4.2+分片)
  14. 聚合管道aggregate常用阶段match/project/sort/group
  15. 备份mongodump逻辑,mongorestore恢复;大库考虑物理备份。

七、负载均衡&高可用:LVS、Keepalived(181–200)

  1. LVS是什么?四层负载均衡,内核netfilter实现,性能极强。
  2. LVS三种模式NAT、DR、TUN原理对比
    答:NAT:双向流量经过LVS,改IP;DR直接路由,仅入流量经过LVS,后端回包直出,最常用;TUNIPIP隧道,跨网段后端。
  3. DR模式后端服务器配置要点:VIP回环、抑制ARP响应。
  4. LVS调度算法:rr、wrr、lc、wlc、sh、dh等;wlc加权最少连接常用。
  5. LVS无健康检查?一般结合脚本/keepalived做后端探测。
  6. Keepalived基于VRRP协议,实现虚拟IP漂移,高可用。
  7. VRRP:虚拟路由冗余,主备抢占VIP,组播通告状态。
  8. nopreempt非抢占模式:主恢复后不抢VIP,避免频繁切换抖动。
  9. keepalived健康检查:TCP/HTTP/脚本探测后端,失败降低优先级,触发切换。
  10. LVS+Keepalived经典四层高可用架构
  11. 四层和七层负载均衡选型:大流量四层LVS;需要URL/Host/内容路由选Nginx/Haproxy。
  12. 什么是ARP抑制(DR模式必考点)
  13. 权重调整场景:后端配置不一样,高配加大权重。
  14. 会话保持在LVS sh源地址哈希。
  15. 脑裂是什么?VRRP脑裂:主备同时拿到VIP;原因:组播不通、防火墙拦截;防范:单播、双链路、仲裁、告警。
  16. 切换后业务断连?四层TCP连接不会重建,视业务是否感知VIP。
  17. 高可用核心指标RTO、RPO
    答:RTO恢复时间目标;RPO数据丢失容忍量。
  18. 容灾和高可用区别:HA同机房故障转移;容灾跨地域灾难恢复。
  19. 双活、两地三中心概念简述
  20. 故障演练必要性:验证切换流程、发现隐藏问题。

八、防火墙iptables(201–215)

  1. iptables是用户空间工具,操作netfilter内核框架。
  2. 四表五链(filter、nat、mangle、raw;INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING)
  3. filter表默认,做包过滤;nat表做SNAT/DNAT。
  4. 规则匹配顺序从上到下,匹配即停止(默认策略最后)。
  5. -A追加、-I插入、-D删除、-L查看、-F清空。
  6. ACCEPT、DROP、REJECT区别:DROP静默丢包;REJECT返回拒绝报文。
  7. 状态模块state:NEW、ESTABLISHED、RELATED、INVALID;放行回包常用–state ESTABLISHED,RELATED。
  8. SNAT POSTROUTING;DNAT PREROUTING。
  9. 端口转发DNAT示例思路
  10. 保存iptables规则:centos6 service save;7+iptables-save重定向文件。
  11. 安全基线:默认策略DROP,最小权限放行。
  12. 防止ssh暴力破解:限流、fail2ban、密钥登录。
  13. iptables和firewalld关系:firewalld封装iptables,zone管理。
  14. 并发大量规则性能:规则太多顺序优化,靠前放高频匹配。
  15. 云服务器优先安全组,主机内iptables为辅,双层防护。

九、监控Zabbix(216–230)

  1. Zabbix组件:Server、Agent、Proxy、Web、DB、Sender、Getter。
  2. Agent主动模式、被动模式区别
    答:被动:server拉取数据;主动agent推送,适合大量节点,减轻server压力。
  3. Proxy作用:分布式监控,分担server压力,跨机房。
  4. item监控项、trigger触发器、action动作(告警/执行脚本)
  5. 模板Template:复用监控项、触发器,批量主机管理。
  6. 数据采集方式:agent、snmp、ipmi、ssh、脚本、JMX。
  7. 监控数据保留:历史数据、趋势数据,定期清理,防止DB膨胀。
  8. 告警媒介:邮件、钉钉/企业微信机器人、短信。
  9. 监控分层:硬件、系统、网络、中间件、业务指标。
  10. 监控四大黄金指标:延迟、流量、错误、饱和度。
  11. 告警风暴怎么抑制:告警收敛、依赖关系、OK恢复通知、分级。
  12. 自定义监控项:UserParameter,写脚本输出指标。
  13. Zabbix数据库优化:分区表、定期清理历史、分离DB。
  14. SNMP监控网络设备:oid获取指标。
  15. 同类方案对比:Prometheus+Grafana时序数据库,云原生更流行;Zabbix传统运维成熟。

十、自动化Ansible(231–245)

  1. Ansible是什么?无代理自动化工具,SSH通信,不用装agent。
  2. 核心组件:Inventory主机清单、Module模块、Playbook剧本、Role角色。
  3. 临时命令ad-hoc适合简单一次性操作。
  4. Playbook YAML编写,顺序执行task,支持handler(notify触发,仅变更时执行)。
  5. Inventory静态ini、动态inventory(云API自动拉主机)
  6. 常用模块:copy、file、service、yum/apt、command/shell、template。
  7. command和shell区别:command不支持管道重定向;shell支持,慎用防注入。
  8. template jinja2模板,变量渲染配置文件。
  9. role目录规范:tasks、handlers、vars、defaults、files、templates、meta
  10. 变量优先级:extra-vars最高 > play > host_vars/group_vars > defaults
  11. 串行执行serial、异步async轮询poll,适合慢任务。
  12. ansible vault加密敏感密码变量。
  13. 批量管理上千台优化:ssh pipelining、加速、分批、启用proxy。
  14. 幂等性:重复执行结果一致,不产生副作用(核心设计思想)
  15. Ansible和Saltstack对比:Ansible无agent简单;Saltstack agent模式,大规模更快。

十一、Docker容器(246–270)

  1. Docker是什么?操作系统级虚拟化,基于namespace隔离+cgroup资源限制+联合文件系统。
  2. Docker和传统虚拟机区别
    答:容器共享宿主机内核,秒启动、体积小、开销低;虚拟机完整OS内核,Hypervisor,资源开销大,分钟级启动。
  3. Docker镜像、容器、仓库概念
    答:镜像只读模板;容器镜像运行实例;仓库Registry存放镜像(DockerHub/Harbor私有)。
  4. UnionFS联合文件系统,分层镜像,复用层,节省空间。
  5. Dockerfile指令:FROM基础镜像、RUN执行命令、COPY复制本地、ADD可解压远程、WORKDIR、EXPOSE、ENV、CMD、ENTRYPOINT
  6. COPY和ADD区别:ADD支持自动解压tar、远程url;COPY仅本地文件,推荐优先COPY。
  7. CMD和ENTRYPOINT区别:CMD默认参数,可被docker run覆盖;ENTRYPOINT固定入口,CMD作为参数。
  8. 镜像优化要点:精简基础镜像(alpine)、合并RUN减少层数、清理缓存、不要放密钥。
  9. 数据持久化三种:volumes(托管卷,优先推荐)、bind mounts绑定宿主机目录、tmpfs临时内存挂载。
  10. Docker网络模式:bridge默认桥接、host共享宿主机网络、none无网络、container复用其他容器网络、macvlan。
  11. bridge原理:docker0网桥,NAT转发容器流量。
  12. 容器日志驱动,避免日志打满磁盘,限制max-size。
  13. docker资源限制–cpus –memory,底层cgroup。
  14. 容器安全:非root用户运行、只读文件系统、capabilities裁剪、镜像扫描漏洞。
  15. 容器编排Docker Compose单机多容器定义,YAML,开发测试常用,生产大规模一般K8s。
  16. 镜像私有仓库Harbor:权限、漏洞扫描、镜像复制。
  17. docker save/load导出导入镜像;docker export/import导出容器快照(丢失层信息)。
  18. 容器IP漂移,不要依赖容器固定IP通信,服务发现。
  19. 什么是镜像漏洞扫描?Trivy/Harbor扫描CVE。
  20. 容器里不要跑sshd,优先exec进入容器。
  21. docker build缓存机制,变更指令之后层全部重建,顺序优化减少构建时间。
  22. 容器PID 1进程问题:必须能收信号,避免僵尸进程;exec形式CMD更好。
  23. 生产禁止特权容器–privileged,权限过高风险大。
  24. 镜像版本规范,不要latest标签上线,不可控。
  25. 容器监控:cadvisor、prometheus exporter,监控容器CPU/内存/磁盘/网络。

十二、Tomcat(271–285)

  1. Tomcat是Java Servlet容器,轻量Web应用服务器,非完整JEE。
  2. Connector连接器:HTTP/1.1、AJP协议;线程池处理请求。
  3. Engine、Host、Context:引擎、虚拟主机、单个web应用上下文。
  4. BIO/NIO/NIO2协议,NIO异步非阻塞性能更好。
  5. 线程池maxThreads配置,过大上下文切换高,过小排队。
  6. JVM参数-Xms -Xmx堆内存,建议相等减少GC扩容;-XX:+UseG1GC垃圾回收。
  7. PermGen/Metaspace元空间(JDK8+移除永久代,Metaspace本地内存)
  8. GC日志、dump堆:OOM时-XX:+HeapDumpOnOutOfMemoryError
  9. Tomcat调优:JVM、连接器线程、apr、静态资源前置Nginx。
  10. Nginx+Tomcat架构:Nginx静态、负载均衡、SSL;Tomcat处理Java动态。
  11. session共享方案:Redis存储session、session复制(不推荐大规模)
  12. AJP协议作用,Nginx AJP代理。
  13. 热部署:生产慎用,易内存泄漏;发布优先重启或滚动发布。
  14. 常见OOM排查:堆泄漏、元空间满、线程过多。
  15. 访问日志、线程dump:jstack抓线程快照,定位死锁/阻塞。

十三、Shell脚本(286–310)

  1. #!/bin/bash解释器声明
  2. 变量定义、引用${var},双引号解析变量,单引号原样。
  3. 位置参数$0脚本名 $1 $2(2参数;)$#参数个数;$@所有(2参数;)$?上条命令返回码,0成功非0失败。
  4. if判断、[]和[[]]区别;[[支持正则、&&||,更安全。
  5. for循环、while循环,read按行读取文件。
  6. 函数定义、返回值return(仅0-255),复杂输出用echo捕获。
  7. 重定向>覆盖、>>追加;2>&1标准错误合并到标准输出。
  8. set -e脚本遇错误退出;set -u未定义变量报错;set -x调试打印命令。
  9. 数组定义与遍历。
  10. 正则=~在[[ ]]内匹配。
  11. 监控脚本通用结构:采集指标→判断阈值→异常告警。
  12. 写shell注意防注入,变量加引号。
  13. 子shell()和{}区别
  14. crontab脚本注意环境变量,定时任务PATH不全问题。
  15. 简单示例:监控MySQL主从状态,延迟超阈值发告警。
  16. 简单示例:批量ping网段IP存活。
  17. awk字段$0整行 $1第一列,BEGIN/END块。
  18. sed替换sed ‘s/a/b/g’,-i原地修改。
  19. 字符串截取、长度计算。
  20. 整数运算$(( ));小数用bc。
  21. 文件存在、目录存在、是否可读可写判断。
  22. 退出码规范,0成功,业务自定义错误码。
  23. 脚本日志规范,输出时间、信息,方便排查。
  24. 信号trap捕获SIGINT,做清理动作。
  25. 生产脚本尽量加注释、参数校验、异常分支,不要裸写。

十四、Hadoop基础(311–325)

  1. Hadoop三大组件HDFS分布式存储、MapReduce计算、YARN资源调度。
  2. HDFS NameNode元数据管理,DataNode存真实块,默认块128M。
  3. 副本机制默认3副本,机架感知,跨机架放副本提升可用性。
  4. NameNode单点问题:HA双NN,QJM共享editlog,ZKFailoverController故障转移。
  5. SecondaryNameNode不是备NN,仅定期合并fsimage+editlog,做检查点。
  6. YARN:ResourceManager全局调度,NodeManager节点代理,Container资源容器。
  7. HDFS读写流程简述
  8. 小文件问题危害:占用NN大量内存;方案合并小文件、HAR、Spark预处理。
  9. HDFS适合大文件高吞吐,低延迟随机读不擅长。
  10. 安全模式safemode:启动校验块副本,不允许写,退出后正常读写。
  11. 机架感知目的:就近读、副本跨机架容灾。
  12. MapReduce Shuffle阶段核心,排序分区。
  13. HDFS权限、ACL
  14. 数据平衡Balancer,节点容量不均迁移块。
  15. 生态:Hive数仓、HBaseKV、Spark/Flink替代MR。

十五、通用运维、发布、故障、安全、项目经验(326–422)

下面为综合运维场景、面试开放式问答,适合收尾深挖

  1. 简述你维护过的业务架构、服务器规模
  2. 常规服务器巡检项目清单
  3. 备份策略怎么设计(全量/增量、周期、保留时长、恢复演练)
  4. 日志管理方案:ELK/Loki,采集、存储、检索、告警、日志轮转
  5. ELK组件:Elasticsearch存储检索、Logstash采集过滤、Kibana可视化;Filebeat轻量采集替代logstash shipper
  6. 线上故障处理通用流程:止损优先→保留现场→根因分析→复盘→优化
  7. 故障四原则:先恢复业务,后定位根因;保留证据;及时同步;事后复盘
  8. 什么是灰度发布、金丝雀发布?
    答:少量流量上线新版本,验证后全量,控制爆炸半径。
  9. 蓝绿发布:两套环境,新版本验证完成直接切流量,回滚快。
  10. 滚动发布:分批替换实例,业务不中断。
  11. CI/CD是什么?持续集成、持续交付;工具GitLab CI、Jenkins、ArgoCD等
  12. 代码上线流程(标准):git提交→CI构建单元测试→镜像/包制品→测试环境验证→灰度→全量→监控告警
  13. 如何做容量规划?历史流量、峰值、预留冗余、压测。
  14. 压力测试工具:ab、wrk、jmeter、vegeta;区分并发、QPS、RT。
  15. 压测注意:禁止直接压生产;压前评估,限流兜底。
  16. 什么是限流、降级、熔断?
    答:限流控制请求上限;降级关闭非核心功能保核心;熔断连续失败快速失败,不持续重试下游。
  17. 链路追踪作用:SkyWalking、Jaeger,定位慢调用、跨服务耗时。
  18. 基线、变更管理:所有线上变更工单、审批、回滚方案、窗口期。
  19. 变更风险评估、回滚方案是上线必备。
  20. 权限最小化原则,运维账号审计、操作留痕。
  21. 服务器安全基线:关闭无用服务、SSH密钥、弱密码扫描、定期更新补丁。
  22. 漏洞管理:漏洞扫描、风险分级、修复窗口、应急修复高危漏洞。
  23. 什么是基线巡检、合规检查?
  24. 账号审计:登录日志、sudo审计、操作审计。
  25. 勒索病毒防护:备份隔离、最小权限、端口收紧、定期补丁、防病毒。
  26. 服务器入侵排查思路:账号、定时任务、进程、网络连接、可疑文件、日志。
  27. 木马、后门常见排查点:异常进程、陌生crontab、ld_preload、ssh后门。
  28. 什么是堡垒机?运维统一入口、录像审计、权限管控。
  29. 多机房、异地容灾设计思路
  30. 灾备演练怎么做?
  31. 什么是单链路、单点故障?消除单点手段
  32. 机房断电、交换机故障、硬盘损坏应急处置
  33. 数据库误删数据应急:停写、拿备份+binlog恢复,禁止继续写入覆盖数据
  34. 大促、峰值保障预案:压测、扩容、限流、降级、值班、预演
  35. 运维文档价值:架构图、部署文档、故障预案、变更手册、知识库
  36. 运维资产台账:服务器、域名、证书、中间件、账号、IP
  37. 域名解析、TTL、CNAME、A记录、MX记录
  38. SSL证书有效期、证书轮换、证书监控告警
  39. 什么是HSTS?防止降级HTTP劫持
  40. 证书过期故障案例
  41. 什么是API网关?作用:鉴权、限流、路由、监控、日志
  42. 消息队列Kafka/RabbitMQ用途:削峰、解耦、异步
  43. MQ重复消费、消息丢失、消息积压怎么处理
  44. 分布式系统三大难题:一致性、可用性、分区容错CAP
  45. CAP理论:分布式系统无法同时满足三者;P分区容错必存在,选CP或AP
  46. BASE理论:基本可用、柔性状态、最终一致性,互联网业务常用
  47. 分布式事务方案简述(TCC、SAGA、本地消息表、可靠消息)
  48. 分布式ID方案:雪花算法、数据库自增、Redis、号段
  49. 接口幂等性:防止重复请求产生脏数据;token、唯一请求号、状态机
  50. 什么是服务注册发现?Consul/Nacos/Eureka/etcd
  51. 配置中心作用:统一配置、动态推送,不用重启服务
  52. 什么是云主机、ECS、块存储、对象存储OSS
  53. 对象存储适合静态资源、备份;不适合低延迟频繁修改
  54. 私有云、公有云、混合云区别
  55. 基础设施即代码IaC:Terraform、Ansible,资源代码化,可版本管理
  56. Terraform作用:云资源编排,管理ECS、VPC、存储,状态文件维护资源
  57. VPC、子网、安全组、NAT网关、负载均衡CLB
  58. 云厂商计费模式:按量、包年包月、预留实例
  59. 云资源成本优化:闲置资源清理、弹性伸缩、预留实例、压缩存储
  60. 弹性伸缩AutoScaling:根据CPU/负载自动扩缩容,应对波动流量
  61. 监控告警降噪策略,避免告警疲劳
  62. 告警分级P0/P1/P2,响应SLA不同
  63. SLA、可用性99.9%/99.99%,计算允许年停机时长
  64. 架构图绘制要素:节点、网络、流量方向、存储、高可用组件
  65. 压测发现瓶颈常见位置:DB、缓存、CPU、连接数、带宽、锁竞争
  66. 慢业务排查通用思路:前端→Nginx→应用→DB/Redis;看链路耗时、慢日志、线程栈
  67. 线上CPU打满排查完整步骤
  68. 线上内存泄漏排查完整步骤
  69. 大量TIME_WAIT连接怎么分析和优化
  70. 大量CLOSE_WAIT是什么原因?应用没及时关闭socket
  71. TCP连接数打满排查
  72. 网卡带宽跑满排查
  73. 磁盘只读(ro)常见原因:文件系统错误、磁盘故障、配额
  74. 文件系统只读应急:umount fsck修复,优先业务止损
  75. 服务器时钟不一致危害:日志错乱、证书、分布式锁、主从复制
  76. 什么是原子操作?分布式场景依赖原子操作防竞争
  77. 缓存设计通用套路:缓存+DB、更新策略(Cache Aside常用)
  78. Cache Aside读:先缓存,miss读DB,回写缓存;写:先DB,再删缓存
  79. 缓存更新策略对比,以及数据不一致风险
  80. 什么是缓存预热?大促前提前加载热点key
  81. 多级缓存:本地缓存→分布式缓存→数据库
  82. 什么是业务指标(PV、UV、QPS、RT、错误率),区分系统指标
  83. 如何统计PV UV,注意去重
  84. 接口错误率突增排查路径
  85. 跨机房同步、数据异步延迟业务影响评估
  86. 什么是流量染色、灰度权重控制
  87. 混沌工程:主动注入故障验证系统韧性(生产谨慎)
  88. 运维自动化落地步骤:先标准化→脚本→工具→平台
  89. 运维平台能做什么:资产、工单、发布、监控、堡垒机、自助申请
  90. 你做过最有价值的运维优化项目(面试高频开放题,准备STAR)
  91. 遇到最难处理的线上故障是什么?怎么排查、怎么恢复、后续优化
  92. 怎么和开发、测试、产品协作?
  93. 运维如何避免背锅?变更留痕、监控告警、预案、及时同步、复盘
  94. 怎么学习新技术?云原生、监控、安全方向
  95. 你怎么看待运维(传统运维→云原生SRE演变)
  96. SRE和传统运维区别:SLI/SLO/SLA、自动化、减少人工操作、工程化
  97. 你的职业规划(面试收尾题)
上一篇
下一篇