最大転送速度 SATA 300 MB/s
最大Read 160MB
最大write 115 MB/s
投稿者: nakahira
WDC WD5003ABYX-18WERA0 500GB
Raspberry Pi B+
Raspberry Pi B+ について。初代モデルBを大幅リニューアルしたデザインで3B+までの基盤レイアウトのベースとなった機種。
CPU情報
processor : 0
model name : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 697.95
Features : half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7
CPUは1コア1スレッドである様子。ARMv6シリーズのCPUでラズパイの主流である3Bや4Bで使われているARMv7などと互換性がないためソフトウェアの利用時においてやや面倒な場合がある。というか対応していない可能性も高い。
HAPROXYに関する雑記
- enable statsについて
- haproxyのstatsを表示するにはコンフィグの各セクションで
enable stats
を追記すればいいらしいがmode httpの場合だけ見ることができる様子。nginxとかを運用しているケースを想定しているのかもしれない。mode tcpの場合はその設定は無視される。config : ‘stats’ statement ignored for proxy ‘mysql-db’ as it requires HTTP mode.
- HAProxy WIについて
- haproxyをGUIで管理するためのツールでHAProxy-WIというものがあるが、ざっとインストールして使ってみた所基本的にはmode httpのサーバーを管理するためのツールであるような印象。nginxに特化しているかどうかわからないがhaproxyでnginxをロードバランスしようと考えている人には丁度いいと思う。それ以外の人には使えるかどうかわからない。私はmysqlのロードバランサーの設定をGUIでできないかと思って使ってみたが細かな設定はできなさそうに感じた。
Lenovo s145 のメモリ増設
先日注文したLenovo s145が配達されたので早速初期設定とメモリ増設。製品型番は81UT00HRJPで一番安いモデルで約3万4千也。
裏面のネジを全て外すとメモリ交換ができるようになる。ネジの仕様は普通の精密機器用プラスドライバーで外せるタイプのネジで特殊ネジではなかった。製品の仕様では空きメモリスロットが0と記載されていて心配だったがちゃんと増設用のメモリスロットは存在していた。画像の中央辺りにある黒い長方形のスペースがメモリを増設するためのスロットで黒いのはカバーとなっていた。このモデルは標準で4GBのメモリが搭載されていることになっているが、おそらく中央右辺りにあるマザーボードに直付けされているチップが4GB容量のメモリではないかと思われる。
SSDは中央左辺りにあるm.2スロットに装着されていておそらく2240タイプのnvme ssdである様子。さらにその下の空間のスペースにはSATA端子がありSATA接続のSSDなどを増設することができそうに見えた。わりと薄型のノートだけれど内部のスペースは余裕がありそうなレイアウトになっている。
メモリの増設が終わればカバーをしてネジ止めして作業終わり。で、電源を入れてシステム詳細からメモリを認識されていることを確認した。大まかなスペックはAMD Athlon™ 300U(2コア4スレッド)、メモリ12GB、NVME SSD 128GB 、Windows10というような仕様のマシンとなって、動作は軽快な印象で値段から考えると全く不満はない。筐体の質感もアルミ(?)かなんかの金属っぽいものが使われていてチープさは感じなかった。液晶も割と見やすいかなと個人的には思った。普段ポンコツ液晶を使っているからだけれども。
海外通販サイトPimoroniで注文した
ラズベリーパイなど電子機器を販売しているイギリスの通販サイトpimoroniで注文した商品が届いた。注文した時に発送方法を選ぶことができ、一番安いのは追跡無しのRoyalMailというやつでその次がそれに追跡が付加されたもの、そして送料だけで4000円近くかかる謎のサービスが手厚そうな配送手段から選択する。料金は一番安いRoyalMailで900円ぐらい、追跡がつくと約300円ほど高くなって1200円ほどとなる。到着まで5~10営業日で届くと書いてあったので送料はケチって一番安いやつでいいかと思って注文することにした。長くても2週間ほどで届くだろうとのんびり配達されるのを待つことにした。
1ヶ月待ちましたよ。
結論から言うと商品は無事届いた。精密機器だったけど梱包もまともだったので壊れることはなく問題なく動いた。正直郵便事故かなんかで紛失して届かないと諦めてさえいた。もしこれから海外通販する人がこの文章を読んでいたらできるかぎり追跡有りで注文することを薦める。送料が千円ぐらい違ってくるなら話は別だが300円程度で追跡ができるなら安いもの。
Incorrect key file for table ‘./my/table.MYI’; try to repair it
MySQLのテーブルが壊れた。Incorrect keyとかCorruptとかエラーメッセージが出たのでrepairテーブルとかmyisamchkとか色々修復するべく試したがどうやっても直ってくれない。直ることは直るがデータをinsertしようとしたらまたエラーが出てその繰り返し。インデックスのキー位置と実際にテーブルに存在しているレコード数が一致していないのが原因の模様。実際にselect count(*) とかやって見た件数と修復時に表示される件数との間に差が生じているのを確認した。最後の手段として、
- show create table targetTable でテーブル定義をメモ
- 対象のテーブルデータを select * into outfile ‘/tmp/data.txt’ from targetTable として出力する。
- drop table targetTable としてテーブル削除
- create table targetTable (略 としてテーブルを再作成
- load data infile ‘/tmp/data.txt’ into table targetTable としてデータを流し込む
という手順でやってみて、流石にこれでもエラーが出るようならお手上げだと思っていたがなんとか復旧した。
Raspberry Pi 4 にメモリ8GBモデルが登場
海外のラズベリーパイなどを売っている通販サイトにラズパイ4のメモリ8GBモデルが登場&販売開始した模様。
https://shop.pimoroni.com/products/raspberry-pi-4?variant=31856486416467
スペック的には2GBと4GBモデルと変わりはなく単純にメモリが強化された様子。価格は73.5ユーロ、日本円で9700円ほどとなる。4GBモデルとの価格差は約2600円、2GBモデルとは約5200円もの価格差になる。というか2GBモデル2台分の価格となっている。
個人的にはラズパイでメモリ8GBの必要性は謎。価格差も疑問でコストと性能比で考えたら1万円弱という価格は普通かやや高いかなとも思う。省スペース性と省電力性という他の製品にはない長所を持ってはいるけれども。私もラズパイ4を購入検討していて2GBモデルで十分かな?サーバー用途としても4GBも使わないよなぁ・・・と思っていたところで8GBモデルが登場して困惑。搭載されているメモリはLPDDR4という低電力版のDDR4らしいので特にサーバー向けのメモリというわけではなく、これがもしECCメモリ搭載だったら1万円でも喜んで買うんだけれど。それにしても誰向けの製品なんだろうね。windows10でも動かそうというのなら8GBは必要かもしれんけど。
古いMySQLをインストールした時にlibncursesw.so.5がないと怒られた
MySQL5.087をインストールしてデーモン起動してログインしようとしたら
# ./bin/mysql -u mysql
./bin/mysql: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory
という風に出てログインできない。libncursesw.so.5が見つからないというわけでlibncursesをaptでインストールするも
# apt install libncurses5
パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
libncurses5 はすでに最新バージョン (6.1+20181013-2+deb10u2) です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
libncurses6がインストールされている。だがlibncurses5がこのアプリは必要らしいのでlibncursesをダウングレードできないものか調べてみたがなんか面倒くさそうなためlibncurses6にシンボリックリンクを張ってlibncurses5にみせかけることにする。(そんなことしていいのか?)
libncurses6がインストールしている場所はというと”/lib/x86_64-linux-gnu/”というわけのわからんディレクトリにインストールされているみたいのなので
ln -s /lib/x86_64-linux-gnu/libncursesw.so.6 /lib/x86_64-linux-gnu/libncursesw.so.5
でリンクを張る。どういうわけかこれでMySQLにログインできるようになった。
mroongaよりsennaの方が検索速度が速い場合がある
DBのレコード件数1800~2000万件程度のテーブルで全文検索した場合に、mroongaを使って検索した時にやたら時間がかかった。大体3秒~10秒ほどselect count(*)を実行するのにかかっていて、レコード件数多いから仕方ないのかな?と思っていたらsennaで運用していたDBの方は1秒もかからずに結果が返ってくる。
マシンのスペックでいうと
mroongaDB CPU:XEON-3430 Storage:NVME SSD READ 3.5GB/s
sennaDB CPU:XEON-3430 Storage:SATA SSD READ 450MB/s
といった具合でmroongaで運用しているマシンの方が読み書き性能は圧倒的に上。DBの検索スピードに影響するのはCPUよりもストレージの読み込み速度だと思うのでこの結果はちょっと悩ましい。
explainで調べてみたところ、
explain select count(*) from table where match(column) against(‘D+ 1s103 ‘ IN BOOLEAN MODE);
+—-+————-+——-+——+—————+——+———+——+——+——————————+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+—-+————-+——-+——+—————+——+———+——+——+——————————+
| 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Select tables optimized away |
+—-+————-+——-+——+—————+——+———+——+——+——————————+
1 row in set (2.32 sec)
これがmroongaDBで検索した結果。次にsennaDBで検索すると
explain select count(*) from table_name where match(column) against(‘D+1s103′ IN BOOLEAN MODE);
+—-+————-+——————-+———-+—————+———-+———+——+——+————-+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+—-+————-+——————-+———-+—————+———-+———+——+——+————-+
| 1 | SIMPLE | table_name | fulltext | column | column | 0 | | 1 | Using where |
+—-+————-+——————-+———-+—————+———-+———+——+——+————-+
1 row in set (0.00 sec)
という違いがある。mroongaの方は「
Select tables optimized away 」とあるので一応インデックスは働いているようだが、検索の遅さには納得できない。検索に使ったキーワードは
「1s103 」という特に変わっているワードでもないがやたら時間がかかった。他の「alaedad」とか「akaweea」とかは結果がないならないで高速に検索を終えるのに「adk323」とか「132334323」みたいな数字が多い検索だとやたら時間がかかる。mroongaは数字の検索が苦手とかそういうことがあるんだろうか。sennaだと別にそういうようなことはなく割と速く0.1秒以内に結果を返してくれる。
sennaは検索をしている間はテーブルロックがかかってしまうという弱点があり、mroongaはそれがないらしい。あとsennaは割とメモリを喰うんでテーブルロックの件もあってmysqlデーモンが落ちることが結構あるがmroongaは私の経験上では不思議とメモリ不足で落ちたことがほとんどない。検索の速度でいうと後継だからmroongaが速いのだろうと勝手に思っていたが大差ないのかもしれない。私の参照オンリーな使い方だとむしろsennaの方が速い。デーモン落ちるのは怖いがcronで見張って自動復帰設定とかやりようはあるので今更ながらsennaに戻そうかと思案中。