サーバー制限 ホスティングでは、サービスが同時に開くことを許可されるファイルやプロセスの数を具体的に制御し、それによって待ち時間、エラーメッセージ、可用性を決定します。負荷がかかっているときでもウェブサーバーがスムーズに動作するように、ファイルやプロセスの制限を測定、調整、監視する方法を順を追って説明します。 信頼できる 仕事だ。
中心点
- ソフト/ハード 限度を理解し、適切に設定する
- ファイルなし (ファイル)と エヌプロック (プロセス)目標増加
- ピーエッチピーエフピーエム キューを正しく設定する
- モニタリング ボトルネックを認識する
- セキュリティ 常識的な上限を持つ
制限の簡単な説明:ソフトとハード
ユーザーやプロセスごとに信頼できるデータを得るために、私はUlimitsを使っている。 バウンダリー をリソースに使用する。ソフトリミットは現在の変更可能な上限で、アプリケーションが短期的に余裕を必要とする場合、ハードリミットまで引き上げることができます。ハードリミットは絶対的な上限を表し、ホスト全体に影響を及ぼすような個々のサービスの無秩序な成長を防ぎます。デフォルトでは、ulimitコマンドはスイッチなしでハードリミットを参照します。これにより、1つのスクリプトが多すぎるファイルやプロセスでサーバに負荷をかけるのを防ぐことができます。 オーバーロード.
私は常に、以下のような最も重要なパラメータを区別している。 ファイルなし (ファイルを開く)、, エヌプロック (プロセス/スレッド)、fsize (ファイル・サイズ)、stack (スタック・サイズ)、および cpu (CPU 時間)。特に、PHP、データベース、キャッシュコンポーネントを持つウェブスタックでは、デフォルトの最小値よりもかなり多くのオープンディスクリプタが必要になることがよくあります。適切な制限がないと、„too many open files“(開いているファイルが多すぎる)、長い応答時間、リクエストのタイムアウトなどのメッセージが蓄積されます。私はまず実際の使用量を測定し、制限値を徐々に増やし、それからレイテンシ、エラーカウンタ、スループットをチェックします。こうすることで、高いアクセスレベルでも安定したパフォーマンスを確保できるのです。 応答時間.
ホスティングにおいて制限が重要な理由
ホスティング環境はハードウェアリソースを共有しているため、個々のアカウントやサービスによるリソースへの不当なアクセスを防ぐために適切な制限を使用しています。 パフォーマンス 安定した動作が可能です。例えば、エントリーレベルのプランでは、同時CGI/PHPプロセスとユーザーあたりのCPU時間は制限されており、不具合のあるcronジョブがホスト全体を遅くすることはありません。より高いプランでは、より多くのプロセスが実行でき、より多くのRAMを使用することができます。人為的なボトルネックが残らないように、プロセス数、プロセスあたりのRAM、CPU時間を常に一緒に評価します。リソースを公平に配分するための実践的なフレームワークについては、以下の記事で詳しく説明している。 共有ホスティングの制限, これは、そのつながりをコンパクトに説明するものである。 主催.
について ファイル ディスクリプタの制限は非常に重要です。デフォルト値の1024は、最近のウェブ・アプリケーション、特に同時接続が多い場合には小さすぎることが多い。そのため私は、値を増やす前にまずログやツールから実際のピークを読み取り、カーネル・テーブルやメモリ・プレッシャーへの影響を把握するようにしています。これにより、ホストのセキュリティと応答性を危険にさらすことなく、スループットを向上させることができる。この原理を理解していれば、厳しすぎるスループットによる不規則な障害を避けることができる。 障壁.
日常生活で最も重要なパラメーター:nofile、nproc、co。.
ウェブ関連のワークロード ファイルなし HTTP接続、アップストリームソケット、データベース接続は大量のディスクリプタを消費するからだ。トラフィックの短い波がすぐにエラーにつながらないように、ピーク時の負荷、たとえば典型的なピーク時の2倍から4倍のバッファを計画しています。ワーカーベースのサービスでは、ワーカーの数と最大接続数に応じてnofileを並行してスケールさせます。CDN、リバースプロキシ、メッセージングレイヤーが追加された場合、需要は再び増加します。バッファがクリーンな場合にのみ、散発的な „open file “エラーはなくなり エラー率 が減少する。
時点では エヌプロック-スレッドプールを使っているランタイムもあるので、プロセスもスレッドも一緒に考える。ウェブサーバー、アプリサーバー、データベースのスポーン戦略をチェックして、上限が気づかれずに有効になって新しいワーカーがブロックされないようにしている。nprocの値が低すぎると、サービスの起動が遅くなったり、キューが処理されなかったりする。私はCPUコア数、IO負荷、アプリケーションのアーキテクチャに合わせて制限値を増やしています。こうすることで、スポーン・プロセスを予測可能な状態に保ち、アプリケーションの動作が硬直化するのを防ぐことができる。 閉塞.
チェック・ウリミッツ:私は現実をこう読む
私はすべての最適化を可視化から始める。 ブラインド. .ulimit -aコマンドは、シェル・セッションの現在の制限を表示してくれるので、サービス構成との比較の基礎となる。私はnofileとnprocを別々にチェックする。これらの値はホスティングで最初に限界に達するからだ。また、lsof、ss、netstatを使って、プロセスごとに開いているファイルとソケットを数えます。本番負荷のピークがわかってから、バッファを計画し、それを 限界値 にある。
# セッションの全制限
ulimit -a
# ファイル記述子(ソフト/ハード)
ulimit -n
ulimit -Hn
# ユーザーごとのプロセス/スレッド数
ulimit -u
ulimit -Hu
systemdが起動するサービスについては、対話型シェルを見るだけではない。 限界. .そこで私は、シェルとサービス間の不整合を明らかにするために、/proc//limits経由で実行中のプロセスの実効値を比較している。乖離は、ユニット・ファイルに欠けている設定を示し、私はそれを直接追加する。この比較によって、シェルの制限が高いにもかかわらず、なぜアプリが追加ファイルを開くことを許可されないのかについて頭を悩ませる必要がなくなる。これにより、コンフィギュレーションのギャップを素早く見つけ、一貫した フレーム.
一時的なカスタマイズ:ランニングセッションでのクイックテスト
恒久的に制限を設ける前に、私は特にシェルでより高い制限をテストする。 価値観. .これにより、アプリケーションが期待通りに多くの接続を受け入れているか、あるいは待ち時間が減少しているかどうかを、再起動せずに確認することができます。増加した値は、このセッションを閉じるかサービスを再起動するまで適用されます。私は syslog、エラーログ、メトリクスへの影響を文書化し、後の恒久的な調整に十分な根拠があるようにしています。短時間のテストは、大規模なロールバックを省き、信頼できる結果をもたらします。 クーポン券.
# 現在のシェルで一時的に
ulimit -n 65536 # ファイル記述子を上げる
ulimit -u 4096 # プロセス/スレッドの制限を増やす
# ハードリミットを明示的にチェック/調整 (root)
ulimit -Hn 131072
ulimit -Hu 8192
このようなテストは、実際の影響を分析するために、負荷のピークが予定されている時に実施している。 参照. .ファイルが開きすぎている」エラーが止まり、1秒あたりのリクエスト数が増えたら、測定値を記録する。影響が低いままであれば、ソケットのバックログが狭すぎたり、ウェブサーバーのワーカー制限やデータベースのコネクションプールなど、並列のブレーキを探します。チェーン全体がスケールして初めて、より高いulimitサーバーがきれいに報われる。こうすることで、最終的に顕著な効果が得られない部分的な最適化を防ぐことができる。 改善 を持参します。
limits.conf と systemd の恒久的な設定
恒久的な値については、/etc/security/limits.confを編集し、ユーザーまたはサービス固有の値を追加する。 ライン. .ソフトリミットとハードリミットを区別することで、アプリケーションは短期的には高い伸縮性を保ちつつも、明確な上限を持てるようにしている。systemdサービスについては、LimitNOFILEとLimitNPROCも設定する。カスタマイズが終わったら、systemdをリロードし、影響を受けるサービスを再起動する。再起動は重要で、そうしないとプロセスが古い フレーム値.
# /etc/security/limits.conf (例)
* ソフトファイル65536
* ハードファイルなし 131072
www-dataソフトnproc 4096
www-dataハードnproc 8192
# systemd ユニット (例: /etc/systemd/system/nginx.service.d/limits.conf)
[サービス]
リミットNOFILE=65536
リミットNPROC=4096
# 変更を有効にする
systemctl デーモン再ロード
nginx を再起動する
| コンテクスト | 所在地 | 妥当性 | 典型的な |
|---|---|---|---|
| インタラクティブ・セッション | シェルの ulimit | 現在のシェル/チャイルドのみ | クイックテスト |
| システム全体のユーザー | /etc/security/limits.conf | ログイン/PAMベースのプロセス | 耐久性のあるベース |
| サービス (systemd) | ユニットファイル:リミットNOFILE/リミットNPROC | 影響を受けるサービスのみ | 明確なサービス境界線 |
システム全体のカーネル制限を正しく分類する
プロセスやユーザー関連の上限に加えて、システム全体の上限もあるので、私は常にチェックしている。カーネルがグローバル・ファイル・ディスクリプタ・テーブルを短く保っていれば、高いnofileでも意味がない。そのため、fs.file-max(オープン可能なFDの合計)とfs.nr_open(カーネルレベルでプロセスごとに許可されるFDの最大値)をチェックする。これらの値が一致しない場合、ulimitsを上げたにもかかわらず、早い段階で限界に達してしまう。.
# システム全体の制限をチェックする
cat /proc/sys/fs/file-max
cat /proc/sys/fs/nr_open
cat /proc/sys/fs/file-nr # 使用中、空き、最大
# 一時的に上げる(リブートまで)
sysctl fs.file-max=2097152
# 恒久的 (/etc/sysctl.d/99-ulimits.conf 内)
fs.file-max = 2097152
プロセス制限(RLIMIT_NOFILE)≦fs.nr_open≦fs.file-max(グローバル)というカスケードがある。fs.nr_openでnofileが設定されると、カーネルは黙ってリクエストを無視する。それに応じてグローバルにディメンションを設定し、次にサービスごとにディメンションを設定します。バックログを受け入れるために、net.core.somaxconnとそれぞれのサービスのバックログパラメータも調整します。.
systemd 単位:TasksMax、PIDsMax、DefaultLimits。
最近のディストリビューションでは、systemd は記述子を制限するだけでなく、サービスごとのタスク (プロセス/スレッド) の数を タスクマックス. .高い同時実行性のセットアップには適切な値を設定するか、nprocに制御を移すときに „infinity “を使う。ユーザーサービス ユーザー@.サービス それぞれ system.conf DefaultLimit*スイッチでベースライン値を一貫して上げる。.
#サービスのドロップインでタスクとFDを増やす
mkdir -p /etc/systemd/system/php-fpm.service.d
cat < /etc/systemd/system/php-fpm.service.d/limits.conf
[サービス]
リミットNOFILE=131072
リミットNPROC=8192
タスクマックス=16384
EOF
systemctl デーモン再ロード
php-fpmを再起動する
# システム全体のデフォルト (慎重に使用してください)
# /etc/systemd/system.conf
デフォルトリミットNOFILE=65536
デフォルト制限NPROC=4096
デフォルトTasksMax=8192
重要: sudo、su、SSHログインは、それぞれ異なる制限を継承します。PAMベースのログインでは、/etc/security/limits.confが有効になりますが、非ログインシェルやcronjobでは有効にならないことがよくあります。そのため、サービスを起動する際の完全なパスを常にテストし、無言の逸脱が残らないようにしています。.
Ulimitsによるウェブサーバーのスケーリング
NGINXでは、worker_processes、worker_connections、および worker_rlimit_nofile を、システム全体の制限に合わせる。経験則: 最大同時接続数 ≈ worker_processes × worker_connections に、アップストリーム、ログ、内部パイプの予備を加えたもの。worker_rlimit_nofileを増やさないと、ulimitsが高いにもかかわらず、NGINXはEMFILEの早い段階で実行されます。.
# NGINXの例(抜粋)
worker_processes auto;
イベント
worker_connections 40960;
multi_accept on;
epoll を使用します;
}
worker_rlimit_nofile 131072;;
Apache(MPMイベント)では、ServerLimit、ThreadsPerChild、MaxRequestWorkersに注意しています。接続可能な総数が増えると、nofileは並列に成長しなければならない。そうしないと、CPUとRAMにまだ余裕があるにもかかわらず、キューがいっぱいになってしまいます。また、リッスンバックログ(例えばNGINXの場合:listen ... backlog=...)とkernel-somaxconnを調整して、新しいアクセプタンスがドロップされないようにしている。.
データベースとキャッシュ: 予算が正しくファイルを開く
データベースとキャッシュには独自のネジがある:MySQL/MariaDBを使う オープン・ファイル・リミット PostgreSQLは事前にコネクション・プーリングを行い、Redisはクライアント数を直接オープンFDに変換します。私は、それぞれのサービスが内部的な最大値を超えるnofileに遭遇することを確認している。そうしないと、アプリケーションレイヤーがスケーリングされているにもかかわらず、スタートアップやロードピークが失敗してしまう。.
典型的なパターン:PHP-FPMは並列性を高めるが、DBサーバーは古いFD制限とコネクションキャップのままである。私はコンポーネントごとにオープンハンドルを計測し、バッファを追加している。これにより、下流のサービスが全体のパフォーマンスを低下させるのを防ぐことができる。.
コンテナとオーケストレーション:Docker/KubernetesコンテキストにおけるUlimits
Ulimitsは、ホストのログインコンテキストに関係なくコンテナで機能する。起動時やオーケストレーションで明示的に設定し、cgroupsの制限(PID、メモリ)も守っている。Docker環境では、nofile/nprocを定義し、オプションでPIDs制限を定義します。Kubernetesは、SecurityContextとRuntimeClass固有のオプションでこれをカプセル化する。環境によっては、UlimitsはContainer Runtimeで設定する必要がある。.
# Dockerローカル
docker run --ulimit nofile=131072:131072 \
--ulimit nproc=8192:8192 ㊟ --pids-limit 20000
--pids-limit 20000
--name webapp -p 80:80 myimage:latest
# Docker Compose(抜粋)
サービス
app:
image: myimage:latest
ulimits:
nofile:
ソフト: 65536
ハード: 131072
nproc: 8192
pids_limit: 20000
私は常に/proc/self/limits経由でコンテナ内の制限を検証し、limits.confのようなホストのカスタマイズがコンテナプロセスに自動的に拡散しないようにしている。各サービスのデプロイパラメータを明確にし、バージョン管理することで、透明性を確保しています。.
トラブルシューティングの実際:EMFILE、EAGAIN、遅いスポーン
再現性のある分析のために、straceを使い、accept()、open()、pipe()、clone()でEMFILE(„Too many open files“)またはEAGAIN(„Resource temporarily unavailable“)を検索する。プロセスごとに定期的にFDを数え、設定された制限値と比較する。ファイル・ハンドルのリーク(Close()コールのし忘れなど)は、この方法でより迅速に認識できる。.
# プロセスごとにオープンFDを決定する
ls -l /proc//fd | wc -l
# システム全体の使用状況を一目で見る
cat /proc/sys/fs/file-nr
# FDエラーのstraceをトリミングする
strace -fp -e trace=desc,プロセス,ネットワーク 2>&1 | grep -E 'EMFILE|EAGAIN'
nprocの制限が厳しすぎることによるスタートアップの問題は、スタートアップの遅さ、„can't fork “メッセージ、不完全なワーカープールによって明らかになります。私は、これらのイベントとスポーン戦略(プレフォーク、ダイナミック、オンデマンド)を関連付け、調整によって症状を緩和するだけでなく、アーキテクチャもサポートします。.
自動化、テスト、ロールバック
systemdのドロップイン、sysctl.dファイル、サービステンプレートを宣言的に管理しています。全ての変更にはチケットが発行され、変更前/変更後の測定値、明確なロールバックが行われます。ステージングでは、wrk、vegeta、k6などのツールで利用状況をシミュレートし、P95/P99のレイテンシ、エラー率、キュー時間に注意を払っています。信頼できる結果だけが、本番への拡張を正当化します。.
# 複数サービスのドロップイン雛形を作成する
for s in nginx php-fpm redis; do
mkdir -p /etc/systemd/system/$s.service.d
cat < /etc/systemd/system/$s.service.d/limits.conf
[サービス]
リミットNOFILE=65536
リミットNPROC=4096
タスクマックス=8192
EOF
完了
systemctl デーモン再ロード
systemctl nginx php-fpm redisを再起動する
キャンペーンの場合、私は制御された方法で制限を切り替え、開始/終了時刻を記録し、トラフィック曲線と比較する。ピークが過ぎたら、より保守的な値を再導入して、攻撃対象領域を最小化し、未使用のカーネルリソースを解放します。.
混同の危険性:ウリミットとウォッチャー/カーネル・パラメーターの比較
すべての „too many files “エラーがnofileによって引き起こされるわけではありません。ファイルシステムウォッチャー(inotify)には独自の制限(例えばmax_user_watches)があり、小さなファイルや開発スタックが多いとすぐに達してしまいます。vm.max_map_count(検索エンジン用など)やnet.ip_local_port_range(エフェメラル・ポート)も制限要因になりうる。間違ったノブを回さないように、このようなパラメーターは個別にチェックしている。.
PHP-FPM を正しく起動する:プロセス、キュー、制限
PHP-FPMでは、pm.max_children、pm.max_requests、ulimit制限を調整し、プロセスの開始、メモリ、および コネクション はバランスを保ったままです。FPM が上限に達すると、リクエストはキューに入れられます。これは意図的なものですが、Web サーバーがタイムアウトとバックオフを適切に処理している場合にのみ意味があります。平均実行時間を計測し、それをもとにCPUやRAMをオーバーしない実行可能なプロセス数を導きます。また、並列のアップストリーム接続とログ書き込みが十分な余裕を持てるように、ファイル記述子の上限を調整します。さらに深く掘り下げたい場合は、以下のような実用的な調整ネジを見つけることができる。 PHP-FPM プロセス を決定する。 バランス.
また、FPM ワーカー一人あたりが同時に開いているデータベース接続の数もチェックします。 針の穴 になる。ワーカーの数が多すぎるとRAMへの負荷とコンテキストスイッチが増え、少なすぎるとスループットが停滞する。そのため、段階的にスケールし、レイテンシP50/P95や障害を観察し、スモールステップで調整する。キュー時間、CPU負荷、エラー率のバランスが取れて初めて、値を恒久的に固定する。こうすることで、スタックはより予測しやすくなり、負荷がかかっても安定した状態を保つことができる。 レスポンシブ.
モニタリングとキャパシティ・プランニング
そうでなければ、制限を変更しても、その変更に対応できるのは、その変更だけです。 フェルト. .プロセスごとのオープンファイル、実行中および待機中のリクエスト、ワーカーごとのCPU秒数、RSSメモリなどのメトリクスは、それらを分類するのに役立ちます。ログは、ハードリミットがいつ有効になったか、その結果サービスが接続を拒否しているかどうかを示してくれます。P95/P99レイテンシーを使ったダッシュボードは、平均値を隠すボトルネックを明らかにします。これらすべてから、私は利用率を平滑化し、待ち行列を減らす実用的なプロセス制限ホスティングを導き出した。 短縮.
短いピークが干渉を起こさないように、私は常にヘッドルームを空けておく。 生成する. .毎月やキャンペーンのピークに向かう場合は、1~2週間前に制限を引き上げ、実際のトラフィックテストを実施します。その後、リソースと攻撃面を最小化するために、制限を厳しくします。このリズムは、経済的にプラットフォームを保護し、同時に中断のリスクを軽減します。積極的な対策を講じることで、サービスウィンドウを最小化し、攻撃サーフェスを最小化することができるからだ。 アップタイム を確保した。
Inodesとファイル数:静かな制限が大きな効果を生む
nofileに加えて、ファイルシステムは イノード そのため、使用するメモリに関係なく、可能なファイル数を増やすことができます。小さなキャッシュ・ファイルやセッション・ファイルがたくさんあるウェブ・プロジェクトは、すぐにここでつまづく。私はdf -iをチェックし、古い遺物、ローテーションの残骸、テンポラリディレクトリを片付け、必要であればファイルシステムの構造を調整する。CMSキャッシュを統合したり、メモリ内に配置することで、inodeとIOプリントの負荷を同時に軽減する。詳細、背景情報、戦略については、以下のガイドを参照されたい。 inodeを理解する ホスティング練習のためにトピックを開発した人 アンロック.
inodeが少ない場合は、ファイル記述子の上限を高くするだけでも有効です。 何も. .そのため、ログのローテーションを明確にし、デバッグの冗長性を制限し、めったに使われない成果物をアーカイブストレージに移動するようにしている。ビルド・パイプラインは、デプロイメントが徐々にinodeリザーブを食いつぶすことがないように、アーティファクトを整理する必要もある。このような衛生管理は、長期的にリミットを安定させ、トラブルシューティングの時間を大幅に節約する。inodeをきれいに表示することで、予期せぬエラーを防ぐことができる。 ダウンタイム.
典型的なエラーメッセージの的を絞った修正
開いているファイルが多すぎる」というメッセージは、ほとんどの場合、ファイルの数が足りないことを示している。 ファイルなし. .シェルで一時的にリミットを増やし、効果を確認してから、limits.confとsystemdの値を調整する。spawn時に „resource temporarily unavailable “が表示される場合は、nprocのリミットが原因であることが多い。PHPスクリプトがハングするようであれば、memory_limit、max_execution_time、CGI/FPM用にホスティングセットアップが許可しているCPU秒数もチェックする。チェーンに沿ってボトルネックを排除し、ある場所のスイッチが新しい ブレーキ 別のポジションで生成される。.
このようなエラーが散発的に発生する場合、私は時間や負荷の状況を判断するためにメトリクスの相関関係を調べます。 キャッチ. .同時接続数のピーク、バックエンドエラーの増加、DNSルックアップの長さなどが良い指標となる。次に、影響を受けるサービスのリミットを個別にチェックし、有効な値を特定する。コンフィギュレーションが正しいのにエラーが残っている場合は、ファイルハンドルのリーク、欠陥のあるウォッチャー、不要なオープンソケットを探します。段階的な制限を行うことで、時間を節約し リスク 故障の再発.
性能と安全性のスマートなバランス
私は決して制限を無制限に増やすことはしない。なぜなら、広すぎる隙間は攻撃を受ける可能性があるからだ。 拡大する. .ブルートフォースやDoSのシナリオは、他の制御が行われていない場合、高すぎる制限から利益を得ます。そのため、私はウェブサーバーとアップストリームで、制限をレート制限、バックオフ戦略、クリアタイムアウトと組み合わせている。上限を厳しく設定することで、正当なピークが発生することはあっても、悪用がエスカレートすることがないようにしています。こうすることで、私は、ウェブサーバーとアップストリームを危険にさらすことなく、可用性を確保することができます。 コントロール を失う。.
日常生活では、段階的なコンセプトが有効である。 レビュー. .デプロイメント、トラフィックキャンペーン、季節的な負荷がわかっていれば、プロアクティブに制限を計画することができます。私は、すべての変更を日付、理由、測定値とともに文書化し、後の分析に影響を与えないようにしています。このカタログは、将来の決定を迅速化し、作業の重複を防ぎます。パフォーマンスとセキュリティが向上するのは、意思決定が以下に基づいて行われるからです。 データ をベースにしています。
ホスティングパッケージの評価:何に気をつけるべきか?
私は、CPUとRAMだけでなく、明示的にホスティングオファーをチェックしています。 上限 プロセス、ディスクリプタ、CPU秒数。nproc、nofile、および該当する場合はinodeクォータに関する具体的な詳細は、容量を正しく見積もるのに役立ちます。ショップやAPIについては、PHPのFPMプロセス、CPUバジェット、リクエストによるリミットの増加について、透明性のあるコミットメントを求めます。VPSや専用環境は私に主権を与えてくれますが、操作のための賢明なデフォルト値もここでは重要です。明確な数値が失望を防ぎ、移行を軌道に乗せる ストレート.
| プラン | プロセスリミット (nproc) | ファイル(ノーファイル) | RAM/プロセス | CPU時間 | 適合性 |
|---|---|---|---|---|---|
| 初心者 | 32-64 | 4096-8192 | 256~512 MB | 5-600 s | 小規模サイト |
| 事業内容 | 64-128 | 16384-65536 | 512~1024 MB | 600-3600 s | ショップ、API |
| VPS/専用 | 設定可能 | 設定可能 | 必要に応じて | 必要に応じて | 高負荷 |
簡単にまとめると
まず実質的な稼働率を測定し、それからリフトアップする。 バウンダリー を段階的に変更し、待ち時間、エラー率、スループットへの影響をチェックする。コアとなるスイッチは、ファイル/ソケットはnofile、プロセス/スレッドはnprocで、fsize、stack、cpuで補っている。limits.confとsystemdユニットで一貫してパーマネントな値を設定し、サービスが同一のフレームワーク条件を持つようにしている。PHP-FPMについては、プロセス数、メモリ、キューをファイル記述子の制限と密接に同期させている。監視、inodeの衛生管理、そして常識的な上限値によって、ホスティングのセットアップを負荷の低い状態に保っている。 信頼できる そして手応えがある。.


