
サーバーには 8GB の RAM と 50GB のストレージがありますamazon
aws
ubuntu 18.04
。 をインストールしましMongoDB 4.2
たNode JS 12 LTS
。
現在のサーバーには 30 GB のストレージがあります。同じサーバーに 4 つのマイクロ サービスがあります。4つのサービスすべてを開始するようにMongoDB
インストールしました。pm2
すべてのサービスの応答が遅れる理由がわかりません。
例えば:
pm2 start 0
ログが表示されるまでに 4 ~ 5 分かかることを確認しました。
すでに DB キャッシュを削除し、pm2
ログをフラッシュしました。しかし、依然としてmongodb
サービスは CPU 使用率の 50% を占めています。
すべてのコードをチェックしたところ、サードパーティの API 呼び出しがなく、すべてのクエリが最適化され、サーバー上でインデックスが追加されていることがわかりました。しかし、サーバーはまだ時間がかかりすぎています。
ほとんどの場合、サーバーのタイムアウト エラーが発生しました。助けてください。どうすればserver
高速化できますか。
答え1
TL;DR: 最近、IPv4 にフォールバックする前に IPv6 で名前を解決しようとしていたノード サーバーのトラブルシューティングを行いましたが、これが問題の解決策でした (YMMV):
次のことを試してください。
ターミナルを開く
設定ファイルを編集し
/etc/sysctl.conf
て開き、最後に次の行を追加します。
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
- コマンドを入力すると、
sudo sysctl -p
ターミナルに表示されます。
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
- その後実行します
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
- 報告された場合は、1
IPV6 が無効になっていることを意味します。
ノード サーバーを再起動します。
HTH