2024年11月18日月曜日

SSD MSI S270 960GB における smartmontools から見える Total_LBAs_Written の単位はいったい何なのか?

 サーバ(Linux)のシステムとホームディレクトリのパーティション用に購入したSSD、MSI S270 960GB。5年保証付きなのに激安でした。

購入してから2806時間を経過したので、そろそろTBWが気になるお年頃です。

早速smartmontoolsでもって累計書き込み時間を見てみました。

smartctl -A の結果は

ID# ATTRIBUTE_NAME          FLAG     (略) RAW_VALUE
9 Power_On_Hours 0x0012 (略) 2806
(略) 241 Total_LBAs_Written 0x0012 (略) 467

467ってなんじゃい!!

RAW VALUEは生値ってくらいなのでメーカー毎にまちまちです。smartmontoolsを使う際の単位不明あるあるケースですね。

ということで単位が何なのか調べてみました。

といってもたいしてやることはありませんでした。

smartctl -l devstat で見てみると

Device Statistics (GP Log 0x04)
Page Offset Size Value Flags Description
0x01 0x010 4 2806 --- Power-on Hours (略) 0x01 0x018 6 981352770 --- Logical Sectors Written 0x01 0x028 6 4076567750 --- Logical Sectors Read

しっかりと論理セクタ書き込み回数が取得できましたので、論理セクタサイズは smartctl -a で取得すると512バイトということだったので、

981352770 * 512 ÷ 1024 ÷ 1024 ÷ 1024 = 467.9... となりました。

従いまして、MSI S270におけるTotal_LBAs_Writtenは、LBAsとはありますが実際には単純に「書き込み済み総ギガバイト数」でした。

いや、GiBだからギビバイトというべきでしょうか。

面白いですね。ストレージの容量はGB(1,000,000,000)単位なのに書き込みデータ量はGiB(1,073,741,824)単位なんですねえ。

だから何だといわれても困るのですが。。。営業と技術の部門間の考え方の乖離が垣間見える気がします。

個人的には20世紀から連綿と狂ったようにストレージへの書き込みアクセスを抑止するために最悪でもtmpfsを無理やり利用するなど散々苦労してきたことがここで目に見えて感無量です。

以上、ここまでお読みいただいてありがとうございました。

phpで文字列としての「\\n」以外の「\n」だけをLF文字(0x0A)に変換する方法

 キャリッジリターン(CR)の文字コード(0x0D)やラインフィード(LF)の文字コード(0x0A)から文字列としての"\r", "\n"に変換するのは特に問題はないと思います。

問題は逆方向で、\nという文字列をLFという文字に変換したいとき、str_replace('\\n',"\n",$text)みたいにやるとやっぱ恥ずかしいですよね。

\\nという文字列で、エスケープしたつもりのデータが埋もれているかもしれません。
\\nという文字列のつもりが0x5C(\),0x0A(LF)になってしまっては悲しいです。

そこで、とりあえず以下のようにするのはいかがでしょう。

  $text= preg_replace( '/(?<!\\\\)\\\\n/', "\n", $text );  

\マークだらけでうんざりしますね。phpで正規表現を扱う者への呪いです。

何がしたいのかというと、$text変数内に\\nという文字列でなく、\nという文字列があったらLF文字(0x0a)に変換するという祈りを込めています。

(?<!\\\\) というのは否定後読みといって\\\\というパターンがない場合にマッチします。phpでは\\\\というパターン\という「文字」にマッチします。呪いでしょう?

ついでに、\\\\nは\\\nと同じ意味を持ちます。まさに呪いです。

以上は前記事でデータベースをmysqlからsqlite3に移行した際に得たネタです。

何が恥ずかしいと言いますと、phpをたまに触って正規表現を使用するたびに\\\\のことをすっかり忘れているからです。

そこで、恥ずかしながら記録として残しておきたいと思います。とりあえずはデータベースのデータ内ではエスケープ文字としての\を特別扱いする必要はないので、この程度で申し訳ございません。

くだらない駄文をお読みいただいてありがとうございました。

