2011-12-21 9 views
4

最近、私はLinux用のセキュリティメカニズムを実装しています。今私はそれによって引き起こされるオーバーヘッドを測定する必要があります。このプロジェクトでは、典型的なLinuxアプリケーションの実行時間を、メカニズムの有無にかかわらず比較する必要があります。典型的なLinuxアプリケーションでは、私は元になります。 1Gファイルをgzipし、 'find /'を実行してファイルをグレープします。主な目的は、CPUバインド、I/Oバウンドなどさまざまなタイプのタスクにオーバーヘッドを表示することです。カーネルスペースでのオーバーヘッドを正確に測定する方法

質問は信頼性が高くなるようにテストを構成する方法ですか?最初の重要なことは、私の仕組みがカーネル空間でしか動作しないという事実です。だから、systimeを比較することが適切です。私はそれのための '時間'コマンドを使用することができますが、それはシステムを測定する最も正確な方法ですか?別のアイデアはエラーを最小限に抑えるために長いループでそれらのアプリを実行することです。その後、ループは、時間のコマンドの内側または外側にする必要がありますか?彼らが外にいる場合、私は多くの結果を得るでしょう - 私は最小、最大、中央値、平均を選択する必要がありますか?

ありがとうございます。

+3

を参照してください:カーネルのコンパイルを。それは比較的重いです。 – ninjalj

+1

これはどのセキュリティ機構ですか? –

+0

@ninjalj:カーネルのコンパイルに関する提案をありがとう。それは確かに私のテストの一つになるでしょう:)。 –

答えて

3

一般的なアプリケーションのペイロードを測定したいと思っています(Ninjajlのコメントからもわかるように、カーネルのコンパイルは良いペイロードになる可能性があります)。おそらく、各システムコール内部のオーバーヘッドや、カーネル全体のオーバーヘッドを測定する必要はありません。

これは、ほとんどのアプリケーションでは、カーネル・ランド(つまりシステムコール)よりもユーザー空間ではるかに多くの時間とリソースが費やされるため、システム・コールのオーバーヘッドは「2次」効果であり、できるだけ多く。もちろん、例外が存在する可能性があります。

おそらくphoronix test suiteが該当します。

あなたはoprofile

により興味があるかもしれません標準のLinuxベンチマーク使って、スタートもthis answerthis question

+0

私は、典型的なアプリケーションのペイロードが鍵だと感じています。しかし、同様のメカニズムを使用すると、30%のような意味のオーバーヘッドが発生します(ptraceベースの場合)ので、自分のメカニズムがより高速で、はるかに高速であることを示す必要があります。主な目標は、オーバーヘッドが5%未満であることを示すことです。 その他の一般的なアプリケーションの提案は、カーネルのコンパイルとは異なりますか?彼らはどういうわけか、ex。 CPUバウンド、I/Oバウンド。 –

+0

phoronixテストスイートにはいくつかのアプリケーションがあります。また、主要なLinuxサーバープログラム(Apache、MySQL)を試すこともできます。 –

関連する問題