ローカルネットワーク(10人の開発者からなる小さな会社)でclearOSサーバーを実行している場合、それを開発サーバーとして使用して作業をテストし、テストプロセスでクライアントに表示します。各開発者はftp/http /にアクセスするための一意のユーザー名とパスワードを持っています。 smb。問題は、開発者の1人が無限ループを実行するような安全でないコード(phpコードであると仮定します)を実行する場合です!サーバーは完全にクラッシュし、障害のある開発者を特定できません。どうすればそれを解決できますか?前もって感謝します
私のサーバーの情報
インストールされているアプリ:
ユーザー:
あなたはあなたの主な問題を次のように述べました
開発者の1人が無限ループを実行するような安全でないコード(phpコードであると仮定しましょう)を実行するとき!サーバーは完全にクラッシュし、障害のある開発者を特定できません。
開発コードは常にクラッシュまたはハングする可能性があるため、2つの異なる問題に効果的に対処しています。
2番目の問題を解決する場合でも、最初の問題を解決する必要があります。しかし、最初の問題を解決すれば、もう2番目の問題を解決する必要がなくなるので、ここでは最初の問題を解決することに焦点を当てます(また、悪いことについて人々に立ち向かわずに問題を解決する方が常に簡単で、対立が少なくなります)。
ユーザーアクションを相互に分離する場合、3つの主要なパスから選択できます。
ulimit
の提案をしましたが、アプリケーションが(各サービスの汎用デーモンユーザーではなく)それらのユーザーも使用し、プロセスを開始したくないことを確認する必要があることを付け加えたいと思います他のユーザーアカウントで。この欠点のため、継続的デリバリーインフラストラクチャのないスクリプトのビルドなどの単純なものを除いて、このアプローチは今日ほとんど使用されていません。もちろん、アプローチは異なるレイヤーで機能するため、組み合わせは常に可能です。たとえば、コンテナを使用して全員が独自のWebサーバーを持つようにし、すべてのユーザーが同じデータベースを使用してリソースを節約できるようにすることができます(データベースへのアクセスは、複数の異なるデータベースよりも高速です)。
ご覧のとおり、可能性は多く、それぞれを実装するのにかなりの労力がかかるため、以下を絞り込む必要があります。
予防策として、ユーザーに特定の制限セットを設定する場合は、ulimitを調べる必要があります。プロセス/ CPU /メモリの制限を設定できます。
参照してください このリンク
もう1つの方法は、外部監視ツール(最も一般的な例:nagios/nrpe)を使用してシステムのリソース使用量を監視することです。このツールは、リソースのしきい値を超えた場合に警告を発します。