宅内サーバのWEBアプリと高速化のキャッシュ方法を検討!

自宅サーバに適用する構成について、最近のWebアプリ周りのサーバ側事情を調査していました。
まず、このブログを宅内で動作させるには WordPress を動作させることが必要です。で、その構成をどうするか検討することにします。以下のようなことを考えないといけないですね。

OS:Linux で動作させますが、どのディストロビューション
(CentOS とか Fedora とか ubuntuとか)にするか?
Web:NGINX とか apache とか。
PHP:PHP7 とか HHVM とか。またはその動作方法php_fpm とか、mod_php とか。
データベース:MariaDB とか、MySQL とか。

また以下の点については、趣味のブログなので作りながら考えていくことにします。

冗長性:これは当面、1台動作で考えないことにします。落ちたら、なるはやで復旧。
運用監視:外部監視をどうするか?
バックアップ:どっかにデータをバックアップしないとです。
保守:マシンが壊れた時、または停電時など。

めんど臭いですね!(笑)ま、当初からわかっていたことですが改めて書くと考えることが多いです。

で、改めて最新の動向も探りながら、ざっくり検討することにしました。動作させるマシンはもうすでに決定済みで、前回までに決めた Ryzen 5 Pro 3400GE が動作するマシンです。Kernel を最新にしたいということもあり、Fedora かubuntuあたりにしようかと思っています。

肝心の Webサーバは、NGINX + HHVM という構成が有力でしたがどうやら最近は事情が変わっているようです。2013年〜2014年に検討した時、HHVM の高速性にはびっくりしたのが印象的でした。24時間アクセス(vmで2台構成)のベンチマーク耐久テストでも落ちなかったのを覚えています。24時間で、400万PVを達成しました。1秒間に、約46回の処理をした計算になります。ま、その直後は vmホストのSSD がぶっ壊れましたが(笑)しかし、残念なことにHHVM は、今やPHPコードを動作させることができなくなったようです。

RIP WordPress and HHVM – We’ve Had a Good Run

ちょっとショックだったので、オフィシャルサイトのドキュメントも確認しておきました。HHVM v3.30 がPHPサポートの最終とのこと! 2018/12/17 だって。もう1年以上前か。

Ending PHP Support, and The Future Of Hack

改めて最新の動向を見てみると、どうやら LiteSpeed というWEBサーバのほうが良さそうです。2015年のネタなので現在は状況が変わっているかもしれません。

PHP7 vs HHVM Benchmark Series 1: Hello World

そして、現在は HHVM よりもPHP7 が良い結果が出ているそうなので、LiteSpeed のオープンソース版である OpenLiteSpeed を使うことにしました。とりあえず、以下のような構成でいこうかと。openlitespeed-logo-1200x300.png

OS:Linux(Fedora 31 server)
Web:OpenLiteSpeed 1.6.x
PHP:PHP7.x
データベース:MariaDB10.x
WordPress代替:ClassicPress ★代替えの必要があるかちょっと使ってみる
キャッシュ:LiteSpeed Cache WordPress

LiteSpeed のWEBサーバと、WordPress のPlugin であるキャッシュ(LiteSpeed Cache WordPress)は専用設計のようです。そして、このキャッシュはWordPress代替のClassicPressでも動作するようです。

LiteSpeed Cache for WordPress
::
LiteSpeed Cache Works With ClassicPress

LSCache(青いグラフ)がそれみたいですが、速そうですね。

screenshot-1.png

また、OpenLiteSpeed と LiteSpeed との違いは以下に機能比較があります。

OpenLiteSpeed or LiteSpeed Enterprise?
https://www.litespeedtech.com/products/litespeed-web-server/editions

WordPress代替のClassicPress は一度、ローカルに入れて検討してみないとですね。

Get ClassicPress
https://www.classicpress.net/get-classicpress/

ということで、今後の課題が見えてきました。ちょっと目を話すとどんどん状況が変わるからこの業界は面白いんですよね!

CDNを使わずWEBアクセスのロードタイムが1秒を切った!

ちょっと前に、このブログのロードタイム、1秒を切りたいと話していました。

