Raspberry Pi 3B+でwebサーバを運用時の性能と余裕

Raspberry Piでwebサーバを運用している当サイトですが、これに関連するwenサーバ運用時のシステムパフォーマンスについて紹介しておこうと思います。Raspberry Pi 4Bを利用される際はさらに高性能なのでさらなる余裕が見込めるので参考までにという意味でもこのデータはおすすめです。他のサイトではwebサーバ運用時のパフォーマンスは紹介されていないことも多いので。

目次

環境

調べるとRaspberry Piのwebサーバ運用始めましたって方の記事も多くヒットするのですが、そのときのパフォーマンスって具体的な数字では語られていないことが多いですよね。というわけで、調べてみました。参考までに環境を以下に示します。

  • Raspberry Pi 3 model B+
  • Raspberry Pi OS Lite
  • WordPressをインストール(ver5.4系)
  • 1cm四方ぐらいの小さなヒートシンク
  • ファンレス
  • 密閉に近いプラケース

必要な情報はこれぐらいでしょうか。ほかにあれば教えていただければ追記しますね。

測定方法

測定にはいくつかのコマンドと当サイトで公開しているRaspberry PiのCPU温度をグラフ化するtmchkを使用しています。使い方、インストール方法については以下の記事に書いているので、興味がある方は是非見ていってください。

簡単にtmchkについて説明しておくと、Raspberry PiのCPU温度、使用率、動作周波数をグラフにすることができるツールです。これを使ってCPUまわりの挙動を確認します。

測定時には以下のコマンドを実行しました。

sudo tmchk 1 1 /hoge/huga/test.png --nograph

グラフを出力しないオプションを利用しています。というのもwebサーバなど公開サーバには不要なパッケージを入れないのが鉄則なので、gnuplotをインストールせずデータだけ記録しました。あとsudoしているのはセキュリティの都合もあるので、とりあえずこうしたら実行できるとうだけなのであまり深い意味はありません。

それ以外にどれだけメモリを使っているかを確認するために以下のコマンドを使用します。

free

Linuxで採用されている標準的なメモリの使用率を見るためのコマンドです。

色々動かせば動作が変わってくるでしょうが、今回は平常時を見るということで変に負荷をかけたりはしません。なのでアイドル状態に近いかとは思うので、CPU温度や使用率は言うほど高くないと予想しておきます。WordPressを常駐させたらどうなるかって感じなのがわかるかと思います。測定時には、WordPressのダッシュボードを表示した状態で計測を行います。

測定したパフォーマンス

まずtmchkで計測して得られたCSVファイルの内容を以下に示します。

time,CPU_temperature,CPU_usage,CPU_frequency
0,56.00,6,700.00
1,57.00,5,933.00
2,56.00,6,700.00
3,56.00,5,700.00
4,57.00,8,700.00
5,57.00,6,933.00
6,56.00,6,933.00
7,57.00,6,700.00
8,56.00,6,700.00
9,57.00,5,1400.00
10,57.00,5,933.00
11,57.00,6,700.00
12,56.00,3,1400.00
13,56.00,6,700.00
14,56.00,7,700.00
15,57.00,8,1400.00
16,57.00,6,700.00
17,57.00,5,933.00
18,57.00,5,933.00
19,57.00,6,700.00
20,57.00,6,700.00
21,57.00,5,1400.00
22,57.00,5,933.00
23,57.00,6,700.00
24,57.00,9,933.00
25,56.00,6,933.00
26,57.00,7,933.00
27,57.00,9,700.00
28,57.00,6,700.00
29,56.00,6,700.00
30,56.00,5,700.00
31,57.00,6,700.00
32,56.00,4,700.00
33,57.00,6,700.00
34,57.00,5,700.00
35,57.00,5,700.00
36,57.00,6,933.00
37,57.00,7,700.00
38,56.00,8,700.00
39,57.00,5,700.00
40,56.00,6,700.00
41,57.00,6,700.00
42,56.00,5,1400.00
43,57.00,5,700.00
44,57.00,6,700.00
45,57.00,6,700.00
46,57.00,6,700.00
47,56.00,6,700.00
48,57.00,5,700.00
49,56.00,6,933.00
50,56.00,6,933.00
51,57.00,9,700.00
52,57.00,5,933.00
53,57.00,6,700.00
54,56.00,5,700.00
55,56.00,5,1400.00
56,57.00,6,700.00
57,57.00,6,700.00
58,57.00,6,700.00
59,57.00,5,700.00

