TOP設計・移行・活用> プロセス間通信(IPC:Inter Process Communication)
Linux+DB2
Linux+DB2のパフォーマンスチューニング

第5回:カーネルをチューニングする
著者:日本アイ・ビー・エム  田中 裕之、高比良 晋平   2006/6/2
前のページ  1  2   3  4  次のページ
プロセス間通信(IPC:Inter Process Communication)

   プロセス間通信に関連するパラメータはすべてカーネルパラメータとして設定されています。

   使用しているアプリケーションによって設定値を指定されているものもありますので、アプリケーションの要件にあわせてチューニングをしてください。
共有メモリ

   共有メモリ関連のパラメータで主要なものは以下の3つがあります。DB2で大きなバッファプールを使用したい場合、shmall、shmmaxの値はバッファプールのサイズより大きい価である必要があります。

   確認時に使用する「ipcs」コマンドの出力と設定する単位が違う点に気をつけてください。

パラメータ 設定例 説明
kernel.shmall 2097152 システム全体の共有メモリの最大サイズ(単位:4Kページ)
kernel.shmmax 33554432 プロセスごとに利用可能な共有メモリの最大サイズ(単位:バイト)
kernel.shmmni 4096 共有メモリのセグメント数

表2:共有メモリのパラメータ


セマフォ

   システム全体でのセマフォの最大値は小さめの数字となっています。不足するケースに遭遇することがありますので、4番目の値を大きくすることがよくあるかと思います。アプリケーションの推奨値として増やすように指定されていることもよくあります。

パラメータ 設定例 説明
kernel.sem 250 32000 32 128 スペースで区切られた4つの値で設定します。

表3:セマフォのパラメータ

   このスペースで区切られた4つの値の意味は次の通りなります。

SEMMSL
セマフォ集合ごとのセマフォ数の最大値。
SEMMNS
システム全体での、全てのセマフォ集合におけるセマフォ数の制限。
SEMOPM
semop(2)コールに指定されるオペレーション数の最大値。
SEMMNI
システム全体でのセマフォ識別子の最大値。

表4:セマフォの値の意味


メッセージキュー

   メッセージキューの最大値は標準では16となっており、これは非常に小さな値です。アプリケーションの推奨値に従って変更してください。

パラメータ 設定例 説明
kernel.msgmni 16 システム全体のメッセージキューの最大値
kernel.msgmnb 16384 単一メッセージキューの最大サイズ
kernel.msgmax 8192 プロセス間で送信されるメッセージの最大サイズ

表5:メッセージキューのパラメータ


ファイルシステム

   CPUのawaitの割合が高い場合やI/O待ち時間が長い場合、ディスクI/O性能がボトルネックとなっている可能性が考えられます。ディスクI/Oのボトルネックが原因となってロードアベレージの値が大きくなることもあります。

   こういった場合、どのデバイスがボトルネックとなっているのかをiostatの出力から確認する必要があります。データベースの場合はコンテナを配置したデバイスなのか、ログを出力しているデバイスなのか、といった点を確認してください。

   頻繁にスワップ領域へのI/Oが発生している場合も同様にI/Oウェイトの割合が大きくなります。スワップ領域へのI/Oが多く発生している場合、根本的な原因はディスクI/Oではなくメモリ不足などの別の原因である可能性が考えられます。この場合はファイルシステムのチューニングでは対処できません。この項での説明は大量のスワップが発生していない環境であることが前提となります。

   ディスクI/Oに関しては、OS上からチューニング可能な部分はそれほど多くはなく、どちらかといえばOSでチューニング可能ではない要因に依存する部分が大きくなります。OSとは別でI/Oのパフォーマンスに影響を与える要因は以下のようなものが考えられます。

  • ディスク装置の性能(ディスク装置の種類、キャッシュのサイズ、キャッシュの有効/無効)
  • RAID構成(ディスクの種類、ディスク本数、ストライプサイズ)
  • デバイスドライバ
  • データベースの設計

表6:I/Oのパフォーマンスに影響を与える要因

   ディスクI/Oがボトルネックだと考えられる場合、まず上記のような点に問題がないのか確認することが必要となります。どんなチューニングを行ってもディスク装置の性能以上の読み書きを行うことはできません。

   ハードウェア環境に問題がない場合に限り、ファイルシステム関連のチューニングによってパフォーマンスを向上させることが可能です。チューニング可能な主な項目として次で解説するような項目があります。

前のページ  1  2   3  4  次のページ


日本アイ・ビー・エム  田中 裕之
著者プロフィール
日本アイ・ビー・エム株式会社  田中 裕之
日本アイ・ビー・エム株式会社、Linux アドバンスド・テクニカル・サポート所属
Linuxサポート・センター設立初期よりプロジェクト、案件サポートを実施。現在はソフトウェアとLinuxとの組み合わせでのテストをはじめとする各種検証などを担当。


日本アイ・ビー・エム  高比良 晋平
著者プロフィール
日本アイ・ビー・エム株式会社  高比良 晋平
日本アイ・ビー・エム株式会社、Linux アドバンスド・テクニカル・サポート所属
2003年に入社以来、一貫して先進Linux関連プロジェクトやLinuxビジネスの開発に従事。現在はxSeriesハードウェア・プラットフォームでのLinuxの技術サポートを担当。


INDEX
第5回:カーネルをチューニングする
  はじめに
プロセス間通信(IPC:Inter Process Communication)
  アクセス時間の記録
  メモリ