スマホからの表示速度を1秒以下にしたい!

で、enひかりの固定IP配下に作ったテスト環境でこのブログと同等のデータを引っ越して速度向上を検討していました。まず、現在の結果から出してみたいと思います。モバイルサイトの速度を比較しましょう

3.8秒から、2.2秒までアップしました。スマホ表示にはまったく手をいれていませんが、1.6秒縮まりましたね!

また、PCでのアクセスは別サイトで計測しました。まずは現状の確認。

WebPageTest Test Result Tokyo junkhack gpl jp 03 16 20 02 26 41

「LoadTime」の部分が全体を表示するまでにかかっている時間です。では、検証用に立ち上げているサイトでも同様に見ていきます。

WebPageTest Test Result Tokyo hoge gpl jp 03 16 20 03 10 36

なんと、1秒を切っています!4.5秒からなんと0.98秒までアップしました。
CDN を使わなくてもここまでアップできるものなんですね。まだチューニングする部分はたくさんありますが、今年の夏引っ越しに向けて、あれこれ研究していきたいと思います。

今回速度の向上に関して、確認したことといえば以下となります。

・WordPress のテーマは軽いのがいい → Susty WP に変えた
・CDNは使っていないが、Jetpack のCDN機能を使いました → これはあまりよろしくないかも(要研究)
・表示を10から3に変えた → もっと見たい人はほぼいないし、見たければ検索なりしてくれるから
・回線をenひかりの IP固定 v6プラス の自宅サーバにしてみた → WordPress.com はデータセンターがUSにあります。v6網のバイパスはかなり有効!

CDN は、DNS の ns を切り替えないといけなしそれなりに弊害もあるのでたぶんやらないと思います。使わなくてもここまでできるなら、あとは微調整でもっと速くなるかもしれません。Jetpack のCDN機能を使った影響なのか、それ以外が原因なのかわかりませんが、以下のように空白の時間があります。

Latest Performance Report for http hoge gpl jp GTmetrix

ということで、ロードタイムが1秒を切ったという話でした。まだまだ研究する部分がたくさんありますので、継続してあれこれやってみたいと思います。

 

 

 

 

3.3万で買える4コア8スレッドのRyzen5マシンをポチった!

ついこの間、検討していた3.3万で買える4コア8スレッドのRyzen5マシンをポチりましたので、ご報告(ジャンクじゃないですよ)

3.3万で買えるマシン!サーバ用候補のThinkCentre M75q-1 Tiny:価格.com限定モデル

いやー、この価格は激安を超えて破格なんじゃないかと思います。最初のネタ元はYouTubeを見ていて岡ちゃんねるっていう、自分と似た異様な匂いがするチャンネルがあるんですが、この方が紹介していたのがきっかけです。ちょっと改めて値段とスペックを見ていきましょう。

まず、外観から。こんな感じの弁当箱サイズの筐体です。

ThinkCentre M75q 1 Tiny コンパクトなボディでパワフル性能 レノボジャパン

なかなかシンプルで赤のLenovoのロゴもかっこいいんじゃないでしょうか。IBMって入ってたら最高なんですがね。

ThinkCentre M75q 1 Tiny コンパクトなボディでパワフル性能 レノボジャパン

1. 電源ボタン
2. マイク入力
3. ヘッドホン出力
4. USB 3.1 Gen1
5. USB 3.1 Gen1 (Powered USB)

ThinkCentre M75q 1 Tiny コンパクトなボディでパワフル性能 レノボジャパン

6. セキュリティ キーホール
7. ACアダプター電源ジャック
8. DisplayPort
9. USB 3.1 Gen1
10. HDMI
11. USB2.0 (Powered USB)
12. USB2.0
13. イーサネット・コネクター(RJ-45)
14. アンテナ端子

というようなインターフェイスが付いています。ちなみに、8と10 のモニター出力がどういう構成でつくのかあまりよくわかっていません。自分が選んだ構成は以下のようになります。

ThinkCentre M75q-1 構成内容

