Fedora Linux VPSサーバーが100%のCPUを報告し、事実上使用不能になるという奇妙な問題が発生しましたが、高負荷のためにSSHに接続して何が問題なのかを確認できないため、理由がわかりません。
一部のプロセスが他のすべてのCPUを消費している場合でも接続できるように、SSHを優先または構成するにはどうすればよいですか?
これが実際のCPU /負荷関連の問題である場合は、サーバーのsshdプロセスに(再)ナイスを設定して、優先順位を高くすることができます。これを永続的にするには、sshd initスクリプト内にNiceを追加します。
プロセスをログに記録するスクリプトを作成します。
#!/bin/bash
top -b -c -n 1 -d 1 > /tmp/top-$(date "+%Y-%m-%d_%H-%M-%S")
スクリプトを毎分実行するcronジョブをセットアップします。
*/1 * * * * /path/to/script.sh
次にシステムが応答しなくなったときに、何が行われていたかをログに記録します。
私はDockerを介してすべてのリソースを消費するコードを実行していたので、コンテナーで開始できるCPUの量を、
--cpus=7.5
私は8つのコアを持っているので、コンテナーを実行している実際のサーバーへのSSHセッションを処理するために、常に半分のコアが必要です(他のプロセスがこれらのリソースも使用しない限り)。
良い方法として、コンテナのメモリ使用量を制限しました
--memory=4g
https://docs.docker.com/config/containers/resource_constraints/#cp
私の言ったことを気にしないのなら、あなたは間違った質問をしていると思います。あなたは本当に何が使用されているのかを知りたいので、ログインできないほどのリソースになるかもしれません。私はこの問題に何度も遭遇しましたが、解決策はサーバーで常に起こっていることを追跡することです。私はこのソリューションを思いつきました。これは可能な限り軽量であり、リソースの独占によって停止される可能性を減らします。
http://linuxtech.ie/wordpress/2012/09/05/finding-a-severe-resource-hog-on-your-server/
それが役に立てば幸い