サーバーのパフォーマンスを最適化するには?

1.インメモリデータベースを使用します

メモリー・データベースは、実際には、直接操作でデータベースメモリ内のデータ。データは数桁であると高速メモリを読み書きするディスクに対して、メモリアクセスに格納されたデータと比較される非常にディスクからアプリケーションのパフォーマンスを向上させることができます。メモリデータベースは、メモリ再設計されたアーキテクチャ内のすべてのデータに基づいて、ディスクのデータ管理の伝統的な方法を放棄し、対応する改善、従来のデータベースよりデータ処理速度にもデータキャッシュで、高速アルゴリズム、並列動作データ処理速度がはるかに高速です。しかし、セキュリティ上の問題が最大の欠陥のあるメモリデータベースであると言うことができます。メモリ自体が持っているので、パワーダウンは、自然欠陥を失ったので、私たちは、インメモリデータベースを使用する場合、通常は事前に、バックアップ、ロギング、ホットスタンバイまたはクラスタ、同期とディスクデータベースとしてメモリ上のデータを、いくつかの防御機構を取るために道。56高くないことの重要性皆に思い出させるためにいくつかの小さなシリーズのためにそう雲が、彼らは定期的にデータをディスクに固化する一方でユーザーの要求への迅速な応答は、データベースを格納するデータメモリの一部と見なされることができますしたいです。
サーバーのパフォーマンスを最適化するには?

2. RDD

いくつかの用途では、従来の大規模なクラウドデータは、スパークは、データ処理速度を高速化するために使用することができます。スパークはRDD第1ソース及び紙RDDバークレー研究所「:メモリー内のクラスタコンピューティングのためのフォールトトレラント抽象弾性分散データセット」の中核です。二つのアプリケーションを処理するための既存のデータフローシステムは効率的ではない:機械学習と描画アプリケーションの分野で共通である1つの反復アルゴリズム、2番目は、インタラクティブなデータマイニングツールです。両方の場合において、メモリに格納されたデータは大幅に性能を向上させることができます。

3.増加キャッシュ

多くのWebアプリケーションでは、静的なコンテンツの多くを持って、これらの文書の静的コンテンツは、主に小さく、頻繁にWebサーバとしてApacheとnginxのを使用して、読み込まれます。時間のWebアクセスの少量では、両方のhttpサーバは、大きな負荷ならば、我々は動作するよう、フロントエンドキャッシュサーバを構築するためにキャッシュ静的リソースファイルサーバを使用することができ、非常に高速かつ効率的であると言うことができますメモリから直接データを読み出す速度がハードディスクからよりもはるかに大きいので、直接システムメモリは、読み出し動作。これは実際の消費によって引き起こされるディスクアクセス時間を短縮するために、メモリのコストを増加させています。

4. SSD

メモリ領域を最適化することに加えて、あなたはまた、ディスク側を最適化することができます。伝統的な機械式のハードドライブと比較すると、ソリッドステートドライブは、高速、軽量、低消費電力と小さなボリュームを読み書きしています。しかし、高価な伝統的な機械的なハードドライブに比べてSSDの価格は、条件付きのSSDの代わりに機械的なハードドライブの使用することができます。

5.最適化データベース

サーバーのほとんどは、データベースが最終的に、データベースへのアクセス速度が遅く、遅くなりデータ量の増加に伴って下落する必要があります要求します。元の単一のテーブルナイフでなければならない要求処理の速度を向上させたいです。現在主流のLinuxサーバは、mysqlデータベースに所属していた、と私たちは達し単一のテーブルのMySQL万人レベルに保存されている記録されたデータを使用する場合は、クエリの速度が非常に遅くなります。ポイントテーブルに基づいてデータベースを分割するのに適したビジネス・ルールは、効果的に、データベースのアクセス速度を向上させるサーバの全体的なパフォーマンスを向上させることができます。サービス問い合わせ要求に加えて、建設時間テーブルは、クエリの速度を向上させるために要求および他の関連するインデックスに応じて設定することができます。

6.適切なIOモデルを選択

IOモデルが分かれている:
(1)I / Oモデルをブロック:データが到着しなかったの前に、I / Oは、データが到着した場合、それが返されます、ブロックされています。通常のrecvfrom、一般的なデフォルトがブロックされます。(2)非ブロックI / Oモデルを:とI / Oをすぐに戻ったときに、結果だけを取得することはできません、代わりにブロックします。これは、現在のスレッドをブロックしません。IO多重化モデル:つまり、あなたが一部を学ばなければなりません。多重化は、デマルチプレクサとは対照的に、一緒に導管の管の複数の同様の組み合わせマルチチャンネル信号処理方法、を意味します。IOの優位性を阻止するものは何もありませんよりも、IOポートに、2つの呼び出し、二回返すために、;;キーは同時に複数のIOポートを監視達成することである。機能は次のようになりますIO多重化モデル主に選択、投票、ファイルディスクリプタ閉塞処理、しかし、その差のI / Oブロックは、これらの2つの機能は、同時に複数のI / O操作をブロックすることができます。しかし、また同時に読み取り操作を複数検出するためのI / O機能の複数の書き込み動作と、読み取りまたは書き込みすべきデータがあるまで、それは本当にI / O操作関数を呼び出します。駆動信号:最初のオープンソケット駆動信号I / O機能、及びシステムを介して信号処理関数コールはsigactionを取り付けます。データパケットが読み込み可能な状態である場合、それはプロセスにSIGIO信号を生成します。そして、あなたもメインループのデータを処理する準備ができている通知、報告されたデータを読み取るためにシグナルハンドラ内でのrecvfromを呼び出すことができます。また、それはデータグラムを読んで、メインループに知らせることができます。非同期IOモデル:お知らせ(ユーザー自身のデータへのカーネルバッファからのコピーを含む)アクションを起動するためにカーネルに伝え、そして全体の操作が完了した後、カーネルをしましょう。これは、モデルを使用しなければならないと言うことではない、ファイルディスクリプタは、全てのケースでの選択、性能、時間の選択やビジネス要件を結合するよりもはるかに良いではありません。

7.マルチコア処理ポリシーを使用

今サーバー構成を実行している主流のマシンを使用すると、マルチコア機能、マルチプロセスまたはマルチスレッドフレームを利用することができたときに我々はサーバーを設計し、マルチコアCPUです。マルチスレッドやマルチプロセスは、各選択肢の長所と短所と組み合わせる実際の需要に基づくことができる選択します。あなたが別のサーバーをテストし、パフォーマンスすることにより、適切なスレッドプールのスレッドプールを設定するには、スレッドプールを使用することができます場合は特に、マルチスレッドの場合。

おすすめ

転載: blog.51cto.com/14540004/2441025