Skip to content

服务器运维面试题库 ​

生成时间:2026-05-24 19:42


【面试题】1. Nginx的worker_processes和worker_connections参数如何配置才能支持高并发? ​

【标准答案】worker_processes建议设置为CPU核心数或auto,比如8核服务器就设为8。worker_connections根据业务场景调整,一般设为10240到65535之间。计算公式是:最大并发连接数 = worker_processes × worker_connections。比如8核服务器设10240,理论上支持8万并发。但实际还要看系统文件描述符限制,需要同步调整ulimit -n和sysctl的fs.file-max参数。建议生产环境worker_processes=auto,worker_connections=10240,同时配合epoll事件模型使用。


【面试题】2. Linux系统出现大量TIME_WAIT连接,如何分析和解决? ​

【标准答案】先用netstat或ss命令统计TIME_WAIT数量,ss -s最快。原因是短连接频繁创建销毁,四次挥手后主动关闭方会进入TIME_WAIT,默认等2MSL(60秒)才释放。解决方案分三种:一是优化内核参数,开启tcp_tw_reuse和tcp_tw_recycle(注意nat环境慎用),调整tcp_max_tw_buckets阈值;二是应用层改用长连接或连接池,从根本减少短连接;三是负载均衡层面,比如Nginx配置upstream的keepalive保持长连接。生产环境推荐方案二加方案三组合使用,内核参数调整作为辅助手段。


【面试题】3. Nginx配置反向代理时,如何确保后端服务器故障时自动切换? ​

【标准答案】核心是upstream模块的健康检查。配置里加上server后端IP:端口 weight=5 max_fails=3 fail_timeout=30s,max_fails是失败阈值,fail_timeout是判定故障时间窗口。比如设成max_fails=3 fail_timeout=30s,30秒内失败3次就标记为不可用,流量自动切到其他节点。如果用商业版Nginx Plus,有主动健康检查功能,可以配置interval检查间隔。开源方案可以用第三方模块nginx_upstream_check_module,或者配合Keepalived做VIP漂移。配置好proxy_next_upstream参数,指定哪些错误触发重试,比如error timeout http_502 http_503 http_504。


【面试题】4. 服务器磁盘满了但df显示还有空间,可能是什么原因?如何排查? ​

【标准答案】这种情况通常是文件被删除但进程仍占用,导致空间未真正释放。用lsof | grep deleted命令查看已删除但仍被占用的文件,能看到进程PID和文件大小。找到占用进程后,如果是日志进程可以重启应用释放,或者用echo > /proc/PID/fd/文件描述符 清空。如果是进程可停止,systemctl restart重启服务。另一种可能是inode耗尽,用df -i检查inode使用率,删除大量小文件释放inode。预防措施包括:日志配置自动轮转切割,应用日志定期归档清理,监控磁盘使用率告警。


【面试题】5. Tomcat启动很慢,从哪些方面排查和优化? ​

【标准答案】先看日志找到卡在哪里,catalina.out和localhost.log。常见原因:一是SecureRandom熵源阻塞,JVM启动时/dev/random阻塞导致,改成-Djava.security.egd=file:/dev/./urandom;二是应用初始化慢,检查是否有大量Bean加载、数据库连接池初始化、缓存预热,可以懒加载或异步初始化;三是JVM参数不合理,初始堆太小导致频繁GC,调整-Xms和-Xmx,建议生产环境设成相同值,比如-Xms2g -Xmx2g;四是Connector配置,maxThreads太大反而慢,根据并发调整,一般200-500合适。优化后启动时间从分钟级降到秒级,同时配置并行初始化,-XX:+UseParallelGC。


【面试题】6. 如何配置Nginx的SSL/TLS以达到生产级安全标准? ​

【标准答案】分三步走。证书层面:使用可信CA签发的证书,避免自签名;配置完整的证书链,server.crt后面拼接中间证书。协议和加密套件:ssl_protocols TLSv1.2 TLSv1.3,禁用SSLv3和TLSv1.0;ssl_ciphers选择高强度套件,推荐ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256,加:!aNULL:!MD5排除不安全算法;ssl_prefer_server_ciphers on让服务端优先选择。性能优化:开启ssl_session_cache共享会话缓存,ssl_session_timeout设1天减少握手;启用OCSP Stapling加速证书验证,ssl_stapling on。安全加固:添加HSTS头部,add_header Strict-Transport-Security "max-age=31536000"; 配置HPKP防止中间人攻击。最后用nmap或openssl s_client测试验证,确保评分达到A或A+。


