频繁500错误,需要重启Gunicorn ,这是 Flask 的问题还是 Gunicorn 的问题?

2013-02-09 02:22:03 +08:00
 liuxurong
"The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application."

这是怎么回事呢?我感觉用mysql的时候效率不好。

Gunicorn 没有错误输出,只有这些
"""
2013-02-08 18:11:47 [5625] [CRITICAL] WORKER TIMEOUT (pid:5632)
2013-02-08 18:11:47 [5625] [CRITICAL] WORKER TIMEOUT (pid:5636)
"""
7847 次点击
所在节点    Python
6 条回复
lix
2013-02-18 06:47:40 +08:00
程序的问题,有异常出现
liuxurong
2013-02-18 07:38:48 +08:00
@lix 排查过了。基本解决。不能将pymysql用在生产环境。用python-memcache也要注意。都是效率好低的。
yinian1992
2013-02-18 11:13:25 +08:00
@liuxurong 你试试用 gevent 去 monkey patch 一下 socket。
ipconfiger
2013-02-18 11:16:23 +08:00
去看看mysql的慢查询日志才是正道,大部分的超时问题都是慢查询导致的
CMGS
2013-02-18 13:05:08 +08:00
Gunicorn默认30秒超时,这个超时的意思是worker在30秒里面没输出。然后你这个问题得看Worker的type。sync的话,一个worker一个请求,如果用pymysql妥妥的效率被mysqldb爆出翔,python-memcache也是,如果是async如gevent,pymysql单个请求上效率还是烂,好处在于并发可以撑起来,因为MySQLdb是C层面的socket不被gevent patch。所以无论怎样,你要保证一个request在30秒以内有输出,或者增大这个时间。
liuxurong
2013-02-19 04:09:26 +08:00
@CMGS
@ipconfiger
@yinian1992 谢谢各位。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/60133

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX