web-dev-qa-db-ja.com

CPU負荷が高い場合にSSHを優先して動作させる方法

Fedora Linux VPSサーバーが100%のCPUを報告し、事実上使用不能になるという奇妙な問題が発生しましたが、高負荷のためにSSHに接続して何が問題なのかを確認できないため、理由がわかりません。

一部のプロセスが他のすべてのCPUを消費している場合でも接続できるように、SSHを優先または構成するにはどうすればよいですか?

8
Cerin

これが実際のCPU /負荷関連の問題である場合は、サーバーのsshdプロセスに(再)ナイスを設定して、優先順位を高くすることができます。これを永続的にするには、sshd initスクリプト内にNiceを追加します。

2
Pascal Schmiel

プロセスをログに記録するスクリプトを作成します。

#!/bin/bash
top -b -c -n 1 -d 1 > /tmp/top-$(date "+%Y-%m-%d_%H-%M-%S")

スクリプトを毎分実行するcronジョブをセットアップします。

*/1 * * * * /path/to/script.sh

次にシステムが応答しなくなったときに、何が行われていたかをログに記録します。

2
suprjami

私はDockerを介してすべてのリソースを消費するコードを実行していたので、コンテナーで開始できるCPUの量を、

--cpus=7.5

私は8つのコアを持っているので、コンテナーを実行している実際のサーバーへのSSHセッションを処理するために、常に半分のコアが必要です(他のプロセスがこれらのリソースも使用しない限り)。

良い方法として、コンテナのメモリ使用量を制限しました

--memory=4g

https://docs.docker.com/config/containers/resource_constraints/#cp

1
Boris

私の言ったことを気にしないのなら、あなたは間違った質問をしていると思います。あなたは本当に何が使用されているのかを知りたいので、ログインできないほどのリソースになるかもしれません。私はこの問題に何度も遭遇しましたが、解決策はサーバーで常に起こっていることを追跡することです。私はこのソリューションを思いつきました。これは可能な限り軽量であり、リソースの独占によって停止される可能性を減らします。

http://linuxtech.ie/wordpress/2012/09/05/finding-a-severe-resource-hog-on-your-server/

それが役に立てば幸い

1
Philip Kearns