【面试题】7. 服务器遭遇DDoS攻击,如何应急处理和防护? ​

【标准答案】应急处理四步走:一是流量清洗,接入云厂商的DDoS高防IP,阿里云DDoS防护、腾讯云大禹等,把攻击流量引流到清洗中心;二是封禁攻击源,通过日志或流量分析找到攻击IP,iptables -A INPUT -s 攻击IP -j DROP批量封禁,或者用ipset管理大IP段;三是应用层防护,Nginx配置限流limit_req_zone和limit_conn_zone限制单IP请求频率,启用验证码或JS挑战过滤机器人流量;四是DNS切换,把域名解析切到备用IP或CDN,隐藏真实源站IP。长期防护架构:前端接CDN或WAF,阿里云盾、腾讯云WAF或Cloudflare;Nginx层限流黑名单;应用层接口频率限制;数据库读写分离抗压。监控告警要及时,流量异常时第一时间通知,自动触发防护策略。


【面试题】8. Prometheus + Grafana监控体系如何搭建?关键监控指标有哪些? ​

【标准答案】架构是Exporter采集指标,Prometheus抓取存储,Grafana可视化展示。部署流程:先装node_exporter监控服务器基础指标(CPU、内存、磁盘、网络);应用层面装对应Exporter,比如mysql_exporter、nginx-vts-exporter;Prometheus配置scrape_configs添加抓取目标;Grafana导入Prometheus数据源,选择现成Dashboard模板,ID 8919监控Linux,ID 7362监控MySQL。关键指标分四类:基础设施监控CPU使用率(100 - rate(node_cpu_seconds_total))、内存使用率、磁盘IO、网络带宽;应用监控进程存活、端口存活、接口响应时间、QPS并发数;业务监控订单量、错误率、用户活跃数;告警规则配置CPU超80%告警、磁盘使用率超85%告警、服务宕机告警。告警通知用Alertmanager配置,支持邮件、钉钉、企业微信多渠道。


【面试题】9. Docker容器资源限制如何配置?有哪些坑需要避免? ​

【标准答案】配置用docker run参数:--cpus限制CPU核数,比如--cpus=1.5表示最多使用1.5核;--memory限制内存,--memory=2g表示最多2GB;--memory-swap限制内存加交换分区,设成和memory相同禁用swap。docker-compose里用resources字段,limits和reservations区分硬限制和软限制。常见坑:一是内存设太小导致OOM Killed,Java应用要配合JVM参数-XX:MaxRAM,否则JVM看不到容器限制,建议设为容器内存的75%;二是CPU限制不精确,容器看到的是宿主机全部CPU,应用可能错误计算并发数,需要用lscpu或cat /sys/fs/cgroup/cpu/cpu.cfs_quota_us获取真实限制;三是存储驱动问题,overlay2性能最好,生产环境要配置;四是容器重启后数据丢失,重要数据必须挂载volume。监控容器资源用docker stats实时查看,或集成cAdvisor+Prometheus做历史分析。


【面试题】10. 线上服务502错误,如何快速定位和解决? ​

【标准答案】502是网关错误,Nginx无法从上游服务器获取响应。定位流程:第一步看Nginx error.log,找到具体报错信息,upstream timed out、connect() failed还是其他;第二步检查后端服务,ps aux或systemctl status看进程是否存活,netstat -tlnp看端口是否监听;第三步网络连通性,telnet或curl测试后端IP端口是否通,防火墙iptables -L是否放行;第四步资源检查,top看CPU内存,df -h看磁盘,ulimit -a看文件描述符限制。常见原因:后端服务挂了重启服务;连接数超限调整系统ulimit和Nginx worker_connections;超时时间太短增加proxy_read_timeout和proxy_connect_timeout;后端响应慢做性能优化或扩容;防火墙阻挡检查安全组规则。应急方案:Nginx配置proxy_next_upstream自动重试其他节点;配置upstream健康检查自动摘除故障节点;保持备用服务器随时切流量。


本题目库包含10道面试题,涵盖:

  • Nginx核心配置与高并发调优
  • Linux系统问题排查与性能优化
  • SSL/TLS安全配置
  • DDoS防护实战
  • 监控体系搭建
  • Docker容器资源管理
  • 故障排查与应急处理