Open japankun opened 5 years ago
プランの変更によりサーバーが増強された。
このプランはt2.small相当であり、CPUの20%までが常時利用できる。 20%以上の処理能力を必要とする場合はバースト機能が働き、バーストクレジットが消費される。 t2.nano相当からt2.small相当へ移ったことで、受取・蓄積可能なクレジット数も大幅に増えた。
インスタンスタイプ | 1 時間あたりに受け取る CPU クレジット | 蓄積可能な最大獲得クレジット* | vCPU | vCPU 別のベースラインパフォーマンス |
---|---|---|---|---|
t2.nano | 3 | 72 | 1 | 5% |
t2.small | 12 | 288 | 1 | 20% |
バースト可能パフォーマンスインスタンスの CPU クレジットおよびベースラインパフォーマンス https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html
各サービスに保存したデータの取得時間を比較した。
サービス | 取得時間(秒) |
---|---|
Local FS ≒ SSD | 0.000040 |
Amazon S3 | 0.108505 |
Google Cloud Storage | 0.284547 |
Memcached (w/docker) | 0.000145 |
Memcachedを使うとなるとデータ永続化のためにまた仕組みを作らないといけない。 でもフロントからデータを切り離すことができて、フロントを増やして負荷を分散することはできる。
近況のCPU使用率
現在の利用サーバーはこんな感じで1台バックアップ
前使っていたサーバーはスナップショットをローカルへ転送をした。 作業内容は後ほどどこかに書くと思う
インスタンスの自動スナップショットを取るようにした。
掲示板のプロジェクト名J.D.S.の正式名称は「John Doe System」すなわち名無しのシステムである。 J.D.S.はAmazon Lightsailの以下のインスタンス一つで動いている。
現在J.D.S.は一日40万アクセスを超えてもLoadAverageがほぼ0.5以下であり かなり安定した状態で動作している。
Nginx+Apacheでシステムを組んでいるのでC10K問題はおそらく問題ないはずだが 通常約3%のCPUを使用しているため、AWS側でスケールアップを視野に入れる 使用率5%に近づいていくに違いない。
外部化できるものとしては、WebSocket+MQTTの連携が真っ先に思い浮かぶ。 これらはCPU使用率の約2%を使用しているがbbs.cgiが受け取ったレスをNode-REDで作ったAPIを叩きMQTTに直し再送という係を担っている。
なお、そのままのMQTTはJavaScriptが受け取ることができないのでmqttws31.jsを使用し WebSocketを経由してMQTTの内容がクライアントに最終的に届くという仕組みである。
これらをmosquitto専用サーバーが1つあれば負荷はかなり減る。