Hatena::ブログ(Diary)

ウィモバの日々 Twitter

2014-10-21

Linuxのキャッシュ領域やスワップ領域をメモリに移して高速化したりSWAPを無効化したりする

Windowsではデフォルトでメモリのスワップ領域やTEMP(一時)キャッシュ領域がHDDSSDに設定されているけど、

Linuxでも同じようにOSインストールした際に自動的にswap領域やキャッシュがどこかに割り当てられることがある。

物理デバイスに書き込む場合はその分だけ処理が遅くなってしまうし

SSDの場合だとWindowsと同じように、SSDへの書き換えが発生して寿命が縮まるということになってしまうので、

スワップ領域や一時キャッシュ領域をメモリに移したり、メモリに余裕があるならスワップを無効してしまおう。

これはUbuntu系ならディストリビューション関係なく定番っぽい。


まずfreeコマンドでswap領域が割り当てられているか確認する。

SwapTotalメモリが0でない場合は、どこかに割り当てられているので

cat /proc/swaps とか cat /proc/partitions でswap領域のデバイス名を確認しよう。

f:id:rideonshooting:20141021193954p:image:w360

ちなみに、今回は割り当てられているのは /dev/zram0 だった。

調べてみると、このzramというのはメインメモリの中に高速な圧縮RAM領域を作る機能らしい。

http://linux.ikoinoba.net/index.php?UID=1330607779

物理的なディスクのパーティションに割り当てはなかったので問題なし、かな。よかった。

もし物理パーティションHDDSSD)に割り当てられていたら、

上記のサイトを参考にzramを作成して割り当て直したりしよう。

Debian系の場合はこちらを参考に。 http://www.nofuture.tv/diary/20140626.html


最近の高スペックなPCで動作させていてメモリがたっぷりあるならswap領域を完全に消しちゃうのもありっぽい。

#swapoff -a

上記のコマンドで一時的にswap領域を無効化できるけど、Linux再起動したらまたswapが自動的に復活してくるので、

#sudo leafpad /etc/rc.local とか #sudo gedit /etc/rc.local とかで

rc.localを開いて、exit 0コマンド行の前に 

#swapoff -a

の行を追加して起動時に毎回swapを無効化しよう。

もしくは、完全に消去する場合はswapoffした後にrmコマンドでデバイス自体を削除したりしよう。

 ※/etc/rc.local はLinux立ち上がり時に毎回実行されるシェル


  • 3:一時フォルダやログフォルダをメモリ(RAMDISK)に設定

一時フォルダ(キャッシュ)やログフォルダは通常では物理ディスクにそのまま保存されるけど

tmpfsを指定してマウントすることで、メモリに割り付ける。WindowsでいうRAMディスク機能。

厳密には少し違うけどそこまで意識しなくていい。 http://itpro.nikkeibp.co.jp/article/Keyword/20080808/312545/


#sudo leafpad /etc/fstab とか #sudo gedit /etc/fstab

とかでfstabファイルを開いて、

tmpfs /var/log tmpfs defaults,noatime,size=64m 0 0

tmpfs /var/tmp tmpfs defaults,noatime,size=64m 0 0

tmpfs /tmp tmpfs defaults,noatime,size=512m 0 0

の行を追加してログフォルダと一時フォルダをメモリ領域に割り付ける。

〜mというのは使用されるメモリの最大サイズ。指定しないとメモリが許す限り領域が使われるみたい。

ファイルに追記して、今のフォルダを削除したらリブートしよう。実際に反映されているかは

#df -h

コマンドで確認。 /tmp などの一番左のFilesystemがtmpfsになっていたらOK

あと、ログフォルダをキャッシュに移してアプリインストール時に警告が出る場合は /etc/rc.localを開いて、exit 0 行の前に

mkdir -p /var/log/apt

の行を追加しよう。これでLinux起動時にログフォルダが自動的に作成されて警告がでなくなるっぽい。


参考:

Eee PC 901-16GにUSBメモリベースのeeeUbuntuを導入 http://d.hatena.ne.jp/pasela/20081208/eeeUbuntu