mysqlからsqlite3に移行してみた際の恥ずかしい備忘録

 はるか昔(最古のデータの作成日時が1999年...)に使用していた関係で惰性で使い続けてきたmysqlでしたが、もう長いこと読み出しこそ頻繁にあるもののデータの更新はもはや月に数件というほど減少し、ちょっと大げさになっちゃったね、お役御免かな、と思っていました。

最近、CentOS7からUbuntu24に移行した際にPCから.net用のコネクタでリモート接続していたプログラムが動かなくなって、再ビルドしようとしたらvisual studio2022用では.net用のコネクタが使えなくて、見切りを付けました。

その後、最近時間ができたので、どうせならmysqlから一気にsqlite3に移行させてみることにしました。

その際の恥ずかしい作業録です。

・CREATE TABLEの UNIQUE KEY 句は KEY がいらない

KEYという文字列を削除するだけでした。

・CREATE TABLEでインデックスを作成するKEY句がない

前項とややこしいですが、mysqlのKEY句はテーブル作成時に同時にインデックスを張れます。
で、sqliteではCREATE TABLE時にはインデックスのカラムを指定できないので、テーブル作成後にCREATE INDEX文で作成する必要がありました。

・NOW()関数がない

CURRENT_TIMESTAMPに置き換えました。

そしたら・・・次の項目の問題がありました。

・sqlite3の日付関連はすべてUTC

問答無用でUTCなので潔いです。
そういえば十年以上前にある仕事で使ったときになんかあったような気が・・・。ちっとも覚えていませんでした。

既にあるデータをUTCにするのも手ですが、手抜きでCREATE TABLEでカラムのDEFAULT値に DATETIME( 'now', 'localtime' )とかやってみたら叱られました。

早速Google検索経由で先達にお伺いしたところ、仕様だアキラメロというページが最上位に出てくるのですが、さらにお伺いを立てると、かっこでくくってあげて、(DATETIME( 'now', 'localtime' ))とするとオッケーだとのありがたいお言葉で無事解決できました。ありがとうございます!

・mysqlではテキストデータではCRは\r,LFは\nと格納されるが、sqlite3ではもろそのままの文字コードで格納される。

なるほど~。って感じですね。

対策は、ちょっと長くなってしまったので、別の記事にしました。

概要としては、これまでに作成されたmysql形式に合わせてphp側(手始めに移行しているテーブルは自作のやっつけphpアプリで利用するためのテーブルなので)でキャリッジリターン(0x0a)とラインフィード(0x0d)をそれぞれ文字列としての\r, \nに相互に変換することにしました。

・sqlite3 には INSERT INTO ... SET 構文がない

これはむしろmysql方言ですね。なくても仕方がありません。

トリガーでのINSERT文でSET構文を使っていたのですが、むやみにUPSERTとか方言だらけの機能は使わないでおきたいので、標準的なSQLに書き換えるだけにしておきました。

・sqlite3にはVACUUMが必要

postgresqlを思い出すバキューム。カーがつくと途端に香しくなる不思議な言葉です。

でも、更新が月に数回なデータベースにVACUUMなんかいるわけがありません。どうしても必要なら手動でやればいいので、無視することにしました。

・複数クライアントからの同時更新ができない

最近はできるらしいのですが、特にテストをしてみようとは思いません。それが重要ならmysqlから移行する必要がありません。

万が一バッティングしたら「モウイチドヤレヨ」光線を発射して運用でカバーする予定です。

・RAND()関数がない

RANDOM()関数ならありました。

とりあえず、この程度でテスト運用を開始して、当分様子を見る予定です。

何か恥ずかしいことが起きたら、喜んで記事にしたいので起きてくれることを祈りつつ、こんな記事をお読みいただきまして、心からお詫びを申し上げる次第です。

2024年11月14日木曜日

dosparaから「Magnate-G MVW 第12世代Core/メモリ32GB搭載 2024 Intel Partner Awards受賞記念モデル」購入

 先月、またdosparaさんから1台買ってしまいました。特段ひいきにしてるわけでも何でもないのですが、なんだか縁ができちゃってるみたいです。

