Linuxのパフォーマンスチューニングの最適化のアイデア

Linuxオペレーティングシステムは、オープンソース製品ですが、また、実用的なアプリケーションプラットフォームとオープンソースソフトウェアは、このプラットフォームでサポートされている数多くのオープンソースソフトウェアがあり、私たちはしばしば、tomcatに、nginxのは、MySQL、PHPとオープンソースソフトウェアのように、最大​​のアイデアApacheを持っていますこれは、オープンソースプラットフォームとしてLinux、その後、無料開放されて、そして最終的には最もパフォーマンスの一部を達成するために、低コストで、これらのオープンソースソフトウェアをサポートすることにより達成されます。したがって、それはパフォーマンスの問題になると、主な成果は、Linuxシステムやアプリケーションの最適な組み合わせです。

ボーエン概要:
パフォーマンスの問題のI.概要
第二に、Linuxのパフォーマンスに影響する要因
第三に、システムの性能設計のスタッフの分析
4つのチューニングの概要を

まず、レビューのパフォーマンスの問題

これは、オペレーティング・システム・タスクのシステムの有効性、安定性および応答速度の性能を指します。しばしば遭遇システムが不安定、遅い応答やその他の問題、例えば、Linux上でWebサービスを設定し、彼らは多くの場合、ページを開いていないだろう、ととても遅い開くには、これらの問題を経験しながら、それは意志のLinuxシステム管理者一部の人々は、Linuxシステムは、良いではありません実際には、これらは表面的であることを訴えます。オペレーティングシステムは、タスクを完了するときに、自分自身を設定するなど、ネットワークトポロジ、ルーティング機器、ルーティングポリシー、アクセス機器、物理回線のさまざまな側面は​​密接にシステムに関連している、任意のリンクの問題は、システム全体のパフォーマンスに影響します。ときのLinuxアプリケーションの問題だから、それは、アプリケーションの側面を包括的調査から、オペレーティングシステム、サーバハードウェア、ネットワーク環境、そのセクションの問題を配置して、解決して濃縮する必要があります。

アプリケーション、オペレーティングシステム、サーバハードウェア、ネットワーク環境の面では。最大のアプリケーションのパフォーマンスに影響を与えるとのオペレーティングシステムは、2つの側面で、問題があるため、微妙な、非常に微妙なのこれらの二つの側面で発生します。そして、ハードウェア、ネットワークは限りがあるので、一般的には問題はすぐに見つけることができます。パフォーマンスチューニングボーエンのアイデアは、オペレーティング・システム、申請手続きは、特定の課題や問題を必要について説明します。

以下の要因は、Linuxのパフォーマンスに影響を与える、デザインのパフォーマンスを解析し、パフォーマンスの最適化ツール、システムの性能評価基準4本の紹介Linuxの一般的なアイデアや方法を最適化。

第二に、Linuxのパフォーマンスに影響を与える要因

1)システムのハードウェアリソース

1)CPU

CPUオペレーティングシステムは、主に、システムの全体的な性能を決定する基本的に安定した動作、速度、CPU性能です。このように、CPUのより多くの数は、より高いクロック速度は、サーバーのパフォーマンスも比較的良好です。しかし、完全に真実ではないしてみてください。

CPUのほとんどは、同じ時間に1つのスレッドを実行することができますでは、ハイパースレッディングプロセッサは、同時に複数のスレッドを実行することができます。したがって、ハイパースレッディングプロセッサは、システム性能を改善するために利用されてもよいです。Linuxシステムでは、唯一のハイパースレッディングをサポートするために、SMPカーネルを実行するために、しかし、より大きなCPUの数が少ないハイパースレッディングから得られる性能を向上させ、インストールされています。さらに、Linuxカーネルは、例えば、個人識別の複数のCPU等のプロセッサをマルチコアます:2つの4コアCPUを、Linuxシステムは、8つのシングルコアCPUの通りです。しかし、パフォーマンスの観点から、2つのCPUコア4,8シングルコアCPUは、当局の試験結果により得られた、完全に同等ではないが、前者の全体的な性能は、30%〜25%だけ後者よりも低くなります。

