同時パフォーマンステストを竜巻

 

server2.0 1.デコレータ

データベースクエリにアクセスするためのインタフェース

並行処理100平均11.8あたりの要求の平均応答時間6944ms

 

任意の処理なしインタフェース

 

第2の要求の平均応答時間3msのあたりの同時100平均99.9倍

 

要求の平均応答時間4msの当たり467.9 500の同時平均処理時間

 

秒あたりの同時936.8千回の平均要求の平均応答時間6msの

そして、同時実行性を高め、もはや処理速度を向上

 

現在、小さなメソッドのインタフェース

毎秒並行11回平均100リクエストに平均応答時間6647ms

 

2.インタフェースは、任意のデコレータを使用していません

任意の処理なしインタフェース

要求の平均応答時間3msの当たり100.2 100の同時平均処理時間

 

秒あたりの同時949.2千回の平均要求の平均応答時間4msの

16msの平均要求の第二の平均応答時間あたりの同時1500.4 2000回

 

データベースにアクセスするためのインタフェース

第2の要求の平均応答時間4086msごとの同時100平均16.2倍

 

 

概要

安定したデコレータなし、server2.0デコレーター・エラー・レートの上昇を追加した後。

データベースへの同時アクセス数の主な制限。

server2.0は、並行性を改善しませんでした

 

3.非同期デコレータ

任意の処理なしインタフェース

@ gen.coroutine

秒あたりの同時1296.5 1500回平均の要求の平均応答時間8msの

 

非同期のデータベース・アクセスを使用します

毎秒同時100平均96.1倍39ms要求の平均応答時間

 

elasticsearch_async インポートAsyncElasticsearch
ES = AsyncElasticsearch(
        ホスト = [
             " 117.78.26××:×××× " " 117.78.26××:×××× "
        ]、
        タイプは、 = " ES " 
        HTTP_AUTH =(" ××××× "" ××××× " )、
        タイムアウト = 60
@ web.asynchronous
@ gen.engine
デフポスト(自己、* argsを、** kwargsから):
    結果 = { ' コード' 200は、ある' MSG '' 成功を返す'' データ' :{}}
    本体 = { " サイズ":10、" _source ":[ " ID "" 名前" ]、
             " クエリ" 
                { " BOOL ":{ " 必須" :[
                    { " マッチ":{ " 名前":{ " クエリ"" 婚姻法" }}}、
                    { " マッチ":{ " law_type ":{ " クエリ"" 法律" }}}、
                ]}}}
    法律 = 降伏 self.es.search(" law_search_v2 "" _DOC " 、身体)
     #1 法律= "测试" 
    結果[ ' データ' ] [ ' 法律は' ] = 法律
    self.finish(結果)

 

 

並行平均処理600は、75msの毎秒550回の平均応答時間を要求します

代わりに、同時要求の量を追加し、同時の数を減らすことができます

 

 

概要

非同期リクエストデータベースの安定性、スピード、大規模な同時

現在、データベース・サポート・非同期

ES:elasticsearch - 非同期サポートes6.0

MongoDBの:モーター

mysqlの:tornado_mysql

 

tornado.httpclient.AsyncHTTPClientにアクセスするためのインターフェースを使用して、

 

4.異なる非同期の区別

gen.coroutine @使用

難しいコード

 

使用ThreadPoolExecutor

開発すると

 

 

 

おすすめ

転載: www.cnblogs.com/jiaojianglong/p/11260274.html