2012-04-02 12 views
2

これまでに、私はSPARCハードウェア上のSolaris 10のシステムコールのコストについて質問しました。ここ数ヶ月で、この問題は数回再現され、ここで私が見つけたものがあります。Solaris対Linuxのシステムオーバーヘッド

300MBのファイルを256バイトのブロックでディスクから読み取る総合テストを行うと、Solaris 10ではかなり時間がかかりますが、それはLinuxで実行されます。テストは、次の方法で行われます。

dd if=test.dat of=/dev/null bs=256

test.dat/tmpのようなメモリマップドファイルシステムに格納されている場合でも、Linuxは大きなマージンでのSolarisよりも性能が優れています。ユーザー空間とカーネル空間の間を行き来するオーバーヘッドは、Solarisでは同じハードウェア上で実行されている場合でも、Linuxよりもかなり高いようです。

私は2つの質問がある:それは、Linux経由でSolarisの既知の問題点のいくつかの種類

  1. ですか?
  2. I/Oブロックのサイズを256から増やすことができないと仮定して、Linuxを一致させるためにSolarisを調整する方法はありますか?

ありがとうございました!

+1

不特定多数の変数があります。これは同等のハードウェア上にありますか?同じディスク?同じファイルシステムですか?システムコールのオーバーヘッドに関する質問に答えるには、他の作業をしない別のシステムコールを使用する必要があります。 – alberge

+0

@alberge私が得ることができる最高の「同等のハードウェア」は、Windows7ホストで実行されているVirtualBoxマシンの2つのインスタンスです。私は、この設定が薄れている可能性があることを知っていますが、一連の実験では、数値は妥当な分散のままです。 "/ tmp"を使用したテストでは、両方のファイルシステムが同じ - tmpfsです。また、ibsとobsを別々に指定し、obsを8192に保つことによってテストを強化しました。 – evolvah

+0

ファイルシステムは、同じ名前を持つという点で「同一」です。tmpfsの実装は、LinuxとSolarisの間で共通して何も共有しません。現在使用している複雑な組み合わせではなく、システムコールのオーバーヘッドを測定するものを探してみてください。また、両方のシステムの仕様を述べ、テスト中にどのボトルネックが発生しているかを調べる必要があります。 – jlliagre

答えて

1

質問にはさらに詳しい情報を含める必要があります。私の意見では、あなたの問題はファイルシステムに関するものであり、運用システムに関するものではありません。 XFSを使用すると、512バイトから64キロバイトの範囲のブロックサイズでファイルシステムを作成することができ、ファイルシステムを期待通りの使用に調整できます。 Solarisでは、デフォルトのファイルシステムはxfsです。したがって、256バイトのブロックサイズは適切なパラメータではありません。何が起こるか見るために512に増やしてください。

+1

Solarisのデフォルトファイルシステムは、ufs(S10以前)またはZFS(S11)です。/tmpの場合、デフォルトはtmpfsです。 Solarisにはxfsサポートはありません。 – jlliagre

2

あなたはこれを本当のリンゴとリンゴの比較とし、SolarisとLINUXの箱の性能/容量が同じであると仮定しますか?とにかく、いくつかの重要な質問はこのを通してあなたを助けるために:

1)次のコマンドを実行するとのvmstat 1このDDが実行されている間、あなたはLINUX対のSolaris 10のボックスに数字の種類を得るのですかボックス?

2)その操作の経過時間はどのくらいですか?私はそれを行うには、Solaris 10 x86のを実行している私のPC上でかろうじて2秒を見ている...

3)(あなたのかのパラメータの完全修飾パスを使用してみてくださいすなわち場合=を/ tmp/TEST.DAT vs if = test.dat)、/ tmpを実行していることを二重に確認するだけです。

ショーン。

+0

経過時間を観測可能な値に向上させるには、入力ファイルのサイズを大きくするだけです。私のハードウェアでは、約4〜5秒で300MBのファイルが消費されます。テストシステムを起動すると、後でvmstatを実行します。その間、Solaris上の 'prstat'の出力を見ると、I/Oを待っていることに気づいていませんでした。 USRとSYSの合計は100%に近い。 SCL値は1秒サンプルあたり0.2M以上です。 – evolvah