Intel SSD 750 400GBの性能出し
ブート周りでいろいろあったけど,ようやく750の性能出しができそう.
環境(HWiNFO x64 v5.00-2570読み)
M/B | ASRock Z87 Extreme 3 |
CPU | Intel Core i5-4670K @ 3400MHz |
Mem | Avexir Technologies DDR3-1600 CL9 4GB x4 |
PCIe1 | なし (PCIe 2.0 x1) |
PCIe2 | NVIDIA GeForce GTX 660 (PCIe 3.0 x8) |
SSD(PCIe3) | Intel SSD 750 400GB (PCIe 3.0 x4) |
Driver | Intel(R) Solid-State Drive P3700/P3600/P3500/750 Series Driver Version: 1.2.0.1002 |
OS | Microsoft Windows Server 2012 R2 Standard (x64) Build 9600 |
チップセットがZ87なので,PCIe 3.0 x16がSSDとグラフィックカードにx8ずつ割り振られてる.
グラフィックボードにPCIe 3.0をx16分食われるかと思ったら,BIOSが配慮してくれたみたい.
Crystal Disk Mark 5.0.0 Alpha2 x64 による測定
Intel SSD 750にシステムパーティションがある環境.たまたま,exFATなパーティションがあったので,ここを使ってパフォーマンスを測定した.
50MB負荷
4GB負荷
Intel SSD 750 400GBの公称値はシーケンシャルリードが2200MB/s,ライト900MB/s*1なので,大体期待通りの性能が出てる.ちょっとオーバーしてるけど.
このボードには1.25GBのDDR3-1600メモリ*2が乗ってるらしいので,キャッシュが効きそうな50MB負荷の時は,シーケンシャルリード4000MB/sぐらいに張り付いて欲しいもんだけど.もしかしたら,書き込みキャッシュが無効になってるから,テストデータがキャッシュメモリに乗らないのかな?
AS SSD Benchmark 1.7.4739.38088 による測定
上と同様の環境で測定.
Crystal Disk Markと大体同じ?シーケンシャルリードが2000MB/sで張り付いてて,本当にPCIe 3.0なのかちょっと悩んだ.あと,リードのAcc.timeが遅いかな.これは多分レイテンシのことを指してると思うので,20μsecぐらいの値が欲しい.Writeは出てる.
書き込みキャッシュについて
デバイスマネージャで書き込みキャッシュを有効にしようとしても受け付けてくれぬ.なぜだ.
Intel SSD Toolboxで確認すると,それっぽい項目がdisableになってる.
Intel SSD Data Centor Toolsでenableにしようとしても受け付けてくれない.
isdctのマニュアルを見ると,どうやらATAデバイス限定の設定らしい.*3
かといって,NVMe向けの代替オプションがあるわけでもない…困った.とりあえず諦め
**
故 WD5000AACS 儀
7年使ってたハードディスクさんが遂に壊れてしまった.Intel SSD 750を買ったばかりだというのに…勘弁してもらいたい
経緯
昔々,PT3ではなくPV4が出たばかりの頃に購入.アレは1時間番組で20~30GBぐらい食うから,新規増設しないと厳しかった.
録画用途・倉庫用途でほとんど24時間動いてるサーバーマシンにずっと組み込まれてたから,7年持ったのは優秀かな
使用時間を年に直すと6.07年だから,ちょっと少ない.電源投入回数を見ると,割りと24時間運用してない感じが…
そういえば,昔は録画時間が来たら動くようにしてたっけな(遠い目)
状況
7/13ごろ,サーバー機(Linux)のアクセスランプが灯ったままシステムがハング,再起動を試みる.
原因特定のため,各ストレージのSMARTを見るも異常はない.WD5000AACSにbadblocksを走らすと異常な数の不良セクタをはき出す.特定.
再起動をすると,HDD自体をOSが認識しない.もうだめだ.
とりあえず,メイン機(Windows)に入れて確かめてみると正常に認識する.何とかなりそうなのでバックアップを試みる.
すると,いくつかのファイルをコピーした段階で急にHDDがデタッチされる.
バックアップすべきファイルを180GBぐらいに絞っても,10GBも移動しないうちにデタッチされて,OSから見えなくなるので非常に困る.
その上,SATAでマザーボードにつなげてたのでいちいち再起動しなきゃいけない.とても面倒くさい.
何回か再起動してるうちに,UEFIでSATAデバイスの扱いをAHCIモードからIDEモードに切り替えればちょっとは変わるかも?
と根拠のない変更をしたところ,この状況は改善され,デタッチされる代わりに長いI/Oビジーが発生するようになった.(ビジー中はHDDがスピンし始める音が聞こえてきて心臓に悪い)
I/Oビジーなんて普段は冷や汗もんだけど,ここは渡りに船.なんとか楽してバックアップし終えた.
バックアップ出来たのでchkdskにかけるも,全く異常が見つからない.
WD謹製の診断ツールでようやく死亡判定が得られた.
今回みたいなディスクは壊れてないけど,正常に運用できなくなった障害は初めてだった.普通,HDDが壊れたらもうちょっと悲劇的な結末を迎えるもんだけど.
こいつは何が壊れたんだろなぁ,コントローラ基板が死んでるんかなぁ.
クリップボード上の画像を一時フォルダに保存する
スクリプト編
ブログやらTwitterやらに画像をアップロードするとき,クリップボードにある画像を直接貼り付けることは出来ない.
しょうがないので,Windows環境を前提として,クリップボードを一旦TEMPフォルダに保存してやるバッチファイルを作ってみた.
rem savetmpimage.bat del %TMP%\clipboard.png convert clipboard:image "%TMP%\clipboard.png" if %ERRORLEVEL% neq 0 ( echo %ERRORLEVEL% pause ) explorer /select,"%TMP%\clipboard.png"
- 一応,delで作成するファイルは消しておく(なくてもいい?)
- convertはImageMagickの一部.こいつは画像ファイル向けのバッチファイルを作るときにとても便利だけど,Windowsだとパスを通さなきゃいけないから面倒だった気がする.
- clipboard:imageはWindowsじゃないと動かなかった記憶がある.昔,FreeBSDの入った懐古マシンで似たことをしようとして頭を抱えた.今はどうなんだろ.
- convertのエラーは環境変数%ERRORLEVEL%を見れば分かる*1.エラーが起きたらpauseしてチェック
- exploerの/selectオプションでclipboard.pngが選択された状態でExplorerが開く*2エクスプローラのプレビューを有効にしておくと楽?
ショートカット編
バッチファイルを実行すると,ちゃんと動いてくれる.良かった.…が,タスクバーに入らない.
仕方ないので,cmd.exeにパッチファイルを起動させるショートカットを作成する.
- リンク先は「C:\Windows\System32\cmd.exe /c "[バッチファイルのパス]\savetmpimage.bat"」
- 作業フォルダーに注意.「C:\Windows\System32」とかだとconvertに失敗するので(ユーザー権限の問題?),「C:\」とか身近なパスにする
作ったショートカットをタスクバーに登録すればできあがり
(補足 タスクバーに登録されるのはショートカットのコピーのようで,元のショートカットのリンク先・作業フォルダ等々を弄っても,タスクバーのショートカットには反映されない)
おまけ
バッチファイルよりショートカットの方がファイルサイズが大きい
**
Z87系マザーのUEFIにNVMeドライバをロードした件
2015.07.09追記
UEFI2.3.1以上ならOptionROMのドライバをロードすればいい
テスト投稿です.
動機
先週ぐらいにHDD内蔵のPS3で遊んでいて,ロード時間の長さに辟易としていました.ロード中はアクセスランプが点灯していたので,ストレージをSSDに変えればだいぶ改善されそうと考えていました.
ちょうど,メインで使っていたPCのSSDも3年ほど稼働していて,空き容量も逼迫していました.こいつをPS3に流用して,メイン機に入れるSSDを新調すれば,まぁまぁ無駄なく部品を生かせるじゃないかなぁ,と思い,新規にSSDを購入することにしました.
時代はSATAからM.2に移行してきているようなので,新規にSATAは買いたくないなぁと思い,折角なのでPCIExpressなSSDにしてみました.
選択したのが,Intel 750 シリーズの400GB版(SSDPEDMW400G4R5),GB単価もそこまで高いわけではないので,奮発して買ってしまいました.2015年7月8日ぐらいに秋葉原のBUYMORE(元TWOTOP?)で49,980円でした.特価扱いでした.
ここまで,あまり調べずに750を買ってしまったのですが,実はメイン機のZ87マザーはNVMeブートに対応していませんでした.それまで使っていたSSDはPS3送りにしたかったので,メインのストレージは750に絞りつつ,何か対応策を考えることになりました.
メイン機の状況
マザーボード | ASRock Z87 Extreme3 |
BIOSバージョン | American Megatrends Inc. P2.50, 2014/07/08 |
UEFIバージョン | 2.3.1 |
旧ストレージ | Samsung SSD 830 |
OS | Microsoft Windows Server 2012 R2 Standard |
OS2(問題解決・ビルド用) | Arch Linux |
UEFI向けNVMeドライバーのビルド
対応策は幾つかありますが,この記事ではUEFIにNVMeデバイスをロードすることで解決します.
UEFIのバージョンは2.3.1なのでNVMeドライバを組み込むことが可能なはずです.UEFI向けのNVMeドライバは EDK II に組み込まれているようで,リポジトリをビルドすればドライバが作成されます.
私は Using EDK II with Native GCC · tianocore/tianocore.github.io Wiki · GitHub を参考にビルドしました.詰まった点をいくつか挙げます.
- 一部のスクリプトがPython2ベースで書かれているので,Python3系が入ってる場合にはシンボリックリンクの修正が必要かもしれません.
- edksetup.shの実行について,
bash$ . edksetup.sh BaseTools
とあります.間違っても./edksetup.sh BaseTools としてはいけません.buildが通らなくなります. - NVMeドライバはMdeModulePkg/MdeModulePkg.dscをターゲットにすればビルドされます.私はgcc 5.1.0でビルドしましたが,TOOL_CHAIN_TAGが対応してない(?)ようなので,GCC49を指定してビルドしました.アーキテクチャはX64としました.
-
ACTIVE_PLATFORM = MdeModulePkg/MdeModulePkg.dsc TOOL_CHAIN_TAG = GCC49 TARGET_ARCH = X64
ビルドするとNvmExpressDve.efiが作成されます.これをEFI ShellでloadすることでNVMeデバイスの認識を試みます.ドライバーをUSBメモリに移動しておきます.
ドライバーのロード
コンピュータを再起動してEFI Shellに入ります.UEFIのブートメニューにShellを起動するメニューがありますが,ファイルを見つけてくれませんでした.とりあえず,Arch LinuxセットアップディスクがEFI Shellの実行ファイルを持っていたので,こいつをUEFIブートしてEFI Shellを起動します.
mapと打って現在認識されているディスクとパーティションを確認します.(ASrock Z87 Extreme3はなんとNTFSを認識するようです.ext4はだめっぽいのに)NVMeデバイス上のパーティションは認識してくれません.
load fs0:\NvmExpressDve.efi のようにドライバをロードします.(fs0はコンピュータの構成によって変わるはずです)
このあと,map -r と打って,NVMeデバイスが認識されているか確認します.パーティションも自動で認識されるはずです.
私はWindowsをブートするために,bcdboot.exeでブートファイルを準備しておきました.diskpartコマンドでお膳立てする必要がありましたので,Windowsインストールディスクのウィザードの途中でNVMeドライバを読み込み,ディスクを認識させました.
無事,EFI Shellでパーティションが認識されたら,fs0:\EFI\Boot\bootx64.efi のようにブートローダーを起動することができます.diskpartでちゃんとドライブ文字やアクティブパーティション等を設定すれば,Windowsをちゃんと起動することが出来ます.(起動時のロゴがおかしいですが)
おわり
Linux環境を起動する場合,カーネルにNVMeドライバを組み込めるので,ブートローダさえ外に置いておけば,UEFIの操作なしに問題なくルートディレクトリとして使うことができます.
Windowsも同様にドライバを組み込めそうですが…よくわかってないです.
調査当初,UEFIのドライバ組み込みは出来ると思ってなかったので,アイデア出しの@baumkuchen_i氏に感謝します.
てすと
pero