mdbコマンドでSCSIのTagged Command Queueing設定を確認:UNIX処方箋
現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、SCSIのTCQ(Tagged Command Queueing)にかんする設定について解説する。
SunFire V240にRAID装置を接続して使用しています。I/O負荷が大きい場合に、SCSIのWARNINGメッセージが出力される場合があり、調べたところ、/etc/systemファイルに「set sd:sd_max_throttle = 16」と追記するとよいことが分かりました。
ただ、この設定が正しく反映されているかを確認する方法が分かりません。特に問題なく稼働しているので、正しく設定が反映されたと思うのですが、何か確認する方法はないのでしょうか?
SCSIのTCQ(Tagged Command Queueing)にかんする設定ですね。設定が正しく反映されているか確認するには、kernelのデバッグを行うのが一番確実です。Solarisには、mdbコマンドやadbコマンドなどのデバッグ用モジュールが組み込まれており、それらを使用することで確認できます。
mdbコマンドの場合は以下のように実行します。mdbコマンドは、Solaris 8から導入された汎用デバッグツールで、動作中のカーネルやシステムのクラッシュダンプ、ユーザープロセスのcoreファイル、およびオブジェクトファイルの低レベルデバッグと編集を行えます。adbコマンドも同様の汎用デバッガですが、Solaris 9以降mdbへのリンクとして実装されています。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
sd:sd_max_throttleとは
sd:sd_max_throttleの設定について、少し補足しておきましょう。Solarisでは、1つの論理デバイス(LUN)に対し、最大256個のI/Oプロセスを発行する設定になっています。しかし、RAID装置およびRAIDコントローラーで処理できるI/Oプロセスには制限があります。もし、RAID装置側の制限を超え新たなI/Oプロセスを受け取ってしまった場合、RAID装置はホストに対して、「Queue Full」または「Busy」のステータスを返し、そのI/Oプロセスの受け付けを拒否します。場合によってはOS上でSCSIのWARNINGメッセージが出力されます。
この症状を回避するために、/etc/systemファイルにsd_max_throttleの設定を行うことで、論理デバイスごとのI/Oプロセスを制限します。
関連記事
- tarアーカイブ内から、特定キーワードを含むファイルを指定してリストアする
- /etc/systemファイルの編集に失敗してマシンが起動しない場合の対処法
- Perlを用いた自動FTP転送
- iノード数の変更方法
- Solaris 8以前と9以降のログローテーション設定の違い
- HTTPSサーバを構築する
- SolarisからIPv6ルーターのようにRAを配信する
- Solstice Backup 7.1によるディスクバックアップ
- シェルスクリプトによる特定ファイルのバックアップ
- 9個以上のディスクスライス作成
- bashが起動時に実行するファイル
- acctcomコマンドによる終了ステータスの確認
- 電源制御キーの役割と無効化
- 「load average」によるCPU負荷の確認
- FTP利用でのファイル/ディレクトリの属性変更
- UFS loggingによるエラーと復旧方法
- ALOMにおけるSC用ユーザーの確認とパスワード変更
- PostgreSQLのテーブルデータをファイルへコピーする方法
- sotrussやapptraceによる実行コマンドのトレース
- TCP遅延肯定応答タイマーのタイムアウト値の変更
- 複数のマシンで効率的にシャットダウンする方法
- WWW::MechanizeモジュールによるWebアクセスの自動化
- IPv6アドレスの自動生成による不具合解消法
- キャッシュファイルを利用したNFSマウント
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.