eeeUbuntu – (2) ファイルシステム,キャッシュ http://fumi.me/2008/08/24/eeeubuntu-fs/


Linuxファイルシステムはファイルアクセス時間も保存しているので、

ファイルを読み込むだけでもアクセス時間が保存される=ディスクへの書き込みが発生する。

とはいっても普通の使い方ならそこまでの頻度ではないと思うけど、書き込み頻度を少しでも減らしたい人は設定しよう。

まずはmountコマンドを実行すると、現在のLinuxシステムがマウントしているデバイスが羅列されるので

確認しよう。たとえば

tmpfs on /tmp type tmpfs (rw,relatime)

となっていたらrelatime指定なのでファイルアクセス毎に書き込みが発生している。


Linux起動時にマウントされるデバイスを設定しているのはfstabなので、

#sudo leafpad /etc/fstab とか #sudo gedit /etc/fstab

とかでfstabファイルを開いてrealtimeの部分をnoatimeに変更しよう。

またdefaultsだけが書いてある場合もマウントコマンドで確認したとおりrealtimeに設定されているので

defaults,noatime

とカンマの後にnoatimeを追記しよう。

変更後保存して、リブートしたあとmountで確認すれば、noatimeに設定されているはず。

2014-10-06

手持ちのUSBメモリとSDカードをCrystalDiskMarkで計測した結果

f:id:rideonshooting:20141011133722j:image:w360

なるべく書き込みが速いメディアを探すべくUSBメモリSDカードとかを調べていると

フラッシュのNANDにはSLCMLCTLCがあって、最近はほとんどが書き込み低速なTLCらしい、という話を見かけて。

http://marosama.blogspot.jp/2012/07/usbusb30.html

http://arisate.blogspot.jp/2014/02/sdslcmlc-tlc.html

http://ameblo.jp/iso5210/entry-11847784011.html

話が難しいけどなんか結構公称値と実測値がわりと違ってるらしい(ランダムと0Fill問題)、とか

安い、と思ってアマゾンとかで怪しい業者から海外品を買うと中身(チップ)は偽物で低速だった、だとか

CrystalDiskMarkで読み書き値を計測することでMLCTLCとの違いがある程度見分けがつくとかつかないとか

ランダムライト512KBと4KBが逆転してる(4KBのほうが速い)とTLCっぽい、だとか。

なんかいろいろあるんだね。うーん難しい


