パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

ハイブリッドドライブには8GBのフラッシュメモリーで十分?」記事へのコメント

  • OSとかコアの部分をSSDにして、データファイルとかはHDDにするのがいいのかな?
    • by SteppingWind (2654) on 2013年08月10日 15時08分 (#2438541)

      それに加えて, 各アプリケーションプログラムが使用する細かいワークファイルやローカルキャッシュファイルをRAMディスクに置いて, 適当なタイミングでバッチ的に退避・同期させるのがいいんじゃないかと.

      細かい書き込みを頻繁に行うのはSSDが比較的苦手とする処理で寿命にも影響するし, それに主記憶が8GBほどあれば1〜2GB程度RAMディスクにまわしても大丈夫でしょうし.

      # メモリをそれほど消費しない用途のクライアントPCの話ね

      親コメント
      • by Anonymous Coward
        仮想メモリを積んでる現代的なOSでRAMディスクって言うのが個人的には全く無意味だと思うんですよね。
        RAMディスクで効率が良くなるようだったら、それは、仮想メモリのチューニングで同じ事が出来るわけで・・・。
        • by Anonymous Coward

          仮想メモリとディスクキャッシュを混同してません?
          また、RAMディスクはディスクに書き込まないデータを明示的に決定しますが
          ライトバックなディスクキャッシュでの書き込みは、すべてのデータがディスクに書き込まれる保証はありません。

          >細かい書き込みを頻繁に行うのはSSDが比較的苦手とする処理で寿命にも影響するし
          HDDに比べればSSDの方が得意でSSDを使う理由の一つでもあるけどな。

          • by SteppingWind (2654) on 2013年08月10日 21時28分 (#2438689)

            >細かい書き込みを頻繁に行うのはSSDが比較的苦手とする処理で寿命にも影響するし
            HDDに比べればSSDの方が得意でSSDを使う理由の一つでもあるけどな。

            いえ, 現在のSSDの主流であるFlashメモリでは, 内部的な書き込みの単位はハードディスクなどの512バイトや4096バイトといったレベルではなく, 数10kB(おそらくは64kB以上)から1MB単位のブロックで行われます. また, Flashメモリでの書き込み処理は, 既存のデータを保持した状態から別のデータを書き込むのではなく, 一旦ブロック全体を消去して, そこに新しいデータを書き込むという手順になります. この時, ブロックを消去するのにかかる時間はブロックに書き込む時間よりもはるかに長いため, 多くのSSDではあらかじめ消去しておいたブロックに変更後のデータを書き込むことにより, 見かけ上の書き込み速度を上げています.

            そのため, SSDで小さなデータを多く書き込む処理を行った場合, インターフェイス側から見るデータ量よりもはるかに多くのデータ量に対応するブロックを書き換えなければならないことになり, 事前に消去しておいたブロックの底がついた場合にはプチフリというような形で急激な速度低下が発生することになります.

            # このあたりの挙動はコントローラやファームの出来で大きく変わりますが

            一般的なSSDという話で, バッテリーバックアップRAMディスク(エンタープライズ向けデータベースサーバなんかで使われるやつ)を考えるのなら, 確かにその通り.

            親コメント
            • by kmra (33703) on 2013年08月11日 0時38分 (#2438756) 日記

              そのため, SSDで小さなデータを多く書き込む処理を行った場合, インターフェイス側から見るデータ量よりもはるかに多くのデータ量に対応するブロックを書き換えなければならないことになり, 事前に消去しておいたブロックの底がついた場合にはプチフリというような形で急激な速度低下が発生することになります.

              動作はその通りだと思うのですが、4000MB分の4KB Random Write (CrystalDiskMark)だとSSDがHDDより圧倒的に速いようです。

              SSDの例として、PCWatchにの記事にあるIntel Solid-State Drive 520/320でのCrystalDiskMark 4000MBの結果を見ると
              http://pc.watch.impress.co.jp/docs/column/hirasawa/20120207_510153.html [impress.co.jp]

              Intel Solid-State Drive 520 [intel.com]のランダムライト4KBは81.70MB/sなので
              81.70*1024/4=20915IOPS

              Intel Solid-State Drive 320 [intel.co.jp]のランダムライト4KBは39.01MB/sなので
              39.01*1024/4=9987IOPS

              これに対して7200rpmのハードディスクだと
              MARSHAL MAL2500SA-T72のランダムライト4KBは0.973MB/s [thinkpad-t.net]なので
              0.968*1024/4=248IOPS

              条件にもよりますが、上記の例ではSSDがそれぞれ、40倍、84倍速い様です。

              ところで、FlashメモリのBlock Eraseは単位が大きいので、スループットとしてはPage Writeとそれほど変わらなかった筈ですよ。

              親コメント
            • by Anonymous Coward

              数年前の知識で止まってるようですが、いまどきのSSDでプチフリなんてもはや死語です。
              その辺お店で売ってる、コンシューマ用の1-2万円のSSDであっても、そういう現象は起きない。

              SSDの物理的はデータ配置と、論理的なアドレスはまったく異なります。
              小さなデータをランダムなアドレスに書き込む場合、論理的なアドレスはばらばらですが、物理的には連続したメモリブロックに書き込まれます。
              書き込んだ後に、アドレス変換テーブルを書き換えておく。
              こういう動作なので、小さいデータをランダムに書き込んでも、急激に寿命が低下するということも起きません。

              逆に小さなデータをランダムに読み出す場合には、物理的に非連続なメモリブロックから読み出す必要があるので、少し遅くなります。
              大抵のSSDで、4kランダムリード/ライトでライトのほうが早いのはこのためです。

        • by Anonymous Coward

          OSの仮想メモリが過去のアクセスパターンからキャッシュの取捨選択を判断せざるを得ないのに対して、RAMディスクではこれからの使い方を考えながらユーザが内容を取捨選択できるので、仮想メモリでは不可能なチューニングも可能。無意味ではないと思うよ。
          たとえば、高頻度で使用していたデータを以後使わなくなる場合とか、1回限りのデータ使用をOSのレイヤーで判断するのは困難なので、ユーザがRAMディスクに入れるデータをきちんと管理できればより高いパフォーマンスを期待できる。

          自分の例だけど、先日複数のISOファイルを使用してVMにOSを入れるという作業を何回か行ったんだけど、もう使わないISOファイルもOSはキャッシュし続けてしまう。
          そのISOファイルをもう使わないというユーザ側の事情をOSは判断できないから当然なのだけど、ユーザ自身はもう使わないことを知っているから、RAMディスクであれば必要な期間だけISOファイルを入れておくということができる。

          まぁ、割と極端なケースだとは思うけどRAMディスクのほうが有利なケースもあるということで。

          • by sumeshi0206 (12305) on 2013年08月10日 22時46分 (#2438724) 日記

            メモリを潤沢に積んで動画編集の一時保存先なんてどうでしょう?>RAMディスク

            (停電したらチーンw)

            親コメント
            • by Anonymous Coward

              64bit OSにしたほうがはるかにマシ

              • by sumeshi0206 (12305) on 2013年08月11日 15時44分 (#2438919) 日記

                64bitOSはRAMディスク使えないのか。

                #インメモリDBってのもあったね。一般用とちゃうけどw

                親コメント
              • by Anonymous Coward
                RAMディスク使えますし(Gavotte Ramdiskとか)、
                インメモリDBも一般的なものもあります(Redisとか)。

                # Accessと比べたら一般的ではないけれど。
          • by Anonymous Coward

            >1回限りのデータ使用をOSのレイヤーで判断するのは困難なので

            1回しか使わないにしても、RAMディスクへ転送するための1回と、直接ディスクから読み込む1回でたいした違いなんかない気がするんだけど。まあ、シーケンシャルアクセスでRAMディスクへ転送、その後ランダムアクセスするのと、ディスクに対して直接ランダムアクセスする場合は違いが出てくるのかも知れないけど。

            >もう使わないISOファイルもOSはキャッシュし続けてしまう。
            >RAMディスクであれば必要な期間だけISOファイルを入れておくということができる。

            使わなきゃそのうち破棄されるでしょ。
            使うならキャッシュし続けられるでしょ。

            RAMディスクを設定するほど潤沢にメモリを積んでるなら、十分にキャッシュされると思うんだけどね。
            OSが扱い切れない領域のメモリを有効利用するためのRAMディスクってのなら分かるけど。

            キャッシュに入ってる頻繁に使われるデータが、1回しか使わないデカいデータで押し出されるのが問題だというなら理解できるがRAMディスクには関係がない話だし。

        • by Anonymous Coward

          一時ファイルを作らずに全部オンメモリで持ってくれるアプリしか使わないんだ?すごいねぇ。

          「俺はどうしても一時ファイルを%TEMP%に書きたいんだ!」と力説する困ったアプリのために32GB中4GBをRAMディスクに割いてるのでAC。

物事のやり方は一つではない -- Perlな人

処理中...