カーネルは、/proc/sys/kernel/pid_max
で最大32768のプロセスIDをサポートできると言いますが、サーバーがリソースについて文句を言うことなく、またはサーバーをハングさせることなく同時に処理できるプロセスの数は、
私はそれが各プロセスの動作とリソースの必要性に依存することを知っていますが、Ram、キャッシュ、CPUコアなどのいくつかのパラメータを持つ方程式のようなものはありますか?
編集:
私のサーバーは、次の仕様でLinodeでホストされています。
RAM: 12 GB
CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
cpu MHz : 2499.970
cache size : 4096 KB
Cores: 6 cores
サーバーには、アプリケーションを実行する古いバージョンがいくつかありますが、
Apache 2.2
mysql 5.5
php 5.3
php5-fpm
答えは、数千、数百、または数十になります。それは、コンピューターのリソースとプロセスが実際に何をしているかに依存します。
最善の方法は、サーバーを実行し、リソースを調査し、サーバーの使用状況に基づいてリソースを増やすことです。
リソースは、コンピューターの速度とRAMに大きく依存します。RAMにより、メモリ内のより多くのプロセスを処理できます。一方、速度により、タスクを高速で処理し、次のプロセスに進むことができます。
システムの負荷が1.00の場合(コマンドラインからtop
を実行することで確認できます)、基本的には完全な共謀で実行されています。それを超えるものは、コンピューターが追いつくために働いているオーバーフローです。もちろん、負荷が高くなりすぎると、追いつくのに時間がかかり、基本的にロックされます。
ちなみに、1.00はプロセッサごとです。したがって、4コアプロセッサを使用している場合、負荷は4.00でいっぱいになります。
負荷の詳細については、この記事をご覧ください。
http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
したがって、topなどのアプリケーションで実際に負荷を調べて、サーバーのタイプとトラフィックを実行するために必要なリソースを測定する必要があります思っている。
depends以外の答えはありません。
プロセスは何をしますか? RAMを消費せずに何かを待ってスリープしますか?その後、32768プロセスを実行できます。巨大なデータベーステーブルを実行しますか?その後、はるかに少ない。
さらに、ハードウェアによって異なります。クアッドソケット10コアxeonは、ラズベリーよりも高い負荷を処理します...
私のラップトップには266個のプロセスがあり、負荷は0.66で、ほとんどがスリープ状態であることを示しています。