きっかけは家族用のPCが故障してしまったためでした。

利用目的はイラスト作成と原神とSNSだというのでその方向で探すとして、どうせ買うなら冗談でビカビカ光らせてやろうと思って探そうと思ったら、ちょうど何かの受賞キャンペーンをやっていることを知ったのでスペックを見てみました。

ざっくりとしたスペックは、

  • CPU: Core i5 12400
  • GPU: RTX4060
  • メモリ: DDR5 32GB
  • ストレージ:SSD 1TB
  • 電源: 650W 80PLUS BRONZE
  • ケース: ファン5台もついてる謎の新型

となっていて、オーバースペック気味なのですが苦情は出ないだろうということで選定しました。

まず評価した点は、まず、3月に買ったマシンよりメモリの規格や容量、SSDがアップグレードしていて、それでいて価格自体も2万円以上下がっていてとてもお得そうです。

さらに12400Fではなく12400な点も評価しました。予備のVGAアダプタを用意しておかなくてもいいのは好みです。

次に、気になった点です。
最大の関心事項はファンの数でした。
ケースファンだけで5台、電源にも1台あるだろうし、CPUファンが1台、GPUファンが1以上(購入前には数が不明でした)と、最低でも8ファンが稼働します。空に飛びそうなファン数を搭載したマシンなのでどれだけ騒音が出るのか戦々恐々というか興味津々というか、妙な期待がありました。
というのは、私が三月に買ったガレリアブランドのPC(RM5C-R46。ただし購入する時期によって同じ型番で中身がCPUもGPUもマザーもケースもまるで違うというすごく嫌なことをする会社なので型番だけでは何の意味もないのでご注意ください)はCPUファンが微妙な低周波のファンノイズをまき散らしてきわめて不愉快です。ぶっ壊してやろうかと思うことも再三なので、この機体はどうだろうという興味です。いざとなったらファンを取っ払ってやるつもりでした。

選定した時点ではOSが Windows11 Home のみで、OEM 版の Windows は Home から Pro へのアップグレードパスはなく、もしも Pro が必要になった場合は新規に購入しなおす必要があるという点です。私は XPのころから Home の運用経験がないので、何かあったらサポートするのに困るかな、という考えがよぎりましたが、それはそれで経験を積むチャンスですし、当面、 Pro である必要がある機能は家族には不要(RDPは惜しいけど)なので、無視することにしました。

次に気になった点はストレージの拡張性です。
バックアップ専用HDDとして現有のHDDを積み替えたいと考えていました。
ケースは外寸と片面が無意味にアクリル板になっているという仕様はわかったのですが、搭載可能ベイサイズと数が分かりませんでした。ケースの型番は明記されていたのですが、新型のケースらしく、肝心のその型番の仕様がどこにも掲載されていませんでした。

同じミニタワーといっても、同社のガレリアブランドで採用されているケースよりさらにサイズが小さくなっているので、追加するとしたら相当大変だろうなと思いましたが、オプションでHDDが1台追加できるカスタマイズメニューがあったので、まあ3.5インチベイが1つはありそうだし、なかったところで特に困るような使い方をする機体でもないので、どの馬の骨ともわからないSSD (3月に買ったマシンにはSOLIDIGM SSDPFKNU010TZが搭載されていました) だけは変更したいとのことだったので変更しました。

なお、ビカビカ光らせてやる装備はオプションだったので、遺憾ながら搭載を拒否されました。慙愧の念に堪えません。

さて、到着して真っ先に気になっていたノイズですが、これが全く気になりません。最も負荷が高い状態と思われるゲームを家族がプレイ中であっても全く騒音を発せず、これは大変うれしい意味で期待を裏切ってくれました。