アプリケーションは、このようなアプリケーションの場合など、CPUのボトルネックDBサーバ、動的なWebサーバーを持っていること、構成、およびパフォーマンスがメインの位置にCPUを置きます。

2)メモリ

メモリサイズは、Linuxの重要な要因のパフォーマンスに影響を与え、メモリシステムは、アプリケーションが、応答の遅い、とさえ損失となり、プロセスをブロックします、小さすぎる、あまりにも多くのメモリを、資源の浪費になります。あなたは、物理メモリの不足を緩和するが、あまりにも多くの仮想メモリを取ることができますが、Linuxシステムは、物理メモリ、アプリケーションを実行するために、高いパフォーマンスを確保するために、アプリケーションのパフォーマンスが大幅に削減され、2つの方法、仮想メモリ内の物理メモリと仮想メモリを使用しています十分な大きさでなければなりません。しかし、あまりにも多くの物理メモリ、メモリは、Linuxオペレーティングシステム上で、例えば、資源の無駄が発生します無駄になるよりも、物理メモリの8ギガバイト、32ビットプロセッサです。そのため、より多くのメモリを使用するように、64ビットのオペレーティングシステムをインストールすることをお勧めします、とLinuxカーネルのサポート大容量メモリをオンにしています。

プロセッサの範囲に対処制限のため、32ビットのLinuxオペレーティングシステム、アプリケーション上で、単一プロセスは、システムがより多くのメモリを持っている場合でも、アプリケーションが決意で「楽しむ」ことができないので、以来、4GBのメモリの最大値を使用することができます方法は、64ビットオペレーティングシステムをインストールし、64ビットプロセッサを使用することです。64ビットオペレーティングシステムでは、すべてのアプリケーションがメモリの需要、事実上制限を満たしています。

アプリケーションメモリのパフォーマンスのボトルネックが発生する可能性があり、メインメモリサイズの位置に置くようなアプリケーションのために、NOSQLサーバ、データベースサーバ、キャッシュサーバ、などです。

3)ディスクI / Oパフォーマンス

私は/ディスクのO性能が直接ディスクI / O性能が満たされていない場合、アプリケーションは停滞につながる、頻繁に読み書きするためのアプリケーションでは、アプリケーションのパフォーマンスに影響を与えます。幸いなことに、今日のディスクは、このような一般的なディスクのRAID技術として、I / Oパフォーマンスを向上させるために多くの方法を採用しています。

ユーザーがフォーマットし、それを分割することができる大規模なディスクの同等からなるディスクのRAIDテクノロジーグループ、ファイルシステムのセットアップ作業、単一の物理ドライブと同じで、唯一の違いは、RAIDディスクI / Oの性能比のグループですデータのセキュリティが大幅に向上していながら、単一のハードディスクには、はるかに高いです。

異なるディスクの組み合わせは、RAIDは、RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6、RAID7、RAID0 + 1、RAID10他のレベル、一般にRAIDレベルRAID0、RAID1、RAID5、RAID0 + 1に分類することができます。簡単な紹介をここに。

RAID 0:すなわち、大容量ハードディスク・グループに結合することにより、複数のディスクにストライプ、および性能スループットディスクを向上させます。このように、低コストで、それは、少なくとも2枚のディスクが必要ですが、唯一の少ないデータのセキュリティ環境に厳しい中で使用することができていない耐障害性とデータ復旧機能、。
RAID 1:別のディスクへのデータのミラーディスクによってミラーリングされ、最高の信頼性とリペアディスクのデータを確実に、高い冗長性を有するデータが、ディスク使用率はわずか50であります%は、それゆえ、最高のコスト、機会の使用は、重要なデータを保存します。
RAID5は:パリティ、それによってシステムの信頼性を向上させる、ディスクステージング技術で使用して、RAID5の読み出しは、一般的な、少なくとも3枚のディスクの効率を書き込み、非常に効率的です。これは、データの可用性に影響を与えることなく、一つのディスク故障することができます。
RAID0 + 1: RAID0とRAID1技術は一緒にRAID0 + 1になった、少なくとも4台のハードドライブを必要とします。このように、データに加えて、外側の複数のディスクにわたって分散されているディスク障害を可能にしながら、各ディスクは、そのミラーディスクを有する完全な冗長性機能を提供する、データ可用性と高速読み出し/書き込み能力に影響を与えず。