これをグラフにすると以下のようになりました。今回はtmchkでCSVだけを出力して違うツールを使ってグラフにしました。

CPU温度
CPU使用率
CPU動作周波数

この結果を見る限り負荷は極めて低いことがわかり、パフォーマンスには相当余裕があることがうかがえます。WordPressが常駐していても基本的には10%以下に収まっており、極めて安定していることがわかります。Raspberry Pi 3B+でこれぐらいなのでRaspberry Pi 4Bならもっと安定して余裕を持てることでしょう。

周波数に関しても、上下はしていますが基本的には最大周波数よりもずっと下の値を維持しているので、負荷は低く安定していることがCPU使用率とともに読み取れます。負荷に対して適切に動作周波数が制御できている証拠でもありますね。

それに対してCPU温度が高めな気がするとは思いますが、ファンレス環境なのと、小さなヒートシンクなので温度が高めに出てしまいます。参考までにxrdpでリモートデスクトップをしているときにRaspberry Pi 4Bはこんな感じになっています。webサーバとは全く関係ないデータとなっています。

CPU使用率がこちらのほうが高いのに温度はずっとRaspberry Pi 4Bのほうが低いので、ケースの差だと考えられます。こちらでは全体がアルミのヒートシンクとファンを兼用したものを使っているためですね(ファンレスです)。なので、Raspberry Pi 3B+を使うのであっても、ファンレス環境でより安定性などを求めるのであればアルミ製のアーマーケースなどを使うほうがいいということがはっきりとわかります。

次にfreeコマンドを実行してメモリの使用状況を見てみます。結果は以下のようになりました。

$ free
              total        used        free      shared  buff/cache   available
Mem:         948072      225328      265900       78004      456844      590860
Swap:        102396           0      102396

usedが225382とありますね。全体のメモリが1GBほどですので、そのうちの225MB程度を使っているということがこの結果から得られます。これからわかるのは残りの700MB強は空きということなので、メモリにも比較的余裕があるということがわかります。WordPressやApacheが常駐するのでもっと余裕がなくギリギリなのかと思っていましたが、そういうことではないことが証明されました。当サイトは現状は小規模なのでアクセス数も少ないですからこうなっているわけですが、月に1万人程度訪れるようなサイト様だと話は変わってくると思うので参考程度にお願いします。あと、基本的にはWordPressもいくつかプラグインを入れていてどちらかというと重くなるほうにいじっていて、Apacheのほうは特にこれといったチューニングをしていないデフォルトより少し重い状態でこの結果になっています。

Raspberry Pi 4B (8GB)を買ってさらにサーバを強化しようかなとか少し思っていたのですが、ここまで余裕があると今は全く強化する必要を感じないのでしないことにしました。内心実験的な意味も込めてほしかったのですが、ある意味データではっきり示されると別の意味で怖い一面もあるなと思いました。いらないなってはっきり思ってしまったので笑。またいつかブログで広告収入が発生するようになって、この収入で買えるようになったら考えようと思います。いつになるかははっきりわかりませんけどね。

まとめ

小規模webサーバならRaspberry Pi 3B+で十分だという結論になりました。相当現状でも余裕を感じれます。趣味程度でやっている私程度のサーバではこれで十分だなというところです。本気で稼ぐつもりだとかSEO対策だとかで、ほんの少しでも高速化したいのであれば、Raspberry Pi 4BにSSDにOSを入れて、tmpfs上にmysqlを展開するとか限界までチューニングしたらいいかとは思います。そこまでするならサーバをおとなしく借りたほうがいいと思いますが。

これで本記事はおしまいです。お読みいただいてありがとうございました。

1件のコメント

  1. 失礼致しました。日本のラズベリーパイを販売している林遠です。
    ブログを拝見しました。弊社のラズベリーパイカメラと電源レビューブログ記事を書きしてくれませんか
    こちらは無料でサンプルを提供します
    連絡メールはjp02@vertue.cnです
    御返事お待ちしております。どうぞよろしくお願いします。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です