web-dev-qa-db-ja.com

prefork + ruid2の速度、限られたメモリでより多くの接続

現在、WHM/Cpanelを備えたサーバーでApacheを使用しており、現在、Mod Ruid2を備えたPrefork MPMを使用してPHPページを処理しています。セットアップでは非常に高速に実行できますが、マシンには8 GBのRAMがあるため、同時に処理できるHTTP要求は約80に制限されています。

グーグルはそれに満足していないと思う。私は自分のウェブサイトとサーバーが時代に遅れないようにしたいので、一度に処理できるリクエストの最大数を増やす必要があります。

そこで、PHP-FPMでFastCGIを使用することを考えました。それから、httpd.confを(もちろん自分のプライベートテストサーバーで)遊んで、複数のユーザー用に設定する方法を確認しました。各ユーザーは、サーバー上に独自のドメインを持っています。

今のところ、1人のユーザーの構成を示しています。彼のウェブサイトは127.0.0.1:81です。 /daemonは、ユーザーデーモンがアクセスできるフォルダーです。

これは、php-fpmデーモンを実行するときに適用するphp fpm構成ファイルです。

[global]
pid = /daemon/x.pid
daemonize = yes
[www]
user = daemon
group = daemon
listen = /daemon/x.sock
listen.owner=daemon
listen.group=daemon
listen.backlog = 65534
pm = static
pm.max_children = 10
pm.max_requests = 10000
pm.status_path = /STAT
request_terminate_timeout = 100s
clear_env = no
security.limit_extensions=.php

これは私のhttpd.confファイルのスニペットです

<virtualhost 127.0.0.1:81>
AddHandler php51 .php 
Action php51 /php51
Alias /php51 /daemon/1
FastCgiExternalServer /daemon/1 -socket /daemon/x.sock -pass-header Authorization -idle-timeout 120 -flush
<Directory "/daemon">
Order allow,deny
Allow from all
</Directory>
ServerName 127.0.0.1
</virtualhost>

私がしたいのは、これらの行を圧縮して、マルチユーザー設定を行うときに入力する量が少なくなるようにすることです。

冗長性があると感じたため、次のものを交換しました。

Alias /php51 /daemon/1
FastCgiExternalServer /daemon/1 -socket /daemon/x.sock -pass-header Authorization -idle-timeout 120 -flush

で:

# Alias /php51 /daemon/1
FastCgiExternalServer /php51 -socket /daemon/x.sock -pass-header Authorization -idle-timeout 120 -flush

apacheを再起動してphpファイルにアクセスしようとしましたが、ファイルが見つからないと言われましたが、ファイル自体を変更したことはなく、両方のテストで同じURLを使用しました。

また、Apacheログで、次の情報を受け取りました:

File does not exist: /usr/local/Apache2/htdocs/php51

削除したとき:

<Directory "/daemon">
Order allow,deny
Allow from all
</Directory>

「許可が拒否されました」を受け取りました。

Preforkをruid2で使用する場合、この構成をすべて追加する必要はありませんでした。

外部サーバーの定義に加えて、アクション、エイリアスを定義する以外に、使用できる最小構成がありますか? Apacheがすべてのメモリを消費することなく、CPUを消費することなく処理できる接続の数を増やしたいし、PHPも使用できるようにしたい。

2
Mike

その投稿にはかなり多くの質問があります。

マルチユーザー設定を行うと、入力する量が少なくなります。

それは問題を解決する方法ではありません。新しいユーザーのオンボーディングを行うべき他のことはすでにたくさんあります。 WHM/Cpanelはvery基本ツールであり、Webサーバーを設定するための専門知識や時間を持っていない基本的なWebサイトを実行している人向けに設計されています。このような設定の小さなブロックをコピー、編集、貼り付けるのにかかる時間が心配な場合は、allの解決方法について考える必要があります新しいアカウント/サービスを設定する手順。スクリプトを作成する必要があります。

LinuxまたはUnix(MSWindowsでもスクリプトをセットアップできますが、lotより多くの作業)、スケルトンWebサイトを構成し、ApacheとPHP-FPMに伝え、 DNSとメールレコードの追加、MySQLデータベースとユーザーの設定など、すべて簡単なシェルスクリプトから。そして、変更する必要があるコンテンツの量は無関係です。

グーグルはそれに満足していないと思う

リクエストを処理する能力がある限り、Googleはパフォーマンスについてあまり気にしません(はい、ランキングに影響しますが、非常に小さいです)。 OTOHユーザーはlotをもっと気にします。

PHP-FPMは、サーバーアーキテクチャの根本的な再署名を必要とせずに、容量とパフォーマンスの問題に対処する合理的な方法です。

Apacheがすべてのメモリを消費することなく、CPUを消費することなく処理できる接続の数を増やしたいし、PHPも使用できるようにしたい。

それはここで賢明に答えられるものではありません-その方法は広すぎます。大部分は容量ではなくパフォーマンスに関するものですが、 この本 を使用すると、インフラストラクチャをより有効に活用する方法をより深く理解できます。付属のWebサイトには、 容量 に関するガイダンスがさらにいくつかあります。

1
symcbean