AMD Ryzen 5 Pro 3400GE (3.30GHz, 2MB)
Windows 10 Home 64bit
Windows 10 Home 64bit – 日本語版/英語版選択可能
Tiny
8GB PC4-21300 SODIMM
内蔵グラフィックス
128GB M.2 2242 NVMe
内蔵ギガビットイーサネット
HDMIポート
65W ACアダプター
内部モノラルスピーカー (1.5W)
日本語
1 Year On-site

小計(税込):¥33,220
配送料金:¥0
配送方法:標準配送
合計:¥33,220

NVMe の SSD が付いてくるのは嬉しいです。容量は128GB で、WEB+DBサーバ利用には十分すぎます。メモリも8GB あれば当分は十分ですね。Windows10 はどうでもいいんですが、まぁ、最初の動作確認ですかね。32インチモニタの裏側につけて一体型PCっていうのも5万台で作れます。
WiFi は、4000円くらいしたので外しました。サーバ機は有線ギガビットでしかつなぎませんので。

 ! このスペックをクラウドのインスタンスで表現するなら以下な感じ。

・東京リージョン
・vCPU x 8、メモリ 8 GB
・128GB SSD

すばらしい!じゃありませんか!(笑)月額だと、この値段は2万くらい(想像)はします。

 

これと同等のCPUは、Ryzen 5 3400G ですがこの値段は2020/03/15時点で約2万します。

価格 com AMD Ryzen 5 3400G BOX 価格比較

価格推移は以下。

価格 com AMD Ryzen 5 3400G BOX 価格推移グラフ

3.3万のうち、2万はCPUで残り、1.3万は 128GB の NVMeのSSD がアリエク価格で2,734円。あと1万はマザーや電源やファン、OSといったところでしょうか。そうやって計算すると、ギリギリ採算は取れるのでしょうかね。いずれにしてもこの小さな筐体ではDIYでは作れないのです。

で、さらに購入の決め手は分割払い金利0%!

JACCS ショッピングクレジット 個人向け分割払い レノボジャパンジャンクハックの研究予算は月額2万以内と決めているので、迷っていまいましたがこれはもう、買うしかないですね。

ということで、到着するまでにネットワーク周りの下準備をしておかないとですね。今年の9月まではテスト期間ということになりそうです。夏場を超えますね。さて、どうなることやら。

・・・続く

ヤフオクでゲットした業務用ルータFITELnet F60で「v6プラス」固定IPを設定例のまま入れた!

うーん! FITELnet F60でファームウェアを最新にあげて、「v6プラス」固定IPの設定例に従ったんだけども、うまくいきませんね。とりあえず、その記録でもつけておきます。

まず、設定ネタ元は

設定例
古河電工 FILTELnet-Fシリーズ設定例

::

JPNE社v6プラス「固定IPサービス」を利用する
<LAN側ではIPv4のみ利用する場合>
 1. NAPTで利用する
 2. 1対1NATで利用する
<LAN側でIPv4とIPv6をデュアルスタックで利用する場合>
 1. NAPTで利用する
 2. 1対1NATで利用する

4種類のやりかたで、NAPT(※1)と、1対1のNATが IPv4、またはデュアルスタックのLAN運用の例が載っています。

※1 (NAPT - @IT ネットワーク用語事典 より引用)
NAPTとは、1つのグローバルIPアドレスを複数の端末で共有するためのネットワークアドレス変換技術の1つ。 TCP/UDPのポート番号も含めて変換することで、複数の端末を同時接続させることができる。 LinuxにおけるNAPTの実装をIPマスカレードと呼ぶ。

まず、NAPT の設定をいれてリブートするとシステムが完全にブートせず、工場出荷状態に初期化しないと起動できない事態になりますた!

状況としては、1対1のNATの設定例だと起動はするんですが、WAN側のIPv4が設定されないんです。(IP address EWAN1 is not configured)
以下、何が正しい状態なのか、まだ不明なんですが、該当する部分の情報を見てみました。これは、一番単純な、IPv4 だけをLAN側で使い、1対1のNATをしたときの記録です。一番、簡単なのから見ていかないと混乱しそうなので。

