4

次のコードは、パラメーターの値に従って、リクエストからパラメーターを取得し、couchbase db から応答します。

couchbase = Couchbase("ubuntumartini03:8091", "thebucket", "")
bucket = couchbase["thebucket"]

class MH(tornado.web.RequestHandler):
        def get(self):
                key = self.get_argument("pub_id", strip=True)
                result = json.loads(bucket.get(key)[2])
                self.write(result['metaTag'])


if __name__=="__main__":
        app = tornado.web.Application(handlers=[(r"/", MH)])
        app.listen(8888,"")
        tornado.ioloop.IOLoop.instance().start()

問題: 与えられたハードウェアで、Tornado マシンから Couchbase に 10k/秒の呼び出しを行うことができます。しかし、クライアントから Tornado マシンへの呼び出しを行う場合、1 秒あたり 350 回の呼び出ししかできません。

確かにここでのボトルネックはトルネードです。少なくとも毎秒 7,000 の呼び出しを行えるように最適化するにはどうすればよいですか?

4

2 に答える 2

0

どのクライアントを使用していますか?同期クライアントですか、非同期クライアントですか? これが同期クライアントの場合、tornado ioloop リアクターを十分に活用することはできません。

于 2013-03-20T16:49:50.747 に答える