アプリケーションの性質に応じて、RAIDのパフォーマンスのさまざまなレベルを理解することによって、ディスクの面で最適なアプリケーションのパフォーマンスを確保するために、独自のRAIDレベルを選択します。

4)ネットワーク帯域幅

ネットワーク帯域幅がパフォーマンスに影響を与える重要な要因であるので、Linuxでは、一般的に基づいているネットワークの下で様々なアプリケーションには、低速では、ネットワークの不安定性は、Webアプリケーション、および安定した、高速ネットワークの帯域幅へのアクセスをブロックにつながりますアプリケーションがネットワーク上で妨げられることなく実行することを確認してください。幸い、現在一般ギガビットの帯域幅のネットワークまたは光ファイバネットワーク、アプリケーションのパフォーマンスの問題に起因上の帯域幅への影響は徐々に減少しています。

2)オペレーティングシステム関連のリソース

オペレーティングシステムのパフォーマンスの最適化は多くの側面に基づいており、それは、以下の簡単な紹介に続いて、システムのインストール、システムのカーネル・パラメータ、ネットワークパラメータ、およびファイルシステムのいくつかの側面から測定することができます。

1)インストールの最適化

システムの最適化は、システムの将来の業績に直接影響を与えるのLinuxシステムでは、ディスクのパーティション分割、SWAPのメモリ割り当てをインストールする場合、オペレーティングシステムのインストールを開始することができます。

例えば、ディスクの割り当ては、アプリケーション要件に従ってもよい:
以下厳しい頻繁にアプリケーションデータセキュリティに書き込む1)、ディスク0 RAIDにすることができる;
2)およびより高いデータセキュリティ、読み出しおよび書き込みのためにアプリケーション特別な要件は、ディスク1 RAIDに行うことはできません;
; 3)動作させる高い読み取りのための要件、および書き込み操作は、特別な要件、およびアプリケーションデータのセキュリティを確保するために、あなたは5 RAIDを選択することができます
ペアに4)要件が高く、高い要求のデータセキュリティアプリケーション、RAID10 / 01選択することができる読み取ります。

異なるアプリケーションの要件によって、このようなセットの異なるRAIDレベル、ディスクの下で動作するシステムを最適化します。

低価格とメモリの増加メモリ容量、仮想メモリの設定SWAPで、今そこにはいない、いわゆる仮想メモリは、物理メモリの2倍の要件であるが、それでも経験に基づいて、SWAPの設定を無視することはできません:
1 )メモリが小さい(少ない物理メモリ4GB以上)、典型的には提供スワップ2倍のメモリスワップパーティションのサイズである場合、
8ギガバイト以上の物理メモリ以下16ギガバイト以上場合、スワップは等しい又は物理メモリよりも若干小さいサイズを設定することができる)2;
3)の場合16ギガバイト以上のメモリサイズは、あなたは、原則的にSWAP 0を設定することができますが、理由はまだ役割を持っているセットSWAPに一定の大きさで推奨されていません。

2)カーネルパラメータの最適化

システムは、仕事が終わっていない最適化するため、インストールされた後、あなたはまた、システムのカーネル・パラメータを最適化することができますが、アプリケーションに最適化されたカーネルパラメータとシステムの導入は、全体結合します。

システムは、Oracleデータベース・アプリケーションを展開されている場合たとえば、あなたは(kernel.shmmax、kernel.shmmni、kernel.shmall)共有メモリ・セグメントのシステムを必要とし、システムのセマフォ(kernel.sem)、ファイルハンドル(fs.file-MAX )および他の最適化パラメータが設定され、Webアプリケーションが配備されている場合、そのような修正のnet.ipv4.ip_local_port_range、net.ipv4.tcp_tw_reuse、net.core.somaxconn他のネットワーク・カーネルパラメータなどのWebアプリケーションの特性に応じてネットワークパラメータを最適化する必要があります。

