突然のpython nodejsは、Web応答を行って比較したい、あなたは単純にパーソナライズされた比較テストを書くことができます。
試験の目的:
1 4コアI5同じマシン32GのLinux
2.パイソン(フラスコスレッドモード)を使用して、単純なエコーサービスの書き込みにそれぞれ移動nodejs
テストツール:
WRK
サーバーのチェックリスト:
Pythonのフラスコにhttp:// 192.168.0.208:5050/
nodejs特急ます。http:// 192.168.0.208:5056/
サーバーのhttpを行く:// 192.168.0.208:5057/
テストスクリプト:
WRK -c100 -T10 -d30sます。http:// 192.168.0.208:5050/
WRK -c100 -T10 -d30sます。http:// 192.168.0.208:5056/
WRK -c100 -T10 -d30sます。http:// 192.168.0.208:5057 /
WRK -c1000 -T10 -d30sます。http:// 192.168.0.208:5050/
WRK -c1000 -T10 -d30sます。http:// 192.168.0.208:5056/
WRK -c1000 -T10 -d30sます。http:// 192.168.0.208: 5057 /
試験結果:
10の端末100件のスレッド
30代テストの@のhttpの実行:// 192.168.0.208:5050/
10件のスレッドと100台の接続は、
統計平均STDEV最大スレッド +/- STDEV
レイテンシ 85 .24ms 62 .29ms 447 .28ms 90.54%の
必須 /秒 137.84 54.19 202.00 63.72%
28723個の要求をで 30 .03s、6 0.79メガバイト読み取り
ソケットエラーを:接続100を読み取り、0を、書き込み 0タイムアウト、0
リクエスト /秒: 956.35
転送 /秒: 231 0.62キロバイト
ヒュラス@ keras208:〜$ WRK -c100 -T10 -d30sます。http:// 192.168.0.208:5056/
実行する30代テスト@はhttp:// 192.168.0.208:5056/
10スレッドと100台の接続は、
統計平均STDEV最大スレッド +/- STDEV
レイテンシ 2 .37ms 349 .63us 17 .71ms 98.57%の
必須 /秒 4 .25k 253.62 5 .32k 97.80%に
1269157回のリクエストで 30 .01s、188 0.82メガバイトの読み取り
要求:/秒 42284.18
転送 /秒: 6 0.29メガバイト
ヒュラス@ keras208:〜$ WRK -c100 -T10 -d30sます。http:// 192.168.0.208:5057/
実行する30代のテストを@ http:// 192.168.0.208:5057/
10件のスレッドと100個の接続
統計平均STDEV最大スレッド +/- STDEV
レイテンシを 2 .20ms 5 .19ms 105 .37ms 91.89%の
必須 /秒 13 .93k 3 .45k 46 .58k 72.80%
4165034回のリクエストで 30 .07s、647 0.45メガバイト読み取り
要求:/秒138501.94
転送 /秒: 21 0.53メガバイトを
1000年の端末10のスレッド
hylas@keras208:~$ wrk -c1000 -t10 -d30s http://192.168.0.208:5050/
Running 30s test @ http://192.168.0.208:5050/
10 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 124.59ms 129.37ms 1.97s 91.52%
Req/Sec 129.50 92.32 610.00 66.97%
30763 requests in 30.09s, 7.28MB read
Socket errors: connect 938, read 52, write 0, timeout 465
Requests/sec: 1022.24
Transfer/sec: 247.57KB
hylas@keras208:~$ wrk -c1000 -t10 -d30s http://192.168.0.208:5056/
Running 30s test @ http://192.168.0.208:5056/
10 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 25.00ms 9.27ms 463.53ms 96.69%
Req/Sec 4.01k 480.69 12.12k 94.63%
1189964 requests in 30.09s, 177.03MB read
Requests/sec: 39545.31
Transfer/sec: 5.88MB
hylas@keras208:~$ wrk -c1000 -t10 -d30s http://192.168.0.208:5057/
Running 30s test @ http://192.168.0.208:5057/
10 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 17.17ms 33.92ms 475.96ms 91.23%
Req/Sec 12.94k 6.57k 79.62k 70.73%
3831283 requests in 30.09s, 595.57MB read
Requests/sec: 127325.42
Transfer/sec: 19.79MB
结论:
1. 100 终端时:python 延时最大,与另外两个相差一个数量级 , nodejs go 差不多。 Req/Sec 比例分别是 0.13 : 4:13 , go能大大 13k/s
2. 1000 终端时: nodejs 和 go 的延时增加,但还是明显优与 python , Req/Sec 保持稳定 python 最低,nodejs :go 3:12 go的峰值 79k/s
3. 在高并发web服务中 首选 go , nodejs 次之 python 最弱
ps: 以上结论未考虑 开发效率,人员薪资成本等因素