、openrestyはじめに
1. openrestyは何ですか
こすると、多くのうまく設計されたnginxのモジュールによって、OpenRestyは効果的に、そのコア開発者することができますnginxのnginxのCだけでなく、Luaスクリプトプログラミング言語を使用して様々な既存のモジュールに基づいて、強力なWebアプリケーション・サーバーにnginxのサーバーを置きますこれは、高性能なWebアプリケーションより1万同時要求よりも極端なビルドを扱うことができます。
2.なぜnginxの
図1に示すように、処理要求に応じてすぐに
2、高同時接続数
3、低メモリ消費
4、高い信頼性:
5、スケーラビリティ
6、ホットデプロイ
7、フリーライセンスBSD
3、openrestyアーキテクチャモデル
nginxのは、マスタ・ワーカモデル、いくつかのグローバル初期化を担当する複数のワーカープロセス、wokerに配置されている基本的なイベント処理、マスターを管理するマスター・プロセス、および労働者の管理を使用しています。要求がwokerに割り当てられている場合OpenResty各woker LuaVMの使用において、コルーチンこのLuaVMで(コルーチン)を作成します。コルーチンの間でデータの分離は、それぞれが別々のコルーチングローバル変数_Gを有します。
。コルーチンPSおよびマルチスレッドで同様のスレッドが:情報コルーチングローバル変数を共有するための独自のスタック、そのローカル変数、独自の命令ポインタ、しかし、および他のプログラムを持っています。その中のメインとコルーチン異なるスレッドが:複数のプロセッサの場合、複数のスレッドが、概念的に同時に複数のスレッドを実行し、コルーチンコルーチンコードを切り替えることにより行われ、任意の時間が唯一のプログラム実行コルーチンあります。そして、要求された唯一の明確なこの実行中のコルーチンは保留中の中断されます。
チャートは以下のとおりです。
OpenResty利点
まず、私たちはnginxのプラス、多くのサードパーティのモジュールの中核であるOpenRestyを、使用することを選択し、最大の明るいスポットは、使用するWebサーバーとしてnginxのを作り、Luaは統合開発環境のデフォルトです。
イベント駆動型モデルと、非ブロッキングIOによるnginxのは、高性能なWebアプリケーションを実現することができます。
そしてOpenRestyはnginxのWebアプリケーションの開発者は、より便利で簡単なようなので、上のMySQL、Redisの、Memcachedの、およびなどのコンポーネントの数を提供します。現在、Jingdongは、このようなので、その上、このようなネットワーク淘宝網などの他の企業は、nginxの+ Luaのアーキテクチャを使用して、リアルタイムの価格スパイク、動的なサービス、単一の製品ページ、リストページなど。
二、openresty性能比較凡例
1.シナリオ1:
圧力試験の説明:
1、マシン
圧力試験:3つの物理マシン構成CPU:40核メモリ:31Gである
測定機器:物理マシン構成CPU:40核メモリ:31Gが測定される機械JVMのデフォルト設定
2、テスト方法
ローからハイへの同時圧力測定、並行する圧力測定
図2に示すように、圧力測定結果
図パフォーマンスopenresty
Tomcatのパフォーマンスチャート
図3に示すように、圧力測定分析
圧力測定データの増加に伴って同時並行の場合のシナリオ、同じ数の圧力試験結果から、MRTは、より安定でありopenresty
、周り0.35に残っているが、同時の数と性能のTomcat MRT openresty、パフォーマンスの急激な減少、増加したのみ
のTomcat 1/10程度。
2.シナリオ2:
圧力試験の説明:
1、マシン
圧力試験:3つの物理マシン構成CPU:核メモリ40:31Gは、3つのクラウドホスト構成CPU:メモリコア8:16Gの
試験機:物理マシン構成CPU:核メモリ40:31GテストマシンJVMのデフォルトの設定
2は、テストモードでは
、要求の量を増加させ
図2に示すように、圧力測定結果
openresty図パフォーマンスを
Tomcatの
3、压测分析
从对比来看随着机器增多,tomcat的TPS都有所增加,但是tomcat没有openresty增加的明显,同时openresty的MRT依然在1ms以下,比tomcat要小。
3、场景三:
压测介绍:
1、机器
压测机:3台物理机,配置 cpu: 40核 内存: 31G;3台云主机,配置cpu: 8核 内存: 16G
被测机:1台物理机,配置 cpu: 40核 内存: 31G 被测机JVM默认配置
压测结果
1、并发数300的曲线对比
2、对比数2000的曲线对比
压测分析
从图中可以看出,在压测条件一致的情况下,openresty的TPS曲线更加稳定,稳定性更高
4、场景四:
压测介绍:
1、机器
压测机:3台物理机,配置 cpu: 40核 内存: 31G
被测机:1台物理机,配置 cpu: 40核 内存: 31G 被测机JVM默认配置
2、测试方式
交叉对比
压测介绍:
1、机器
压测机:3台物理机,配置 cpu: 40核 内存: 31G;3台云主机,配置cpu: 8核 内存: 16G
被测机:1台物理机,配置 cpu: 40核 内存: 31G
2、测试方式
交叉对比
5、场景五:
1、内存使用率对比:
2、CPU占用率的对比
三、openresty性能分析报告总结
1、在并发度比较低的情况下,比如200一下,openresty和tomcat的性能差别不大,openresty的性能主要体现在占用更小的内存,性能更加稳定;
2、在并发量不断增大,请求量不断增大的情况下,openresty的处理能力更快,不但可以占用更小的内存,还可以保持很小的TPS,获取更高的QPS,性能也更加稳定;
3、openresty在内存使用率,CPU占用率等方面性能要更好;