WAN側のIPv4情報です。一部、xxxで伏字にしておきます。コマンド入力部分は赤字にしておきます。

FITELnet>show interface ewan 1

EWAN1 is up
Hardware is Fastethernet, address is 0080.xxxx.xxxx
IP address EWAN1 is not configured ★この部分は、WAN側のIPv4固定アドレスが表示されないのかな?
Encapsulation ARPA
ARP type: ARPA, ARP Timeout 00:20:00
Last clearing of "show interface" packet counters never
Statistics:
3212 packets input
535475 bytes input, 3 errors
2271 unicasts, 0 broadcasts, 938 multicasts
0 discards, 0 unknown protocol
5417 packets output
774071 bytes output, 0 errors
5413 unicasts, 0 broadcasts, 4 multicasts
0 discards

次、 IPv6 は取得できているか確認してみます。

FITELnet>show ipv6 interface ewan 

EWAN1 is up
IPv6 is enabled, link-local address is fe80::xxx:xxxx:xxxx:7761
Global unicast address(es):
240b:10:xxxx:2600:xx:xxxx:xxxx:0, subnet is 240b:10:8401:2600::/64
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^★IPv6グローバルアドレス
Joined group address(es): ★次の3行は自動設定されたマルチキャストグループアドレス
ff02::1:ff00:0
ff02::1
ff02::1:ff43:7761
MTU is 1500 bytes
ICMP error messages limited to 100 per second
ND reachable time is 43000 milliseconds
ND advertised reachable time is 0 milliseconds
ND advertised retransmit interval is 0 milliseconds
ND router advertisements are sent every 200 seconds
ND router advertisements live for 1800 seconds
ND router solicit transmission first delay time is 0 seconds
ND router solicit transmission interval is 4 seconds
ND router solicit transmission times is 3
Hosts use stateless autoconfig for addresses.
Current Hop Limit:64
reachable time 43000ms (base 30000ms)
retransmission interval 1000ms

IPv6のトンネルは作られているんでしょうか? up となっていますが、IPIPの場合は、IP address TUNNEL1 is〜 の部分にIPが出ないのか気になります。なんかだめっぽいような気がしますが、どうでしょうか。

FITELnet>show interface tunnel 1

TUNNEL1 is up
Hardware is Tunnel
IP address TUNNEL1 is not configured.★ここ
Encapsulation TUNNEL, point-to-point link
Tunnel source 240b:10:xxxx:2600:xx:xxxx:xxxx:0 ★wan側のIPv6グローバルアドレス
Tunnel destination yyyy:yyyy:yyy:yyyy::yy (BRアドレスです)
Tunnel protocol/transport IPIP
Last clearing of "show interface" packet counters never
Statistics:
344 packets input
14788 bytes input, 0 errors
344 unicasts, 0 broadcasts, 0 multicasts
0 discards, 0 unknown protocol
3460 packets output
317170 bytes output, 0 errors
3460 unicasts, 0 broadcasts, 0 multicasts
0 discards
::

FITELnet>show ipv6 interface tunnel 1

TUNNEL1 is up
IPv6 is enabled
link-local address is not configured
Global unicast address is not configured
MTU is 1460 bytes

ルーティング情報はどうなっているか、確認してみましょう。

FITELnet>show ip route

Max entry: 10000 (Commonness in IPv4 and IPv6)
Active entry:3 (IPv4), 4 (IPv6) Peak:3

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF
B - BGP, I - IKE, U - SA-UP, D - REDUNDANCY, E - EventAction
A - AutoConfig, P - l2tp-ppp
> - selected route, * - FIB route, p - stale info.

S> * 0.0.0.0/0 [100/0] is directly connected, TUNNEL1
C> * 127.0.0.0/8 is directly connected, LOOP0
C> * 192.168.0.0/24 is directly connected, LAN

Linux の表記とは違いますが、S> がスタティックルートってことで、トンネル(TUNNEL1)に行くようです。IPv6のルーティングは以下。

FITELnet>show ipv6 route

Max entry: 10000 (Commonness in IPv4 and IPv6)
Active entry:3 (IPv4), 4 (IPv6) Peak:4

