在做网站做压力测试的时候,很容易模拟出每秒几百的http请求,如果要测试的网站是在nginx之后,这时候就会发现很多请求直接返回503 Service Unavailable错误,如下图所示。
这是由于在当前的并发请求过多的情况下,nginx默认会把请求放到一个队列里,一次排队让服务器处理。这个queue的上限默认是100,所以当请求超过queue上限的时候,nginx就会返回The website is under heavy load的错误信息了。
一个简单的解决方法便是修改passenger_max_request_queue_size,改成你需要的实际值,或者直接设成0,来禁用queue这个功能。
当然更好的方法是做服务器端的profiling,找出瓶颈,让每个http请求能更快的被处理完毕。
参考
Leave a Reply
You must be logged in to post a comment.