次に悪い意味で期待通りだったのはストレージの拡張性です。具体的にはHDDを一台、こちらで追加しようとしたのですが、見た感じではどこにどうやって組み付けるやらさっぱりわかりません。
サポートに取付方法を問い合わせたら「現在マニュアルの準備中です」ときた。
「HDDの取付方法」を聞いているのに「ケースのマニュアルの準備状況」をこたえるサポート。
素晴らしい。こんなサポートがついててスゲー頼もしいです。
「マニュアルが出来上がるまでお客様にご案内するつもりはございません」なら回答になってたのに、準備状況を聞かされてもしょうがないので、今度は御社ではどうやって組み付けるのかしらと聞いたら組付け方を教えてくれました。

このケースではついに両側面だけでなく底面からもねじをつけたり外したりする必要がありました。
かなり省スペースに頑張った結果でほとほと頭が下がります。
複数台の内蔵ストレージなんて、いまどきのゲーマーにもオフィスユーザにも不要ですし、仮に増設するとしてもマザーボードにSSDスロットはたいていは2つはついている昨今です。
それにもかかわらず、さらにそこへ何とか3.5インチベイをねじ込んだ気合は評価できると思います。しかも2.5インチと共用ではあるものの3.5インチベイが2台分あるのは、SOHOというかスモールオフィスでのRAID1環境をぎりぎり実現できます。

ただし、3.5インチHDDを2台搭載した場合の排熱は・・・やはり厳しそうです。結局、これではだめです。二兎を追わず横着せずにちゃんとケースを選ぶべきだと思います。

余談ですが、FujitsuのPRIMERGYシリーズのミニタワーケースの完成度がどれだけ優秀なのかがよくわかるとか言ったらさすがに怒られちゃいますね。ごめんなさい。

あとは、搭載されていたマザーボードは ASUS の PRIME B760M-A でした。微妙によくなっています。メモリチップメーカはSamsung。SSDはカスタマイズしてWDを指定したためデフォルトの採用機材は不明です。

この機体に限ったわけでもありませんし、言うまでもないかもしれませんが、マザーがmATXなので、当然ながらGPUを搭載していながら同時にPCI Expressで拡張ボードを刺そうというのは、なかなか刺激的なチャレンジになるでしょう。熱的に。

個人的に一番驚いたのは、このマシンではなく Windows11 Home でも WBADMIN.EXEが使用できたこと(!!)でした。
これさえあればタスクスケジューラで手軽にバックアップができて、しかも何かがあってもOSの機能だけで復旧は容易なので大変助かります。
でも、これ、HomeユーザだけでなくProユーザでも皆さんが存在を知らないおかげでWindows8で消えかけたもののまだ生き残っていますが、反トラスト法がらみで米連邦取引委員会や司法省の機嫌次第ではいつ消えるか・・・

余談に流れてしまいましたが、表題のマシンについてのインプレッションというか感想は、「確かに安い」と申せましょう。横文字だとコストパフォーマンスが高いとか、まあ、そんな具合です。

とっ散らかってしまいましたが、最後までお読みいただきありがとうございました。

2024年11月7日木曜日

Philips製27インチWQHD,VAパネルのモニタ 27M2N3500NL/11 購入

 表題の27M2N3500NL/11ですが、PhilipsのEVNIAというシリーズだそうです。27インチでWQHDでVAパネルです。なぜかこの機種だけ国内ではアマゾンからでしか買えませんでした。

以前Philipsのモニタで満足を喫したので、この機種もスペックもよく価格も激安なので早速購入させてもらうことにしました。

そこで2024/10/22に-8%引きで\23,800円でアマゾンで買いました。いまは割引はありませんが\23,800円で売ってます。アマゾンあるあるですね。大人の事情ってやつですか。公取仕事してください。

届いたのは2024/10/25です。ほかの荷物と一緒に配達してもらうために調整してお急ぎ便\512円(当日じゃないのに当日お急ぎ便と同じ価格)を支払ってまで2024/10/26に届けてもらえるようにお願いしたにもかかわらず、前日に「やっぱ明日届けるわ」みたいたことを急に言い出してモニタだけ先に運送業者(ヤマト運輸)さんに持ってこさせやがってくださいました。

注文後に家族からおすそ分けされたCovid-19で高熱を発してくたばっていたのでほんとに迷惑でした。

