- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
应用运维面试题及答案
1.如何快速定位Linux服务器中CPU使用率持续90%以上的问题?
首先使用top命令观察实时CPU占用,重点关注%us(用户态)、%sy(内核态)、%id(空闲)指标。若%us高,说明用户进程消耗大,按P键按CPU排序找到高占用进程,记录PID后通过ps-ef|grep[PID]定位具体程序;若%sy高,可能是系统调用或I/O等待,用strace-p[PID]跟踪进程系统调用,或通过perftop分析热点函数。
进一步用pidstat-u15查看进程各线程CPU占用(-t参数),定位具体线程后,结合jstack(Java)或gdb(C/C++)导出线程栈,分析是否存在死循环、正则表达式回溯或大量计算逻辑。若进程为Java应用,还需检查GC情况,使用jstat-gcutil[PID]10005观察FGC频率和耗时,高频率FGC可能导致CPU飙升。
此外,需排查是否有僵尸进程(top中状态为Z),用psaux|grepZ筛选后通过kill-9父进程回收;或检查是否有大量短生命周期进程(如脚本循环fork),用pstree查看进程树结构,结合dmesg查看内核日志是否有异常。
2.简述Nginx反向代理场景下502BadGateway的常见原因及排查步骤?
502错误通常表示Nginx无法与后端应用服务器建立有效连接。常见原因包括:后端服务宕机/重启、后端进程无响应(如阻塞、死锁)、Nginx到后端的网络中断(端口未监听、防火墙拦截)、后端处理超时(Nginx配置的proxy_read_timeout小于业务处理时间)、后端返回数据过大(超过client_max_body_size限制)、后端服务连接池耗尽(无法接受新连接)。
排查步骤:
①确认后端服务状态:通过telnet[后端IP][端口]测试连通性,若失败检查后端是否启动、端口是否监听(netstat-tlnp|grep端口)、防火墙规则(iptables或firewalld);
②查看Nginx错误日志(默认/var/log/nginx/error.log),搜索502对应的时间点,日志可能提示“connectionrefused”(后端未监听)、“readtimeout”(处理超时)或“noliveupstreams”(上游服务器全部不可用);
③检查Nginx配置:proxy_pass是否指向正确地址,proxy_connect_timeout、proxy_read_timeout是否合理(默认60s),upstream模块中是否配置了正确的健康检查(如keepalive、fail_timeout);
④分析后端服务负载:若后端为Java应用,用jstack查看是否有线程阻塞(如等待数据库锁);若为PHP/FastCGI,检查php-fpm进程数是否耗尽(pm.max_children);
⑤测试后端服务自身响应:直接通过curl访问后端接口,观察是否超时或返回异常,若后端正常但Nginx转发异常,可能是Nginxworker进程数不足(worker_processes小于CPU核心数)或文件句柄限制(ulimit-n过小导致无法建立新连接)。
3.如何设计一套覆盖应用层的监控体系?请说明关键指标、工具链及告警策略?
关键指标需分层设计:
-主机层:CPU使用率(80%告警)、内存使用率(90%告警)、磁盘使用率(80%分区告警)、磁盘I/O等待时间(20ms告警)、网络流量(入/出带宽超过峰值的80%)、TCP连接数(ESTABLISHED状态超过进程最大文件句柄的70%);
-应用层:QPS(同比/环比下降30%告警)、响应时间P99(2s告警)、错误率(1%告警)、数据库慢查询数(10条/分钟告警)、缓存命中率(90%告警);
-业务层:核心交易成功率(99.9%告警)、登录失败次数(100次/分钟告警)、订单超时未支付数(500单/小时告警)。
工具链推荐Prometheus+Grafana+Alertmanager:
-数据采集:主机指标用node_exporter,应用指标通过自定义exporter(如Java应用通过Micrometer暴露/actuator/prometheus接口),数据库用mysqld_exporter,缓存用redis_exporter;
-存储:Prometheus本地存储(配合remotewrite到长期存储如Thanos);
-展示:Grafana创建仪表盘,按业务线/层级划分视图;
-告警:Alertmanager配置告警规则,
原创力文档


文档评论(0)