なのでとりあえず手持ちのメディアを計測してみようのコーナー!(わーぱちぱち

テストはすべて同じPCを使って、USB2.0ポートと

USB3.0ポートに刺してCrystalDiskMark 3.0.3で計測。

USB2.0ポート接続の場合は緑色、3.0ポート接続の場合は青色にしているよ。

※PCのスペック。CPU:i5-3470 3.2GHz。 メモリ:4GB。 OS=Windows 7 Professional SP1(x86)

大抵はのメディアはフォーマットしなおしてない、購入直後に定番のFAT32だと思ってもらえばいいよ。

f:id:rideonshooting:20141004155747p:image:w360f:id:rideonshooting:20141004160621p:image:w360

まずはトップバッター。サンディスクのクラス不明なマイクロSDカード

microSDXC対応なカードリーダでUSB2.0ポートに刺した。

なんかさ・・・こんなもんかってカンジだよな(シアン

最低8MB以上ということで一応クラス8になるのかな?

USB3.0ポートに刺してみたら微増、という感じ・・・遅い。

f:id:rideonshooting:20141007202713p:image:w360f:id:rideonshooting:20141007210220p:image:w360

パナソニックの昔のclass4のSDカードUSB2.0接続した。

読み込みが遅いかな・・・?と思ったら読み書きともに8MB/s超え、とバランスはいい。

クラス4でこの書き込み速度はいったい。やはり昔のはいいやつだったのかしら・・・

f:id:rideonshooting:20141004180529p:image:w360

トランセンドのclass4のマイクロSDカードUSB2.0で使用。

クラス4・・・確かにシーケンシャルでは4MBは出てるけどさぁ。

あまりに遅すぎてしょんぼりする・・・(´・ω・`)

USB3.0ポートでもほぼ同じだったので割愛。SDカードのクラスとは・・・

2009年6月発売。公称速度は不明 http://buffalo.jp/products/catalog/flash/ruf2-ps-bk/

f:id:rideonshooting:20141006212229p:image:w360f:id:rideonshooting:20141006213001p:image:w360

USB3.0非対応のバッファローUSBメモリ

小型で便利なんだけど、遅い。USB3.0ポートに刺しても変化なしという・・・

あとぶっちゃけわりと黒い取っ手の部分が脆くて何度も抜き差ししてたら取れたw

しかも抜けたら実はmicroSDカードが中に入っていたという衝撃/^o^\

microSDカードでいうとクラス4ってレベルかなー。遅い

2005年1月発売。公称速度はRead:10MB/s http://www.itmedia.co.jp/pcupdate/articles/0501/12/news102.html

f:id:rideonshooting:20141010081900p:image:w360f:id:rideonshooting:20141010082451p:image:w360

USB2.0対応。一応Readは公称出ている。Readは一応公称速度は出ている。

512MBの容量でこれくらいの速度があるなら悪くはない気もする。

Writeも8MB/sと、昔の製品にしては悪くはない。ランダムWrite512Kでも8MB出てるので多分MLCだな?

USB3.0非対応でも3.0ポートに刺すと少しランダムReadの4Kは上がった不思議。

2012年10月発売。公称速度は不明 http://www.sony.jp/pocketbit/products/USM-U/

f:id:rideonshooting:20141004162714p:image:w360f:id:rideonshooting:20141004162712p:image:w360

LinuxのライブCDのインストーラとしても使用しているSONYUSBメモリ

USB3.0対応なせいか2.0でもシーケンシャル読み込みはそれなりには早い感じ。

でもシーケンシャルな書き込みは並のSDカードに負けるのねー。

そしてUSB3.0接続だと・・・ファ!?まさかのReadだけ爆速!?という衝撃の結果に。

確かにUSB3.0に対応したUSBメモリなんだけど。どういうことなんだキバヤシ・・・!?

試しに1個の大きいファイルをUSBにコピーしてから

HDDにファイルコピーしてみるとコピー中ダイアログの速度に

ほんとに120〜140MB/秒くらい出ててワラタ。Readがハヤイ!

でも書き込みは思ったより低いなあ、読み書きのギャップが激しい。

2009年9月発売。公称速度は不明 http://www.elecom.co.jp/news/200909/mf-au2b/

f:id:rideonshooting:20141004163646p:image:w360f:id:rideonshooting:20141004163648p:image:w360

エレコム製のUSB2.0対応のUSBメモリ

シーケンシャル書き込みもそこそこ高い。

古いやつだしMLC・・・なのかもしれない? MLCだったらいいなぁ(o-ω-)

ランダム書き込みはサンディスクSDに負けてるけど。大きなファイルの移動は悪くなさそう、かな。


3.0非対応だけどUSB3.0ポートに刺した状態だとちょっとスコア上がるね。

でもやっぱりランダム書き込みは遅いなぁ。

2011年発売。公称速度は70MB/s http://www.news2u.net/releases/80685

f:id:rideonshooting:20141004164926p:image:w360f:id:rideonshooting:20141004164924p:image:w360

トランセンドUSB3.0対応の32Gという大容量タイプ。 http://jp.transcend-info.com/Products/No-312

シーケンシャルだとそれなりに早いけどランダムがだめだなぁ。

32GBなんだし書き込み速度ももっと上がりそうなんだけど、2.0でエレコムの16GBより遅いのでTLC、かな。

Amazonの商品説明を見ると英語で思いっきりTLCと書いてあった><;


USB3.0対応なので3.0ポートでの読み込みはさすがの速さ。

書き込みもシーケンシャルはなかなか速いだけど、ランダムの書き込みの遅さはションボリ。

2014年3月発売 http://www.iodata.jp/product/usbmemory/standard/u3-max/feature.htm

f:id:rideonshooting:20141006192655p:image:w360f:id:rideonshooting:20141006192653p:image:w360

いよいよ満を持して登場したアルミボディがかっこいいIOデータのUSBメモリ

USB3.0では公称速度:Read=200MB/s、Write=100MB/s のMLC

USB2.0でもシーケンシャルの書き込みが26MB/sとハヤイ!

USB3.0ならさらに速い!100MB/sにはちょっと届かないけどWrite=97MB/sなんて十分満足な速度ヾ(≧∇≦)ゞ

Readも205MB/sと公称の200MB/sを超えてるし、なかなかに満足な一品。

若き王者が帰ってきたッ どこへ行っていたンだッ チャンピオンッッ

俺達は君を待っていたッ SanDisk Extreme SDCZ80-064G-X46の登場だ――――ッ!

2012年07月発売。公称速度はRead:190MB/以上 http://ascii.jp/elem/000/000/714/714210/

f:id:rideonshooting:20141010201649p:image:w360f:id:rideonshooting:20141010201646p:image:w360

爆速すぎワラタ。 かなりよさげだったIOデータの64GBが霞む・・・

最遅の4KBのランダムWriteですら約5MBくらい出ているとかUSBメモリってレベルじゃねえ!

某掲示板とかでMLCだとかSSDのチップが使われている?だとか言われてたけど

ほんとにHDDを超えたちょっとしたSSD並の速さでマジヤバイ・・・

512Kと4Kの逆転現象も起こってないのでTLCではなさそうでよかった!安心した

→(2014/12/10追記 コメント欄の指摘にしたがってTxBENCHで計測してみたところ、紹介ブログと同じくランダムの逆転現象を確認。残念ながらTLCのようでした。。。)

f:id:rideonshooting:20141210024209p:image:w360

ランダムのWriteにてサイズが小さいほうが速いという逆転現象が発生

  • パソコンに内臓のHDD:ST500DM002-1BD142(500GB)

f:id:rideonshooting:20141009203539p:image:w360

参考として、計測に使用しているHDDの速度も測った。

うん、ハヤイけど・・・SanDisk Extremeの爆速具合を見た後では霞むね・・・

  • 総評:USB3.0対応の大容量MLCタイプならOS用途もいけるっぽい?

最速のUSBメモリは読み込みも書き込みもHDDを超えた速度が出るっぽいうえに

小さいサイズのランダム書き込みも速いのでOSインストールするドライブとしても使える、かも!

→(2014/12/10追記 SDCZ80-064G-X46はTLCのようなので、OS使用としての耐久性には疑念が残ります。。。)

USB3.0対応大容量USBメモリの一部はHDDを超えてたのはびっくりなのね。

ヘッドを動かさなくていいNANDの特性の勝利っぽい!

他のは・・・書き込み速度的に考えると手持ちのほとんどのメディアTLCなのかな?

MLCだとUSB3.0ならシーケンシャル書き込み50MB/s〜100MB/sはいくっぽいからねぇ。

ていうか、ほとんどのメディアの理論値というか最速値はシーケンシャルでの読み込み最速値、なんやね。

最速値ばかり見てても、1個の大きいサイズのファイル読み書きは爆速でも

あまり細かいサイズのファイル群の操作は苦手っぽい、みたいなケースもあると。


使い方によるので、TLCでも動画とか漫画ビューワーな使い方でほとんど書き換えないなら問題ないけど、

OSとか、小さいファイルの書き込み頻度が高い用途に使う場合は書き込みが遅いのはつらいね・・・(−_−)


とりあえず今の自分の最新のおすすめ?エクストリームつよい(確信)

  

MLCSLCと公表されている高速のがあったら教えてくれたらうれしかったりするのです。

2014-10-04

Endeavor ST120のCPUをP8700→T9800に換装したよ!

前回、ST120のHDDをSDDに換装したんだけど。

http://d.hatena.ne.jp/rideonshooting/20140911/1410417770

せっかくだしCPUもなるだけ速いのに変更しちゃおうかな?ということで

CPU交換をがんばってみた!かなり怖かった。

とりあえず行ったことのメモ。

  • ST120で使用出来るCPUを確認

チップセットとソケットによって換装出来るCPUの種類も決まってくるので、最初にST120のスペックを確認。

http://faq.epsondirect.co.jp/faq/edc/app/servlet/relatedqa?QID=028267

元々入ってたCPUの子はP8700 (2.53GHz)だったけど、

一番速いT9900 (3.06GHz)かT9800 (2.93GHz)にすることに。

狙いを絞って検索してみても、新品を手に入れることは難しいっぽいので

ヤクオフをみたらT9900は11,000円もするのか・・・(° ꈊ °)

T9800は6,300円程度で買えるのに5千円の差はなぁ・・・ということでT9800に妥協しちゃった。

まぁそれでもP8700より早くはなるだろ、みたいな感じでさっとヤフオクで取引して手に入れた。

ではいよいよCPUを交換・・・する前に、

・グリス

・ヘラ

・グリス拭き用のクリーニングティッシュ

もついでに購入しといた。CPU交換時にはこれらが必要っぽいので^_^

では身を清めて、いよいよ換装しよう。

ST120の電源やUSBなどを全部引っこ抜いて、CPUクーラーやメモリのあるほうの蓋を開けよう。

蓋を開けたら、こんな光景がみえる。中古なわりに綺麗だった。

f:id:rideonshooting:20141005011639j:image:w360

CPUクーラーのネジを外すとその下にすごく金属の塊なヒートシンクが見える。

ヒートシンクを外すには、バネ?っぽい仕組みの金属を外す。

これ固くて外すのにめっちゃ指が痛くなったので気を付けよう。

外すといよいよCPUとご対面ー!2.53/3M/1066 とかわかりやすく仕様が書いている。

f:id:rideonshooting:20141005013636j:image:w360

実際には灰色のグリスが固まってたからクリーニングティッシュで綺麗に拭いた。ヒートシンクの裏も。

このCPUは紫(ピンク)のところにあるマイナスネジのパーツで固定されているので

ネジを回してロックを解除してからCPUを抜いて、

新しいCPUを付けて、またネジを回してロックする。

f:id:rideonshooting:20141005014136j:image:w360

両方を比較しやすいように並べてみると、P8700(上)は正方形っぽくてT9800(下)は横長だね。

んでロックしたらグリスをヘラで塗っていく。

CPUのキラキラした部分からはみ出しすぎてもいけないけど、ヒートシンクと設置するために

少なすぎてもいけなくて均等に・・・って難しいわ!みたいな(逆ギレ

とりあえず濡れたことにしてヒートシンクCPUクーラーをセットして終了!お疲れ様(やっつけ

PCに一通り機材をつけて電源ON。bios画面でT9800が認識されていることを確認。

f:id:rideonshooting:20141005020357j:image:w360

そのままOS起動ですんなり動いた!やったぜ

無事OSも起動できたので、温度を確認してみる。

CPU:48〜59℃。安定時は50℃なのでOKとする。

SSD:57℃。こんなものかなー?

温度も問題なさそうなのでWinScoreShareを実行。

f:id:rideonshooting:20141005030731p:image:w360

前回のCPUは6.3だったので・・・6.6で0.3も上がった!やったぜ!

ということでCPUの交換もひとまず終了。

熱くなりすぎそうならグリスをまた塗りなおすとか考えよう・・・

  • 今後の展望

あとはメモリも換装したいなぁ・・・

4GB入れて使用可能が3GBはちょっと寂しいすぎる。

ST120のチップセットであるGM45 Express Chipsetをみると

http://ark.intel.com/ja/products/35134/Intel-82GM45-Graphics-and-Memory-Controller-Hub

理論上はメモリ8GBまでサポートされてるらしいしなぁ・・・↓こんなのとか使えるのかな?


8GBに出来るのなら都合で32bit入れたけど64bit版のOS入れなおしたら・・・ぶつぶつ

(そこまで金かけるのならcore i5なりcore i7の新しいPC買った方がいいのでは・・・?)

(まあいいじゃん)

自分が使用したグリスとヘラとクリーニングティッシュ。