Linux虚拟机Node进程CPU抢占引发WebSocket服务高延迟问题排查
问题现象
部署在虚拟机上的简易WebSocket服务延迟显著升高,p90延迟超过30秒
复现步骤
- 在单台虚拟机上运行一个极简WebSocket服务器,仅实现请求接收与WebSocket连接升级逻辑,无额外业务处理
- 客户端持续5分钟发起50个并行请求,总计约3000次请求
问题详情
多数请求延迟在100ms-2s区间,但有300-500次请求出现高延迟(10-40秒),p90延迟突破30秒,部分请求触发Linux默认127秒的TCP超时。通过分析虚拟机进程发现,当请求耗时过长时,Node进程的CPU份额被虚拟机启动的系统进程抢占。
后续调试
- 尝试通过
renice提升进程优先级、ionice调整I/O优先级,问题未得到解决 - 将虚拟机配置升级为8核32GiB内存后,高延迟问题依然存在
补充信息
- 已启用Node集群模式进行复现测试
- 启用集群后的延迟数据:

- 经htop监控确认,以下两个进程是导致CPU抢占的诱因:
python3 -u bin/WALinuxAgent-2.9.0.4-py2.7.egg -run-exthandlers
/usr/lib/linux-tools/5.15.0-1031-azure/hv_kvp_daemon -n
内容的提问来源于stack exchange,提问作者sid200026
相关产品推荐
相关产品推荐

