web-dev-qa-db-ja.com

同時実行プロセスの最大数

カーネルは、/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
1
MohammedSimba

答えは、数千、数百、または数十になります。それは、コンピューターのリソースとプロセスが実際に何をしているかに依存します。

最善の方法は、サーバーを実行し、リソースを調査し、サーバーの使用状況に基づいてリソースを増やすことです。

リソースは、コンピューターの速度とRAMに大きく依存します。RAMにより、メモリ内のより多くのプロセスを処理できます。一方、速度により、タスクを高速で処理し、次のプロセスに進むことができます。

システムの負荷が1.00の場合(コマンドラインからtopを実行することで確認できます)、基本的には完全な共謀で実行されています。それを超えるものは、コンピューターが追いつくために働いているオーバーフローです。もちろん、負荷が高くなりすぎると、追いつくのに時間がかかり、基本的にロックされます。

ちなみに、1.00はプロセッサごとです。したがって、4コアプロセッサを使用している場合、負荷は4.00でいっぱいになります。

負荷の詳細については、この記事をご覧ください。
http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages

したがって、topなどのアプリケーションで実際に負荷を調べて、サーバーのタイプとトラフィックを実行するために必要なリソースを測定する必要があります思っている。

2
L. D. James

depends以外の答えはありません。

プロセスは何をしますか? RAMを消費せずに何かを待ってスリープしますか?その後、32768プロセスを実行できます。巨大なデータベーステーブルを実行しますか?その後、はるかに少ない。

さらに、ハードウェアによって異なります。クアッドソケット10コアxeonは、ラズベリーよりも高い負荷を処理します...

私のラップトップには266個のプロセスがあり、負荷は0.66で、ほとんどがスリープ状態であることを示しています。

1
vidarlo