listen queue 进程_uwsgi listen queue of socket full 及 broken pipe 错误排查及解决方法

本文介绍了在使用uwsgi时遇到的listen queue满载和Broken pipe错误,分析了错误原因,包括请求超时、并发量过大、harakiri超时等。并探讨了增加backlog参数的局限性,强调了解决问题需要找出uwsgi的性能瓶颈。
摘要由CSDN通过智能技术生成

某天突然收到nginx检测到上游uwsgi服务中断的报警,然后过一段时间,uwsgi又自动恢复正常,这种情况偶尔发生,已经发生过几次,我想有必要去深究一下

uwsig错误日志的关键字:

*** uWSGI listen queue of socket ":6000" (fd: 6) full !!! (1024/1024) ***

*** HARAKIRI ON WORKER 13 (pid: 21576, try: 1) ***

- HARAKIRI [core 0] 10.82.156.14 - POST /api/distrib/report/exposure/?cuid=EA3E5CBAE69AA599FDFBB4F112B08ECC&ovr=6.0.1&os_level=23&device

uwsgi_response_write_body_do(): Broken pipe [core/writer.c line 341] during GET /api/recommend/index

- HARAKIRI !!! end of worker 2 status !!!

Respawned uWSGI worker 2 (new pid: 952)

uwsgi_response_write_body_do(): Broken pipe [core/writer.c line 341] during GET

DAMN ! worker 17 (pid: 21591) died, killed by signal 9 :( trying respawn ...

*** uWSGI listen queue of socket ":6000" (fd: 6) full !!! (1025/1024)

broken pipe 的出现

uwsgi_response_write_body_do(): Broken pipe [core/writer.c line 341] during GET /api/recommend/index

broken pipe是send、write、writev时都有可能产生的错误,当一端在写另一端关闭了的连接的时候,就会产生broken pipe的错误。所以很显然,uwsgi在向nginx write之前,nginx已经关闭了连接,为什么?因为超时了。

nginx跟uwsgi 之间的连接有一个参数uwsgi_read_timeout默认是60秒,这个参数的意思是nginx从uwsgi读取response的超时时间,如果在这个时间内,uwsgi没有返回任何响应给nginx,那么nginx跟uwsgi的连接就会关闭。nginx此时就会报错

upstream timed out (110: Connection timed out) while reading response header from ups

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:CANoe报XL_ERR_QUEUE_IS_FULL错误是由于CANoe的消息队列已满导致的。这个错误通常发生在CANoe接收到的消息数量超过了其消息队列的容量。这可能是因为CANoe的消息处理速度跟不上消息的接收速度,或者是由于系统资源不足导致的。要解决这个问题,可以尝试增加CANoe的消息队列容量,或者优化CANoe的消息处理速度。引用\[2\]:在CANoe中,可以通过设置总线背景来监听特定的CAN通道上的报文。可以使用CAPL脚本来设置总线背景,并等待特定的CAN报文。引用\[3\]:在CANoe中,可以使用CAPL脚本来检测错误帧。可以调用ChkStart_ErrorFrameOccured函数开始检测错误帧,并使用TestAddCondition函数添加检测条件。如果在指定的时间内检测到错误帧,则可以使用TestStepFail函数输出错误信息。根据你提供的信息,CANoe报XL_ERR_QUEUE_IS_FULL错误可能与消息队列已满有关。你可以尝试增加CANoe的消息队列容量或优化消息处理速度来解决这个问题。 #### 引用[.reference_title] - *1* [Driver error 11](https://blog.csdn.net/Sknpz/article/details/127094358)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【CANoe之CAPL基础学习_函数用法】](https://blog.csdn.net/qq_32462925/article/details/131083017)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值