Codes: K - kernel route, C - connected, S - static, R - RIPng,
B - BGP, P - Pooled, D - Dhcppd,
> - selected route, * - FIB route, p - stale info.
S> * ::/0 [1/0] via fe80::xxx:xxxx:xxxx:e2e0, EWAN1
                    ^^^^^^^^^^^^^^^^^^^^^^^^★これは何でしょうか。今まで出てきていないアドレスです。 via の次なのでネクストホップですね。
C> * ::1/128 is directly connected, LOOP0
C> * 240b:10:xxxx:2600::/64 is directly connected, EWAN1
   ^^^^^^^^^^^^^^^^^★グローバルIPの上半分
C> * fe80::/64 is directly connected, EWAN1

 

うーん、よくわかりませんね。どういう状態になれば良くて、上記の何が悪いのか? わからないところがわかれば、次へ進めますので情報を整理してみましょう。

・WAN側のIPv6グローバルアドレスは取れている

・WAN側のIPv4固定アドレスが表示されない(設定されていない?)

・トンネル接続の情報が正しいのか、悪いのかわからない。
 >IPv6トンネルのルータ側、BR側は表示されている。
 >IP address TUNNEL1 is〜 が表示されていない(IPIPタイプは表示されるはず)

あ、NATの状況を確認していなかったですね。

FITELnet>show ip nat translation

Session summary (equipment total):
Max sessions: 2048
Reserved sessions: 0
Active sessions: 106 Peak: 257

List of active sessions:

TUNNEL1
Local(address port) Global(address port) Remote(address port) prot tm(s)
---------------------+---------------------+---------------------+----+-----
192.168.0.2 6881 1xx.xxx.xxx.xx4 6881 62.xxx.xxx.10 6881 udp 296
192.168.0.2 6881 1xx.xxx.xxx.xx4 6881 178.xx.xxx.64 6881 udp 290
:: ^^^^^^^^^^^^^^^★これは固定IPです。
以下大量に続く!

ん? めっちゃ大量に出ますね。ここまで夢中になってマニュアルと、コンソールをいったりきたりしていましたがふとネットを見るとつながるじゃないですか!!!

アクセス情報 使用中のIPアドレス確認

きた〜〜〜〜〜!

あなたの IPv6 をテストしましょう

IPv4 ですが、つながれば嬉しい! 何が悪かったんだろう! というか、NATの経路が登録されるまでアクセスできなかったということでしょうか?

とりあえず、記念に速度計測しておきます。(現在、日曜日の早朝4:00ごろ)

インターネット回線の速度テスト Fast com

Naniwa ってことは大阪から出ているんでしょうか? 速度は何回か計測しましたが、これが上限ぽいです。

 

いやぁ〜、当初は繋がらなくてしょんぼりしていましたがとりあえず繋がってよかったです。ちょっと疲れたので、この根本原因の追究はまたにすることにします。

最後に、備忘録として設定したコマンドを一部伏字で載せておきます。

JPNE社v6プラス「固定IPサービス」を利用する
<LAN側ではIPv4のみ利用する場合>
 ::
 2. 1対1NATで利用する
 ::

この1対1NAT の設定そのまんま。

JPNE社v6プラス「固定IPサービス」を利用する
~LAN側ではIPv4のみ利用する場合(1対1NATで利用する)~
::

まず、特権モードで設定を初期化。

enable
clear working.cfg
save SIDE-A.cfg

configure terminal

あとは、以下をコピペ

