linux服务器,请求堵塞,导致服务器挂掉
2020-12-29 17:13 石吴玉 阅读(980) 评论(0) 编辑 收藏 举报此文为记录帖,如果错误,烦请指正
前提:在Linux服务器中通过Docker部署了服务(WebAPI,使用了swaggerui可视化工具),并使用k8s管理docker容器。
k8s每3秒访问swaggerui页面:https://xx.xxx.xxx:80/index.html,设置3秒的超时时间,连续5次访问失败,则认为该服务失效,k8s会 kill 此服务。
问题:服务被k8s关闭了
可能因素:
(1)代码因素:访问过多时,等待响应太久(目前设置的100秒),连接一直没有释放,就导致阻塞后续的请求
(2)服务器因素:在 linux系统中 一个请求对应操作系统的一个文件描述符,描述符操作系统默认的是4096个,描述符全部占用之后,就无法接收后续的请求,等待前面释放连接
解决方案:
(1)优化镜像,描述符增加至65535个,会在一定程度上避免这个问题,但弊端是耗费一定的服务器资源
(2)缩短 http请求的超时时间限制(普遍设置为5-10s)