linuxの下でprocの中でディスクの性能のパラメータについて
この文書は http://blog.csdn.net/eroswang/article/details/6126646
原作者の知的財産権を尊重してください!
ディスク書き込み操作が忙しいサーバで、特別なパフォーマンスの問題に遭遇したことがあります.サーバは30秒ごとにディスク書き込みアクティビティのピークに遭遇し、リクエスト処理の遅延が非常に大きい(3秒以上).その後、インターネットで資料を調べてみると、カーネルパラメータを調整することで、書き込み活動のピークを頻繁に複数回書き込み、毎回書き込むデータが少ない.これにより,スパイクの書き込み操作を平成の複数回書き込み操作に削ることができる.カーネルが書き込み操作を組み合わせる機会があまりないため、このように実行する効率は低い.しかし、忙しいサーバでは、書き込み操作がより一貫して行われ、インタラクティブなパフォーマンスが大幅に向上します.次に、関連パラメータの調整を行います.
一、2.6コアの下
1、/proc/sys/vm/dirty_ratioというパラメータは、ファイルシステムのファイルシステム書き込みバッファのサイズを制御します.単位はパーセントで、システムメモリのパーセントを表します.書き込みバッファがシステムメモリにどれだけ使用されているかを示します.ディスクにデータを書き出し始めます.増大すると、ディスク書き込みバッファにより多くのシステムメモリが使用され、システムの書き込みパフォーマンスが大幅に向上します.ただし、継続的で一定の書き込みが必要な場合は、次の値を下げます.
2、/proc/sys/vm/dirty_background_ratioというパラメータは、ファイルシステムのpdflushプロセスを制御し、ディスクをいつリフレッシュするかを制御します.単位はパーセントで、システムメモリのパーセントを表します.つまり、書き込みバッファがシステムメモリにどれだけ使用されているかを示すとき、pdflushはディスクにデータを書き出し始めます.増大すると、ディスク書き込みバッファにより多くのシステムメモリが使用され、システムの書き込みパフォーマンスが大幅に向上します.ただし、継続的で一定の書き込みが必要な場合は、次の値を下げます.
3、/proc/sys/vm/dirty_writeback_centisecsというパラメータは、カーネルの汚れたデータリフレッシュプロセスpdflushの実行間隔を制御します.単位は1/100秒です.デフォルト値は500、つまり5秒です.もしあなたのシステムが動作を書き続けるならば、実際にはこの数値を下げたほうがいいです.そうすれば、ピークの書き込み操作を平成の複数回書き込み操作に削ることができます.設定方法は次のとおりです.
もしあなたのシステムが短期的にピーク式の書き込み操作であり、書き込みデータがあまり(数十M/回)なく、メモリが比較的豊かである場合は、この数値を大きくする必要があります.
4、/proc/sys/vm/dirty_expire_centisecsというパラメータがLinuxカーネル書き込みバッファ内のデータが「古い」ことを宣言した後、pdflushプロセスはディスクに書くことを考え始めました.単位は1/100秒です.デフォルトでは30000、つまり30秒のデータが古くなってもディスクがリフレッシュされます.特別なリロードの書き込み操作では、この値を適切に縮小してもよいが、あまり縮小することはできない.縮小しすぎるとIOの向上が早すぎるからだ.
もちろん、システムメモリが大きく、書き込みモードが間欠的で、書き込むたびにデータが大きくない(例えば数十M)場合は、この値は大きいほうがいいです.
5、/proc/sys/vm/vfs_cache_pressureこのファイルはカーネル回収がdirectoryとinodeに使用されることを示しています Cacheメモリの傾向;デフォルト値100は、カーネルがpagecacheとswapcacheに基づいてdirectoryとinodeを Cacheは合理的なパーセントを維持しています.この値を100未満に下げると、カーネルはdirectoryとinodeを保持する傾向にあります. cache;この値を100を超えると、カーネルがdirectoryとinodeを回収する傾向にあります. cache
デフォルト:100
6、/proc/sys/vm/min_free_kbytesこのファイルは強制Linuxを表します VMが保持する空きメモリの量(Kbytes).
デフォルト設定:724(512 M物理メモリ)
7、/proc/sys/vm/nr_pdflush_threadsこのファイルは、現在実行中のpdflushプロセスの数を示し、I/O負荷が高い場合、カーネルは自動的にpdflushプロセスをより多く増加させます.
デフォルト:2(読み取り専用)
8、/proc/sys/vm/overcommit_memoryこのファイルは、0、1、2の値を持つカーネルのメモリ割り当てポリシーを指定します.
0, カーネルが十分なメモリ供給用プロセスが使用されているかどうかを確認することを示します.十分なメモリがある場合は、メモリ申請が許可されます.そうでない場合、メモリ申請に失敗し、エラーを適用プロセスに返します.
1, カーネルは、現在のメモリのステータスにかかわらず、すべての物理メモリを割り当てることができることを示します.
2, カーネルがすべての物理メモリとスワップ領域の合計を超えるメモリを割り当てることができることを示します(overcommit_ratio参照).
デフォルト:0
9、/proc/sys/vm/overcommit_ratioファイルはovercommit_memory=2で、メモリのパーセンテージをオーバーロードでき、システム全体で使用可能なメモリを以下の式で計算します.
システムはメモリを割り当てることができます=空間を交換します+物理のメモリ*overcommit_ratio/100
デフォルト:50(%)
10、/proc/sys/vm/page-clusterこのファイルは、swap領域に1回書くときに書き込まれるページの数を表し、0は1ページ、1は2ページ、2は4ページを表す.
デフォルト:3(2の3次、8ページ)
11、/proc/sys/vm/swapiness
このファイルは、システムがスワップ動作を行う程度を示し、数値(0-100)が高いほどディスクスワップが発生する可能性があります.
二、2.4コア下
ファイル/proc/sys/vm/bdflushを変更することで実現します.ファイル内の9つのパラメータの意味は次のとおりです.
たとえば、書き込みが頻繁なデータベース・サーバで設定します.
原作者の知的財産権を尊重してください!
ディスク書き込み操作が忙しいサーバで、特別なパフォーマンスの問題に遭遇したことがあります.サーバは30秒ごとにディスク書き込みアクティビティのピークに遭遇し、リクエスト処理の遅延が非常に大きい(3秒以上).その後、インターネットで資料を調べてみると、カーネルパラメータを調整することで、書き込み活動のピークを頻繁に複数回書き込み、毎回書き込むデータが少ない.これにより,スパイクの書き込み操作を平成の複数回書き込み操作に削ることができる.カーネルが書き込み操作を組み合わせる機会があまりないため、このように実行する効率は低い.しかし、忙しいサーバでは、書き込み操作がより一貫して行われ、インタラクティブなパフォーマンスが大幅に向上します.次に、関連パラメータの調整を行います.
一、2.6コアの下
1、/proc/sys/vm/dirty_ratioというパラメータは、ファイルシステムのファイルシステム書き込みバッファのサイズを制御します.単位はパーセントで、システムメモリのパーセントを表します.書き込みバッファがシステムメモリにどれだけ使用されているかを示します.ディスクにデータを書き出し始めます.増大すると、ディスク書き込みバッファにより多くのシステムメモリが使用され、システムの書き込みパフォーマンスが大幅に向上します.ただし、継続的で一定の書き込みが必要な場合は、次の値を下げます.
echo '1' > /proc/sys/vm/dirty_ratio
2、/proc/sys/vm/dirty_background_ratioというパラメータは、ファイルシステムのpdflushプロセスを制御し、ディスクをいつリフレッシュするかを制御します.単位はパーセントで、システムメモリのパーセントを表します.つまり、書き込みバッファがシステムメモリにどれだけ使用されているかを示すとき、pdflushはディスクにデータを書き出し始めます.増大すると、ディスク書き込みバッファにより多くのシステムメモリが使用され、システムの書き込みパフォーマンスが大幅に向上します.ただし、継続的で一定の書き込みが必要な場合は、次の値を下げます.
echo '1' > /proc/sys/vm/dirty_background_ratio
3、/proc/sys/vm/dirty_writeback_centisecsというパラメータは、カーネルの汚れたデータリフレッシュプロセスpdflushの実行間隔を制御します.単位は1/100秒です.デフォルト値は500、つまり5秒です.もしあなたのシステムが動作を書き続けるならば、実際にはこの数値を下げたほうがいいです.そうすれば、ピークの書き込み操作を平成の複数回書き込み操作に削ることができます.設定方法は次のとおりです.
echo "100" > /proc/sys/vm/dirty_writeback_centisecs
もしあなたのシステムが短期的にピーク式の書き込み操作であり、書き込みデータがあまり(数十M/回)なく、メモリが比較的豊かである場合は、この数値を大きくする必要があります.
echo "1000" > /proc/sys/vm/dirty_writeback_centisecs
4、/proc/sys/vm/dirty_expire_centisecsというパラメータがLinuxカーネル書き込みバッファ内のデータが「古い」ことを宣言した後、pdflushプロセスはディスクに書くことを考え始めました.単位は1/100秒です.デフォルトでは30000、つまり30秒のデータが古くなってもディスクがリフレッシュされます.特別なリロードの書き込み操作では、この値を適切に縮小してもよいが、あまり縮小することはできない.縮小しすぎるとIOの向上が早すぎるからだ.
echo "100" > /proc/sys/vm/dirty_expire_centisecs
もちろん、システムメモリが大きく、書き込みモードが間欠的で、書き込むたびにデータが大きくない(例えば数十M)場合は、この値は大きいほうがいいです.
5、/proc/sys/vm/vfs_cache_pressureこのファイルはカーネル回収がdirectoryとinodeに使用されることを示しています Cacheメモリの傾向;デフォルト値100は、カーネルがpagecacheとswapcacheに基づいてdirectoryとinodeを Cacheは合理的なパーセントを維持しています.この値を100未満に下げると、カーネルはdirectoryとinodeを保持する傾向にあります. cache;この値を100を超えると、カーネルがdirectoryとinodeを回収する傾向にあります. cache
デフォルト:100
6、/proc/sys/vm/min_free_kbytesこのファイルは強制Linuxを表します VMが保持する空きメモリの量(Kbytes).
デフォルト設定:724(512 M物理メモリ)
7、/proc/sys/vm/nr_pdflush_threadsこのファイルは、現在実行中のpdflushプロセスの数を示し、I/O負荷が高い場合、カーネルは自動的にpdflushプロセスをより多く増加させます.
デフォルト:2(読み取り専用)
8、/proc/sys/vm/overcommit_memoryこのファイルは、0、1、2の値を持つカーネルのメモリ割り当てポリシーを指定します.
0, カーネルが十分なメモリ供給用プロセスが使用されているかどうかを確認することを示します.十分なメモリがある場合は、メモリ申請が許可されます.そうでない場合、メモリ申請に失敗し、エラーを適用プロセスに返します.
1, カーネルは、現在のメモリのステータスにかかわらず、すべての物理メモリを割り当てることができることを示します.
2, カーネルがすべての物理メモリとスワップ領域の合計を超えるメモリを割り当てることができることを示します(overcommit_ratio参照).
デフォルト:0
9、/proc/sys/vm/overcommit_ratioファイルはovercommit_memory=2で、メモリのパーセンテージをオーバーロードでき、システム全体で使用可能なメモリを以下の式で計算します.
システムはメモリを割り当てることができます=空間を交換します+物理のメモリ*overcommit_ratio/100
デフォルト:50(%)
10、/proc/sys/vm/page-clusterこのファイルは、swap領域に1回書くときに書き込まれるページの数を表し、0は1ページ、1は2ページ、2は4ページを表す.
デフォルト:3(2の3次、8ページ)
11、/proc/sys/vm/swapiness
このファイルは、システムがスワップ動作を行う程度を示し、数値(0-100)が高いほどディスクスワップが発生する可能性があります.
二、2.4コア下
ファイル/proc/sys/vm/bdflushを変更することで実現します.ファイル内の9つのパラメータの意味は次のとおりです.
nfract:dirty 。 bdflush 。 , I/O。 I/O, 。
Ndirty:bdflush dirty 。 I/O , ,bdflush 。
Dummy2 :
Dummy3:
Interval:kupdated , 5 。 0 600 。
Age_buffer: 。 30 , 1 6000 。
Nfract_sync:dirty bdflush 。 60%。
Nfract_stop:dirty bdflush 。 20%。
Dummy5:
たとえば、書き込みが頻繁なデータベース・サーバで設定します.
10 500 0 0 50 30 10 0 0