ip route 0.0.0.0 0.0.0.0 tunnel 1 100
ip name-server 127.0.0.1
!
access-list 1 permit 192.168.0.0 0.0.0.255
!
ipv6 route ::/0 ewan 1
!
proxydns mode both
!
service dhcp-server
!
hostname FITELnet
!
mss lan 1 1400
!
http-client 1
request-timeout 10 retry 3
method 1 get url http://xxx.xxx.xxx.xxx/update user XXXX pass YYYY
reference-interface ewan 1
source-interface ewan 1
logging error
exit
!
ip dhcp pool lan 1
dns-server 0.0.0.0
default-router 0.0.0.0
lease 0 8
exit
!
interface ewan 1
ddns-client address ipv6 action http-client 1 delay 30 interval 30
ipv6 enable
ipv6 address autoconfig interface-id インターフェイスID
ipv6 nd receive-ra
ipv6 mtu 1500
ipv6 dhcp client NGN
exit
interface lan 1
ip address 192.168.0.1 255.255.255.0
exit
interface tunnel 1
tunnel mode ipip
tunnel source ipv6 ewan 1
tunnel destination BRアドレス
ip mtu 1460
ip nat inside source static 192.168.0.2 v4IPアドレス
ip nat inside destination static v4IPアドレス 192.168.0.2
exit
!
ipv6 dhcp client-profile NGN
option-request dns-servers
exit
!
end

で、設定をセーブしてリブート。

save SIDE-A.cfg
reset

あとは、WEBの設定確認画面もあるので、http://192.168.0.1/ にアクセス。これは、パスワードを設定しておかないと見れないです。

FITELnet#password enable 
Enter now password:初期化後ならパスワードなし。エンターで。
Enter new password:新しいパスワード
Retype new password:再入力

ついでに、ログインパスワードも設定。

FITELnet#password login
Enter now password:
Enter new password:
Retype new password:

WEB画面は、やっぱり便利ですね。

FITELnet F60 装置情報

3.3万で買えるマシン!サーバ用候補のThinkCentre M75q-1 Tiny:価格.com限定モデル

金曜の夜は、疲れて爆睡して変な時間に起きてしまいますた。ま、よくあることですが。

で、サーバマシンの候補を探していたんですが新品で丁度良いのがありましたのでメモっておきます。

ThinkCentre M75q-1 Tiny:価格.com限定モデル
https://kakaku.com/item/K0001218252/
※ レノボのWEBに飛んで、ThinkCentre M75q-1 Tiny:価格.com限定 パフォーマンス をカスタム

カスタムすると、価格が3.3万くらいになるんですよね。土日だと下がるのか、平日では3.5万くらいでした。

ThinkCentre M75q 1 Tiny 価格 com限定 パフォーマンス 11A4CTO1WWJAJP6 Lenovo JP

いろんなオプションを減らすと、3.3万くらいになります。なんと値引額8万円!(笑)

スペック的には以下のようです。

プロセッサー : AMD Ryzen 5 Pro 3400GE (3.30GHz, 2MB)
初期導入OS : Windows 10 Home 64bit
導入OS言語 : Windows 10 Home 64bit – 日本語版/英語版選択可能
フォームファクター : Tiny
メモリー : 8GB PC4-21300 SODIMM
グラフィックカード : 内蔵グラフィックス
M.2 ストレージ・カード : 128GB M.2 2242 NVMe
イーサネット : 内蔵ギガビットイーサネット
HDMI 出力ポート : HDMIポート
電源アダプター : 65W ACアダプター
スピーカー : 内部モノラルスピーカー (1.5W)
Publications Pack : 日本語
静音認証ラベル : 静音認証ラベル
標準保守 : 1 Year On-site

サーバ用だとメモリをあと8GB 追加したいところですが、今は4400円(送料込)くらいしますので、もう少したってからでいいかなと。M.2 の SSD なんでこのあたりもいい感じですね。容量はサーバ用としては十分です。

消費電力も実測値で、11W〜70W くらいで、平均すると40W くらいなんじゃないかと思います。50Wとして月の電気代は260円くらい。

電気料金の計算 50W1ヶ月
https://www.denkikeisan.com/?s=0&h=8&y=22&w=50&m=0&d=30

50W 8時間x30日 1kWh単価22円 で電気料金を計算

Ryzen 5 Pro 3400GE (3.30GHz, 2MB) のスペックは、Ryzen 5 3400G とほぼ同じです。4core8スレッドで12nmなCPUです。

AMD Ryzen™ 5 PRO 3400GE Processor
https://www.amd.com/ja/products/apu/amd-ryzen-5-pro-3400ge