3)ファイルシステムの最適化

ファイルシステムを最適化する上でフォーカスが別のファイルシステムを選択し、必要に応じて、用途に応じてのLinuxファイルシステムEXT2、EXT3、ReiserFSの、ext4は、XFSでは、システムリソースの最適化です。

VFSからLinuxの標準ファイルシステムはext2ファイルに続く内線、その後、開始、それはEXT2は、標準のファイルシステム上のLinuxで、指摘しておかなければ、ext3のは、VFSからext4のを、ext2の基礎に形成されたログを増加させることであり、その設計ではありませんあまり変化していない、初期のUNIXファミリは、iノードとスーパーブロックの設計思想に基づいています。

極めて堅牢、従って、XFS高度にスケーラブルなXFSファイルシステムデータを配置する分散処理要求を介して、ファイルシステムのディスクデータへの高度なジャーナリングファイルシステムであり、XFSは、低遅延を提供し、高帯域幅のアクセス、キャッシュの一貫性、 、優れたログ記録、スケーラビリティ、高速な書き込み性能の利点を持ちます。

現在、サーバーのext4とXFSファイルシステムが主流であり、適切なファイルシステムを選択する方法を、あなたは、統合ファイル・システムの特性に基づいてするビジネス・ニーズを追加する必要があります。

3)アプリケーションソフトウェアリソース

アプリケーションを最適化BUGアプリケーションがある場合、すべての他の態様は、アプリケーション全体のシステムやパフォーマンスの低下を最適な状態に達しているため、アプリケーションは、パフォーマンスの最適化プロセスのために最適化されていても、実際に最適化プロジェクトの中核であります手続きのフレームワークの設計者や開発者が前方に高い要求を置く最優先、。

第三に、システムの性能設計のスタッフの分析

1)Linuxの運用・保守要員

パフォーマンス・チューニング・プロセスを行うことで、Linuxの運用・保守要員が重要な作業負担:
1)まず、Linuxの運用・保守要員は、などのシステム負荷、メモリの状態、プロセスの状態、CPU負荷、として、現在実行中のオペレーティングシステムを理解し、習得します検出した情報を決定する情報を基づいて、システムの性能に基づいている;
2)次に、LinuxのようなディスクI / O、CPUの種類、メモリサイズ、ネットワーク・カード帯域幅パラメータ情報として把握情報システムのハードウェアにだけでなく、運用・保守要員、および総合的な評価システムこれらの情報資源の利用に基づいて、
3)、Linuxの運用・保守担当者などが、また、システムリソースのアプリケーションの使用を習得、より深い点は、このようなプログラムかどうかなどの生産性アプリケーションを実行する方法を学ぶことです確かに問題のあるアプリケーションがある場合BUG、メモリのオーバーフローやその他の問題は、システムリソースの監視を通じて、アプリケーションは、例外があるかどうかを見つけることができるようになり、すぐにプログラム開発者に反映発行する必要が、その後、改善したり、アップグレードします。

パフォーマンスの最適化自体は、Linuxの運用・保守要員が唯一のシステムのハードウェア情報について学び、複雑で面倒なプロセスであり、ネットワーク情報、オペレーティング・システムの構成情報とアプリケーションの情報は、Linuxの操作を必要とするサーバーのパフォーマンスの最適化の拡大、を標的とすることができます保守要員は、十分な理論的な知識、実務経験の富と心の問題を慎重に分析しています。

2)システムアーキテクチャ設計スタッフ

第二のカテゴリーは、人事システムのパフォーマンスの最適化は、アプリケーションアーキテクチャの設計者である必要。総合評価の後、Linuxの運用・保守要員場合は、アプリケーションのパフォーマンスの効率に影響することが分かっている、プログラムのアーキテクチャの設計者は、必要かつタイムリーな介入、プログラム実行中の深い理解です。

