質問: 開発者向けノートブック(wamp / lampスタック)にssdを使用する場合のパフォーマンスの問題? 私はノートブックをスタンドアロン開発環境(wampスタック)として使用しているwebアプリケーション開発者です。 2gb ramおよびsatahddを搭載したcore2duo vista 32ビットノートブックから、4gb ram)を搭載したi5-2520m windows 764ビットに切り替えました。および128gb ssd(corsair p3128)。私の最初の経験は、私が期待したもの、高速ブート、すべてのアプリケーションの迅速なロード(eclipseは私の古いノートブックでは30秒でしたが、今では5秒かかります)、全体的に素晴らしい経験でした。次に、lamp(debianゲストでvirtualboxを使用)とwamp(windowsネイティブのapache + mysql + php)の両方として開発スタックを構築し始めました。私はそれら2つを比較したかった。これはまだすべてうまくいきました、それから私は自分のプロジェクトをこれらのスタックに引き込み始めました。そして、ここに厄介な驚きがありました。それらのプロジェクトの1つは、私の古いノートブックよりもはるかに悪い応答時間を生み出しました(これは、virtualboxとwampスタックの両方に当てはまりました)。 apache、phpおよびmysqlの構成は、すべての環境で実質的に同一でした。私は多くのベンチマークとプロファイリングを開始しました。これが私が見つけたものです。 すべての一般的なベンチマーク(パフォーマンステスト7.0、hdtune pro、wprime2など)は、新しいノートブックに大きな利点をもたらしました。ここで驚くことは何もありません。ディスク固有のテストでは、ssdの読み取り/書き込み操作のピークが約380m/160mであり、さまざまなサイズのブロック操作もすべて非常に良好に機能することが示されました。 小さな静的htmlファイル(10の同時スレッド、500の反復)に対してapacheベンチマークを使用してapacheパフォーマンスベンチマークを開始しました。 古いノートブック:最小47ミリ秒、中央値111ミリ秒、最大156ミリ秒 新しいwampスタック:最小71ミリ秒、中央値135ミリ秒、最大296ミリ秒 新しいlampスタック(virtualbox内):最小6ミリ秒、中央値46ミリ秒、最大175ミリ秒 ここでは、ネイティブwampスタックのパフォーマンスがそれほど悪い理由はわかりませんが、少なくともlamp環境は期待される速度をもたらしました。 キャッシュされていないphpコンテンツのapacheパフォーマンス測定。phpは1000のループを実行し、sha1(uniqid())inisdeを生成します。ここでも10個の同時スレッド、500回の反復がベンチマークに使用されました。 古いノートブック:最小0ミリ秒、中央値39ミリ秒、最大218ミリ秒 新しいwampスタック:最小20ミリ秒、中央値61ミリ秒、最大186ミリ秒 新しいlampスタック(virtualbox内):最小124ミリ秒、中央値704ミリ秒、最大2463ミリ秒 なんてこったい?新しいlampは悲惨なパフォーマンスを示し、新しいネイティブwampでさえ古いノートブックよりも優れていました。 php + mysqlテスト。このテストは、データベースに接続し、ループ内で100回繰り返される、さらに3つの(インデックス付き)テーブルでinnerjoinを使用してテーブルから単一のレコードを読み取ることで構成されます。データベースは同一でした。ベンチマークには、10個の同時スレッド、100回の反復が使用されました。 古いノートブック:最小1201ミリ秒、中央値1734ミリ秒、最大3728ミリ秒 新しいwampスタック:最小367ミリ秒、中央値675ミリ秒、最大1893ミリ秒 新しいlampスタック(virtualbox内):最小1410ミリ秒、中央値3659ミリ秒、最大5045ミリ秒 そして、同時実行性を(10ではなく)1に設定した同じテスト: 古いノートブック:最小1201ミリ秒、中央値1261ミリ秒、最大1357ミリ秒 新しいwampスタック:最小399ミリ秒、中央値483ミリ秒、最大539ミリ秒 新しいlampスタック(virtualbox内):最小285ミリ秒、中央値348ミリ秒、最大444ミリ秒 厳密には、自己完結型の開発環境(=同時実行性が低い)を使用しているため、2番目のテストの結果に満足できました。 virtualbox環境のパフォーマンスが高く、同時実行性が高い理由はわかりませんが。 最後に、多くのphpファイルを含めるテストを実行しました。最初に述べたアプリケーションは、パフォーマンスが非常に悪かったため、ブートストラップが重く、初期化中に何百もの小さなライブラリと構成ファイルをロードします。したがって、このテストでは、約100個のファイルが含まれるだけです。同時実行性を1、100回の反復に設定: 古いノートブック:最小140ミリ秒、中央値168ミリ秒、最大406ミリ秒 新しいwampスタック:最小434ミリ秒、中央値488ミリ秒、最大604ミリ秒 新しいlampスタック(virtualbox内):最小413ミリ秒、中央値1040ミリ秒、最大1921ミリ秒 virtualboxが共有フォルダーを介してこれらのファイルに到達し、処理速度が少し低下したと考えても、古いノートブックが両方の新しい構成よりも大幅に優れているかどうかはわかりません。そして、これがパフォーマンスの低下の本当の原因だと思います。アプリケーションはさらに多くのインクルードを使用し、全体のbootstrapはページリクエスト内で数回発生します(各ajax呼び出し)。 要約すると、ここでは、古いノートブックが5〜7秒で実行できるのと同じページを20秒でロードする新しい高性能ノートブックを使用しています。言うまでもなく、私は今はあまり幸せな人ではありません。なぜ私はこれらの低いパフォーマンス値を経験すると思いますか?この状況を改善するための私のオプションは何ですか?ついに問題の根本を突き止めたようです。ssdをintelhm55またはpm55チップセットを搭載したラップトップで使用すると、パフォーマンスが低下する可能性があります。以下の私自身の完全な答えを見てください。
回答: 言い換えると、ディスクレベルのベンチマークはssdに優れた結果をもたらしますが、実際に使用すると、ディスクは非常に低速になります。そのため、何かが物事を遅くし、ファイルへのアクセスを予想よりもはるかに遅くしています。いくつかの理由があるかもしれません: 最も可能性が高いのは、アンチウイルスです。いくつかは本当にベンチマークキラーであり、テストせずにそれらがパフォーマンスにどのように影響するかを予測することはほとんどできません。 他の何かがファイルへのアクセスを遅くします。少量のデータで多くの操作をテストしているように見えるたびに。しかし、10 gbのファイルを読み書きしたときのパフォーマンスはどうですか? os関連の構成は異なる場合があります。たとえば、osはハードドライブを搭載したマシンでは小さなファイルにキャッシュを使用していますが、ssdを搭載したマシンでは使用していません。この場合、ハードディスクの速度を実際にテストしていないため、最初のマシンのベンチマークは間違っています。 ディスク関連の構成は異なる場合があります。 (windowsの)書き込みキャッシュポリシーに関連するオプションのようなオプションは、パフォーマンスに影響を与える可能性があります。 ssdが正しく機能しない場合があります。