L2キャッシュが2MB、L3キャッシュが4MBなので、だいたいベンチ結果とみるとRyzen 5 3600X の約半分くらいですかね。unixbench だと1100くらいなんじゃないかと思います。

当初、ヤフオクでi5-4590Tあたりの省スペース(弁当箱相当な)のを狙っていましたが、これだと相場が1万くらいで、SSDやらメモリやらを考えると+5000円くらいで、1.5万くらいになりそうです。性能はざっくりと、Ryzen 5 3600X の1/3 くらいなので Unixbench だと730 くらいかなと。SSDやらメモリやらで調整しても1000 には届かない感じかと思います。

インテル® Core™ i5-4590T プロセッサー
https://ark.intel.com/content/www/jp/ja/ark/products/78928/intel-core-i5-4590t-processor-6m-cache-up-to-3-00-ghz.html

まぁ、2013年くらいのCPUですからね。

1.5万で絶対的な値段は安くても、3、4年使うなら3.3万出して新しい方がよさそうですね。まぁ迷うところです。もう少し考えてみますか。

追記

RDRAND命令の問題って今はどうなんだろうね? ちょっとだけ調査したところ、kernel5.x 系が必要っぽいですね。

RyzenマシンにUbuntu Server 18.04をインストールする
https://qiita.com/sarakane/items/b58f9dd23d0b8edc898e

入れられるディストリビューションを選びそうですね。安定稼働するには、あれこれ試行する必要がありそうですか。kernel 4.x はだめなのかな。kernel 5.2 or 5.4 のほぼ最新を入れないとだめっぽいかもしれません。

手持ちのCPUで試してみますか。てか、その前にルータですね。ThinkCentre M75q-1は、その後に考えますか。

こんなページもありましたね。

Device ‘Ryzen 5 3400G with Radeon Vega Graphics’
https://linux-hardware.org/index.php?id=cpu:amd-23-24-1-ryzen-5-3400g-with-radeon-vega-graphics

Ryzen 5 3400G は、TDPとベースクロック・ブーストクロックが違うくらいでほぼ同じなんでいけるかな?

AMD、TDP 65Wで最大12コアのビジネス向けCPU「Ryzen PRO 3000」シリーズ
https://pc.watch.impress.co.jp/docs/news/1210259.html

GCPのunixbench n1-standard-2(vCPU x 2、メモリ 7.5 GB)

Google Cloud の Compute Engine を使う機会があったのでメモ。

マシンタイプ
n1-standard-2(vCPU x 2、メモリ 7.5 GB)
30GB SSD
CentOS Linux release 7.7.1908 (Core)

========================================================================
BYTE UNIX Benchmarks (Version 5.1.3)