実装の効率場合1)まず、プログラムの実行効率を追跡するシステムアーキテクチャ設計のスタッフが、問題は何が悪かったのかを調べるために、そこにある。
それは、アーキテクチャ設計上の問題である場合、2)第二に、彼らはすぐに最適でしょうか改良されたシステム・アーキテクチャは、システム・アーキテクチャは、優れたアプリケーションを設計します。

3)ソフトウェア開発

アプリケーション開発者とシステムパフォーマンスの最適化最後の部分のお得な情報は、Linuxの運用・保守要員やインフラストラクチャの設計者で、手続きや構造的なボトルネックを発見した後、開発者はすぐに手続きを適切に変更を加えるために介入します。基準としてプログラムのプログラムの実行効率を変更するために、改良されたプログラム論理は、コードの最適化の対象。たとえば、Linuxの運用・保守要員は、低開発者によって引き起こされたコードの実行効率で書かれ、実行され、システムリソースを消費するSQL文、このSQL文をつかむがあるシステムで見つかった、とあまりにも悪いこのSQL文の効率を見つけました、SQLの最適化、そして最適化プログラムコードをターゲットと開発者にこの情報をバックに、この問題の受領後に、開発者が、必要としています。

このプロセスは、一般に、その後上記、システム性能の最適化プロセスから見ることができるされている:
1)まずLinuxシステムの運用・保守要員は、主にシステムのハードウェアから、全体的な状況を表示するために、ネットワークデバイス、オペレーティングシステム構成、アプリケーション・アーキテクチャとプログラムコード5総合判定の側面それは、システムのハードウェア、ネットワーク機器やオペレーティングシステムの構成の問題ことが判明した場合、Linuxの運用・保守要員が独立して、状況に応じて解決することができます;
2)あなたは、プログラム構造の問題を見つけた場合、プログラムのアーキテクチャ設計担当者に提出する必要があり、
3)の場合プログラムコード実行の問題が発見され、それがコードの最適化に開発者に引き渡され;
4)これは、プロセスのシステム性能の最適化を完了!

第四に、チューニングの概要

システムのパフォーマンスの最適化は、広い範囲、退屈な、長期的な作業に関与している、パフォーマンス上の問題の根本原因を調べしばしば最も難しい部分も発生し、問題の原因が見つかったら、パフォーマンスの問題が解決されます。したがって、この問題を解決する方法が非常に重要になります。

たとえば、ウェブサイトのシステムのLinuxシステムは、ユーザーがサイトへのアクセス速度は時々アクセスできない、非常に遅いことを訴えました。

この問題に対する解決策:
1)検出ネットワークは、同時に、サイトのドメイン名を確認するために、通常のpingコマンドを通じて解決することができ、遅延のpingサーバーのアドレスが発生する可能性のあるネットワークの問題アウトが大きすぎ、そのため、このように、最初のルールであります;ネットワークが問題でない場合は、
チェックする2)メモリ使用のLinuxシステム、サイトの応答が遅いですので、通常のメモリが不足しているかどうかを判断するために、比較的大きな、無料通じ、vmstatのコマンドに関連付けられたメモリと、メモリリソースが問題でない場合。
3)CPUの負荷状況確認システムをCPUが問題ではない場合、あまりにもCPUの過負荷の問題かどうかを出力SAR、vmstatの、トップ総合判定するに命令することができる;
4)検査システムのディスクI / OボトルネックがIOSTATを通して存在する場合、問題がなければ読み書き性能や他のvmstatコマンドをディスクをチェックするために、ディスクの読み取りと書き込みに、Linuxシステム自体のパフォーマンスの問題は基本的に除外、実行する最後のものは、プログラム自体に問題があるかどうかを確認することです。思考のこの行では、検出ステップのトラブルシューティングバイステップ、「どこにも非表示にするには、」リンク上のパフォーマンスの問題の層は、パフォーマンスの問題は非常に簡単になる生じ見つけるために、

----------記事。読書をありがとう------------

おすすめ

転載: blog.51cto.com/14157628/2469947