第1章 システムチューニングに対する一般的な注意事項

目次

1.1. どの問題を解決すべきかの確認
1.2. 一般的な問題の除外
1.3. ボトルネックの発見
1.4. 一歩ずつのチューニング

概要

このマニュアルでは、性能問題に対する原因の追及方法のほか、これらの問題を 解決するための方法を説明しています。なお、お使いのシステムに対して チューニングを始める前に、一般的な問題を除外できているかどうかを確認し、 問題の根本原因 (ボトルネック) を見つけ出す必要があります。またこれ以外にも、 システムのチューニングについて、詳細な計画を立てる必要もあります。これは 手当たり次第にチューニングを行なってしまうと問題の解決に至らないばかりか、 かえって問題を悪化させてしまう場合があり得るためです。

手順1.1 システムチューニング時の一般的なアプローチ

  1. どの問題を解決すべきかを確認する。

  2. 一般的な問題を除外する。

  3. ボトルネックを見つける。

    1. システムやアプリケーションを監視する。

    2. データを分析する。

  4. 一歩ずつチューニングを行なう。

1.1. どの問題を解決すべきかの確認

お塚のシステムに対してチューニングを行なう前に、まずは問題点をできる限り 詳細に説明できるように努めてください。言うまでもないことですが、シンプルで 一般的すぎる システムが遅い! だけでは問題の説明にはなりません。 たとえば、 Web サーバについて静的なページをより高速に配信したい場合であれば、 単純に全体的な速度を向上する必要があるのか、もしくはピーク時間帯の改善を はかりたいのかで話が変わってきます。

さらに言えば、ご自身が直面している問題に対して、具体的なデータ測定を行なう ことができるかどうかを検討する必要もあります。データ測定を行なわないと、 チューニングが成功したのかどうかの判断が付かなくなってしまうためです。 また、チューニングの 実施前実施後 での 比較も重要です。

1.2. 一般的な問題の除外

性能面の問題では、しばしばネットワークやハードウエアの問題やバグ、設定問題 などが原因となる場合があります。システムのチューニングに取りかかる前に、 まずは下記に示されたような事象が発生していないかどうかを確認し、一般的な 問題を除外してください:

  • まずは /var/log/warn/var/log/messages を確認し、通常時は見られないような メッセージが記録されていないかどうかを確認します。

  • top コマンドや ps コマンドを利用し、 CPU 時間やメモリを大幅に消費していたり、占有していたりするプロセスが存在 しないかどうかを確認します。

  • /proc/net/dev の内容を確認し、ネットワーク問題が 発生していないかどうかを確認します。

  • 物理的なディスクに I/O 問題が発生しているような場合は、これがハードウエア 側の原因やディスク全体の原因でないことを確認します (たとえば smartmontools によるディスクチェックなどで確認) 。

  • バックグラウンドのジョブでは、サーバの負荷が低くなる時間帯にスケジュール されていることを確認します。また、これらのジョブは優先度の低い設定で 動作させる必要があります (nice コマンドを使用します) 。

  • 同一の資源を利用する複数のサービスが動作しているマシンの場合は、他のサーバに サービスを移設できないかどうかを検討します。

  • 最後に、お使いのソフトウエアが最新の状態であることを確認します。

1.3. ボトルネックの発見

システムをチューニングするに当たって、もっとも難しいのがボトルネックの 発見です。 openSUSE では、このような作業を行なうに当たって多数の ツールを提供しています。これらのシステム監視アプリケーションやログファイルの 分析について、詳しくは パートII「システム監視」 をお読み ください。問題の原因を追及するのに長時間かつ深い分析を必要とする場合は、 そのようなアプリケーションも用意されています。詳しくは パートIII「カーネル監視」 をお読みください。

データの収集を行なった後は、それらを分析する必要があります。まずはサーバの ハードウエア情報 (メモリ, CPU, バス) とその I/O 性能 (ディスク, ネットワーク) を分析してみてください。これらの基本要件が正しく満たされていれば、システムを チューニングするための準備ができたものと言えます。

1.4. 一歩ずつのチューニング

チューニングの実施は注意して行なってください。同時に複数の対応を実施したり せず、 1 つずつ確実に実施してください。それぞれの変更によって改善されたのか どうかを確認するには、 1 つずつ実施してそれぞれで測定を行なう必要がある ためです。また、それぞれ実施したチューニングに対しては、十分な時間を 確保してデータの測定を行ない、十分なデータ量に対して分析を行なって ください。なお、改善が見られないような場合は、それらの変更は恒久的に 反映しないでください。変更によって将来、何らかの悪い影響を与えてしまう 場合が考えられるためです。


openSUSE システム分析とチューニングガイド 13.1