System: xxx-vm: GNU/Linux
OS: GNU/Linux -- 3.10.0-1062.12.1.el7.x86_64 -- #1 SMP Tue Feb 4 23:02:59 UTC 2020
Machine: x86_64 (x86_64)
Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
CPU 0: Intel(R) Xeon(R) CPU @ 2.00GHz (4000.3 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
CPU 1: Intel(R) Xeon(R) CPU @ 2.00GHz (4000.3 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
18:57:23 up 17 days, 22:15, 2 users, load average: 0.00, 0.01, 0.05; runlevel 3

------------------------------------------------------------------------
Benchmark Run: 金 3月 13 2020 18:57:23 - 19:25:28
2 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 32986641.0 lps (10.0 s, 7 samples)
Double-Precision Whetstone 3914.6 MWIPS (9.8 s, 7 samples)
Execl Throughput 1949.5 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 342471.9 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 91571.0 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1050008.3 KBps (30.0 s, 2 samples)
Pipe Throughput 433570.6 lps (10.0 s, 7 samples)
Pipe-based Context Switching 47364.9 lps (10.0 s, 7 samples)
Process Creation 5337.6 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 3961.7 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 641.7 lpm (60.1 s, 2 samples)
System Call Overhead 325793.5 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 32986641.0 2826.6
Double-Precision Whetstone 55.0 3914.6 711.8
Execl Throughput 43.0 1949.5 453.4
File Copy 1024 bufsize 2000 maxblocks 3960.0 342471.9 864.8
File Copy 256 bufsize 500 maxblocks 1655.0 91571.0 553.3
File Copy 4096 bufsize 8000 maxblocks 5800.0 1050008.3 1810.4
Pipe Throughput 12440.0 433570.6 348.5
Pipe-based Context Switching 4000.0 47364.9 118.4
Process Creation 126.0 5337.6 423.6
Shell Scripts (1 concurrent) 42.4 3961.7 934.4
Shell Scripts (8 concurrent) 6.0 641.7 1069.4
System Call Overhead 15000.0 325793.5 217.2
========
System Benchmarks Index Score 616.2

------------------------------------------------------------------------
Benchmark Run: 金 3月 13 2020 19:25:28 - 19:53:37
2 CPUs in system; running 2 parallel copies of tests

Dhrystone 2 using register variables 35009933.2 lps (10.0 s, 7 samples)
Double-Precision Whetstone 6775.5 MWIPS (10.0 s, 7 samples)
Execl Throughput 2934.5 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 434373.3 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 114990.4 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1382207.8 KBps (30.0 s, 2 samples)
Pipe Throughput 554561.5 lps (10.0 s, 7 samples)
Pipe-based Context Switching 135627.6 lps (10.0 s, 7 samples)
Process Creation 10330.6 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 4781.7 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 644.4 lpm (60.1 s, 2 samples)
System Call Overhead 389906.7 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 35009933.2 3000.0
Double-Precision Whetstone 55.0 6775.5 1231.9
Execl Throughput 43.0 2934.5 682.5
File Copy 1024 bufsize 2000 maxblocks 3960.0 434373.3 1096.9
File Copy 256 bufsize 500 maxblocks 1655.0 114990.4 694.8
File Copy 4096 bufsize 8000 maxblocks 5800.0 1382207.8 2383.1
Pipe Throughput 12440.0 554561.5 445.8
Pipe-based Context Switching 4000.0 135627.6 339.1
Process Creation 126.0 10330.6 819.9
Shell Scripts (1 concurrent) 42.4 4781.7 1127.8
Shell Scripts (8 concurrent) 6.0 644.4 1074.0
System Call Overhead 15000.0 389906.7 259.9
========
System Benchmarks Index Score 866.3

最初に、GCPは¥32,579の無料クレジットがあるんで最初の2、3ヶ月くらいはタダでいけそうですね。

866.3 ってことは意外に速くはないんですね。

以前(2018/01)に、g1-small(vCPU x 1、メモリ 1.7 GB)を計測したことがあります。そん時は、683でした。

GCP f1-micro の UnixBench
https://junkhack.gpl.jp/2020/03/13/gcp-unixbench-n1standard2/

2Core にして、シングルの1.4倍ということですか。

こんな構成のときは、もう少しスコアが出てましたね。

独自ドメインで WordPress を動作させる為、エンジニアが選んだ選択
::
score 1146
SSD のn1-standard-1(vCPU x 1、メモリ 3.75 GB)

自宅サーバにするときは、1000〜2000くらいのスペックが出るものを選ぶようにしますか。あまり高機能だと電気代がかかりますからね。

ヤフオクに転がってる、i5 (4世代くらい)で十分ですかね。

 

スマホからの表示速度を1秒以下にしたい!

ブログの表示速度について、ちょっと調べてみました。

まずは測定結果からどぞ。

111

なぬぅー! 遅いですか。ふぅ。まぁ、3.8秒はちょっとイラっとするかもね。

現在は、WordPress.com の一番安いプランを使って運用していますが、この更新期限が2020年10月16日にくるんですよね。まだあと半年くらい先なんですが、やっぱり自分で運用してみようと、考えています。

まぁお金をあまりかけずに、1秒とか1.5秒とかにできれば嬉しいのですが。そういう目標をもってやっていきたいですね。

テストサイト Googleはこちら。

モバイルサイトの速度を比較しましょう
https://www.thinkwithgoogle.com/intl/ja-jp/feature/testmysite/