小売業者さんは置いといて本題です。

まず、私が使用していたのは24インチのPLS(IPSの亜種)パネルの製品でした(Philips 246E)。これで信用して購入しました。接続にはDisplayPort(VGAはRTX4060)を用いました。

この製品はVAパネルを採用しているということで、IPSパネルと比べて視野角や発色、応答性能について劣るのではないかという懸念があると思います。そこら辺を留意してみていきたいと思います。

まずはドット抜け検査を兼ねて画面を真っ白/真っ黒にして目視で検査してみました(ドット抜けはこの個体にはありませんでした)。

気になるのは27インチになって画面が広くなるのでパネルの性質として端っこが暗く見えたり色が違って見えたらいやだな、という点ですが、全くの杞憂でした。発色も視認性も問題を感じません。

ここで、HDR10対応ということなのでHDRをOSとモニタの双方でenableにしてみました。HDRの設定は片方だけONにしたりOFFにしたりすると画面が白っぽくなってしまったり、逆にギラギラしたりと割と面倒くさいので要注意です。

さて、テキストの編集での見え方のテストを行いました。

主に使用している秀丸とVisual Studio,そしてnotepadをつかってみました。さらにTeraTerm ProとPuttyによる操作もテキストによる編集に近いと思いますが、どれもこれも小さい文字が見えなくなることもなく、つぶれることもありませんでした。くっきり見えます。視認性は良好です。

実は画素数が多くなるのに27インチでは文字が小さくて前期高齢者な私には老眼で見えないのではないかしら、125%拡大待ったなし?、と危惧していました。しかし、確かに文字は小さくなりましたが発色の良さとコントラストの高さでメリハリがつき、拡大率100%のまま何の支障もなく、むしろ以前より見やすくなってしまったのは想定外でした。

次にざっと動画やゲームなどで試してみました。27インチになって画面が広くなるので端っこが暗く見えたり色が違って見えたらいやだなと思っていましたが全くの杞憂でした。

動画やゲームでのテストでは、スペック表にある応答速度に異議はありませんでした。残像をまるで感じません。数値的に見るとMRTG0.5msは立派ですし、より技術的難易度が高いGtGでも1msを達成しているのは評価できるポイントだと思います。実際にも、この数値に違和感は感じませんでした。

リフレッシュレートについても180Hzは伊達じゃないです。ちゃんとぬるぬるです。ただ、私の環境ではこの性能についてはよほど軽いゲームでない限り現有のRTX4060風情では90Hzや120Hzで打ち止めで生かしきれないので、評価については降参です。ごめんなさい。

この製品に採用されているVAパネルは壁紙を見るだけでも、グっとしまった黒はかなりいい感じだし、青は青いし赤は赤いように見えます。懸念したギラギラ感もなく、かなり頑張ってると思います。

HDRを有効化することについては、さらにVAパネルの面目躍如といったところだと思います。もともと高いコントラスト比や黒のきれいさを発揮するVAパネルならではの特徴をさらに強調するような働きを齎すと思います。

HDRをON/OFFと利用シーンによって切り替えるのは、実際問題としてモニタとOSの設定と使用アプリの三者をそれぞれ切り替える必要があるので、非現実的だと思います。結局はONかOFFか、一度設定したらそのままにしておくことになるんだと思います。

私個人は普段使いでもHDRをONにしておいてもいいと思います。テキストを読むのに問題ないし、たまに猫の写真を見たり猫の動画を見たり猫のゲームをしたりする際にもきれいな猫映像を見られるので、この製品の場合はONのままで差し支えないんじゃないかと思います。

細かい点ではACアダプタがなく、モニタに電源モジュールが内蔵されているのも便利です。ACアダプタってホントに邪魔ですので助かります。

なんだか長くなってしまいましたが、価格に比して満足感は相当高い製品でした。

いろいろ褒めたい点もあるのですが、あんまり持ち上げても何なので、とりあえずこの程度でご容赦願います。

以上、ここまでお読みいただいてありがとうございました。