阿里云2核4G服務器,python3.7、tornado5.0 ,Nginx反向代理tornado,單行程部署,裸跑列印一個”hello“,并發50都不到,是什么問題?
python代碼
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world =" )
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
application.listen(9004)
tornado.ioloop.IOLoop.instance().start()
用阿里云的性能測驗PTS
CPU占用48%(單行程值消耗一個cpu)
下面是測驗結果

大概看了下4918個錯誤都是503

網上一大堆文章都說能高并發應用。但是實測沒有,比較頭疼,查了很多資料,無解,
如果用nginx單獨測驗一個靜態頁面,50并發,cpu只上升5%,很正常,只要帶上tornado就會狂飆cpu。
有哪位大俠有同樣的問題,一起探討。
uj5u.com熱心網友回復:
你并沒有使用它的異步代碼。需要async def get(self):
await self.write(“hello”)
uj5u.com熱心網友回復:
你的nginx 反向代理了幾個tornado,而且你用的是同步代碼,tornado是異步的高并發框架,IO密集型并發性能高,CPU密集型單執行緒還是會阻塞的uj5u.com熱心網友回復:
還有一點你是windows平臺還是linux windows下的異步底層不如linux下的epoll底層,性能有折扣轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/107849.html
