アカウント名:
パスワード:
それに加えて, 各アプリケーションプログラムが使用する細かいワークファイルやローカルキャッシュファイルをRAMディスクに置いて, 適当なタイミングでバッチ的に退避・同期させるのがいいんじゃないかと.
細かい書き込みを頻繁に行うのはSSDが比較的苦手とする処理で寿命にも影響するし, それに主記憶が8GBほどあれば1〜2GB程度RAMディスクにまわしても大丈夫でしょうし.
# メモリをそれほど消費しない用途のクライアントPCの話ね
仮想メモリとディスクキャッシュを混同してません?また、RAMディスクはディスクに書き込まないデータを明示的に決定しますがライトバックなディスクキャッシュでの書き込みは、すべてのデータがディスクに書き込まれる保証はありません。
>細かい書き込みを頻繁に行うのはSSDが比較的苦手とする処理で寿命にも影響するしHDDに比べればSSDの方が得意でSSDを使う理由の一つでもあるけどな。
>細かい書き込みを頻繁に行うのはSSDが比較的苦手とする処理で寿命にも影響するし HDDに比べればSSDの方が得意でSSDを使う理由の一つでもあるけどな。
いえ, 現在のSSDの主流であるFlashメモリでは, 内部的な書き込みの単位はハードディスクなどの512バイトや4096バイトといったレベルではなく, 数10kB(おそらくは64kB以上)から1MB単位のブロックで行われます. また, Flashメモリでの書き込み処理は, 既存のデータを保持した状態から別のデータを書き込むのではなく, 一旦ブロック全体を消去して, そこに新しいデータを書き込むという手順になります. この時, ブロックを消去するのにかかる時間はブロックに書き込む時間よりもはるかに長いため, 多くのSSDではあらかじめ消去しておいたブロックに変更後のデータを書き込むことにより, 見かけ上の書き込み速度を上げています.
そのため, SSDで小さなデータを多く書き込む処理を行った場合, インターフェイス側から見るデータ量よりもはるかに多くのデータ量に対応するブロックを書き換えなければならないことになり, 事前に消去しておいたブロックの底がついた場合にはプチフリというような形で急激な速度低下が発生することになります.
# このあたりの挙動はコントローラやファームの出来で大きく変わりますが
一般的なSSDという話で, バッテリーバックアップRAMディスク(エンタープライズ向けデータベースサーバなんかで使われるやつ)を考えるのなら, 確かにその通り.
動作はその通りだと思うのですが、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とそれほど変わらなかった筈ですよ。
数年前の知識で止まってるようですが、いまどきのSSDでプチフリなんてもはや死語です。その辺お店で売ってる、コンシューマ用の1-2万円のSSDであっても、そういう現象は起きない。
SSDの物理的はデータ配置と、論理的なアドレスはまったく異なります。小さなデータをランダムなアドレスに書き込む場合、論理的なアドレスはばらばらですが、物理的には連続したメモリブロックに書き込まれます。書き込んだ後に、アドレス変換テーブルを書き換えておく。こういう動作なので、小さいデータをランダムに書き込んでも、急激に寿命が低下するということも起きません。
逆に小さなデータをランダムに読み出す場合には、物理的に非連続なメモリブロックから読み出す必要があるので、少し遅くなります。大抵のSSDで、4kランダムリード/ライトでライトのほうが早いのはこのためです。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ見習い
現状だと (スコア:3, 参考になる)
Re: (スコア:1)
それに加えて, 各アプリケーションプログラムが使用する細かいワークファイルやローカルキャッシュファイルをRAMディスクに置いて, 適当なタイミングでバッチ的に退避・同期させるのがいいんじゃないかと.
細かい書き込みを頻繁に行うのはSSDが比較的苦手とする処理で寿命にも影響するし, それに主記憶が8GBほどあれば1〜2GB程度RAMディスクにまわしても大丈夫でしょうし.
# メモリをそれほど消費しない用途のクライアントPCの話ね
Re: (スコア:0)
RAMディスクで効率が良くなるようだったら、それは、仮想メモリのチューニングで同じ事が出来るわけで・・・。
Re:現状だと (スコア:0)
仮想メモリとディスクキャッシュを混同してません?
また、RAMディスクはディスクに書き込まないデータを明示的に決定しますが
ライトバックなディスクキャッシュでの書き込みは、すべてのデータがディスクに書き込まれる保証はありません。
>細かい書き込みを頻繁に行うのはSSDが比較的苦手とする処理で寿命にも影響するし
HDDに比べればSSDの方が得意でSSDを使う理由の一つでもあるけどな。
Re:現状だと (スコア:2)
いえ, 現在のSSDの主流であるFlashメモリでは, 内部的な書き込みの単位はハードディスクなどの512バイトや4096バイトといったレベルではなく, 数10kB(おそらくは64kB以上)から1MB単位のブロックで行われます. また, Flashメモリでの書き込み処理は, 既存のデータを保持した状態から別のデータを書き込むのではなく, 一旦ブロック全体を消去して, そこに新しいデータを書き込むという手順になります. この時, ブロックを消去するのにかかる時間はブロックに書き込む時間よりもはるかに長いため, 多くのSSDではあらかじめ消去しておいたブロックに変更後のデータを書き込むことにより, 見かけ上の書き込み速度を上げています.
そのため, SSDで小さなデータを多く書き込む処理を行った場合, インターフェイス側から見るデータ量よりもはるかに多くのデータ量に対応するブロックを書き換えなければならないことになり, 事前に消去しておいたブロックの底がついた場合にはプチフリというような形で急激な速度低下が発生することになります.
# このあたりの挙動はコントローラやファームの出来で大きく変わりますが
一般的なSSDという話で, バッテリーバックアップRAMディスク(エンタープライズ向けデータベースサーバなんかで使われるやつ)を考えるのなら, 確かにその通り.
Re:現状だと (スコア:2)
そのため, 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とそれほど変わらなかった筈ですよ。
Re: (スコア:0)
数年前の知識で止まってるようですが、いまどきのSSDでプチフリなんてもはや死語です。
その辺お店で売ってる、コンシューマ用の1-2万円のSSDであっても、そういう現象は起きない。
SSDの物理的はデータ配置と、論理的なアドレスはまったく異なります。
小さなデータをランダムなアドレスに書き込む場合、論理的なアドレスはばらばらですが、物理的には連続したメモリブロックに書き込まれます。
書き込んだ後に、アドレス変換テーブルを書き換えておく。
こういう動作なので、小さいデータをランダムに書き込んでも、急激に寿命が低下するということも起きません。
逆に小さなデータをランダムに読み出す場合には、物理的に非連続なメモリブロックから読み出す必要があるので、少し遅くなります。
大抵のSSDで、4kランダムリード/ライトでライトのほうが早いのはこのためです。