Масштабирование сайта PHP - PullRequest
2 голосов
/ 27 сентября 2010

Существует ли стандартное решение для масштабирования сайта, работающее на веб-сервере PHP + Apache?Так как в настоящее время я получаю трафик около 100 000 запросов / день.Через 6 месяцев я ожидаю, что он вырастет до 200 000 запросов в день.Первое решение, которое приходит мне в голову, - это развертывание большего количества веб-серверов Apache с mod_php, но что-то не так с этим.

Есть идеи?

Ответы [ 4 ]

4 голосов
/ 27 сентября 2010

Сначала попробуйте эти два варианта, прежде чем добавлять новые серверы.Они могут позволить вам придерживаться одного сервера, но ваши результаты могут отличаться.

Для ускорения работы сайта, когда вас поражают многие одновременные пользователи, посмотрите на установку расширения APC PECL (http://us2.php.net/manual/en/book.apc.php). APC позволиткэшировать скомпилированную версию ваших сценариев, сохраняя шаг интерпретатора PHP, выполняемого при каждом запуске сценария.

Кроме того, если вы испытываете большую нагрузку на сервер базы данных, изучите установку memcached и кэшированиерезультаты базы данных за определенный период времени, если это возможно (http://us2.php.net/manual/en/book.memcache.php).

Наконец, если вы решите получить отдельный сервер, изучите возможность получения выделенного блока SQL. Это, конечно, предполагает, что ваше приложение является базой данныхтяжелое приложение, как веб-приложения в наши дни. Разделение SQL в отдельном блоке позволяет использовать все ресурсы этого блока с большей кэш-памятью и вычислительной мощностью. Это может быть путь.

3 голосов
/ 27 сентября 2010

У меня нет опыта масштабирования действительно больших веб-сайтов, но я не думаю, что в этом случае вам понадобится масштабировать их на разные серверы. У меня есть браузерная игра с 40.000-60.000 запросов в день, некоторые cronjobs делают много вещей каждые 5 минут и сервер teampeak на небольшом сервере (40 $ / месяц), и до сих пор не было проблем с производительностью. *

1 голос
/ 27 сентября 2010

20.000 запросов / день - это только один раз в пятую секунду, звучит так, будто одна коробка должна справиться с этим просто отлично? Если нет, я бы сначала посмотрел на узкие места в вашем коде. Избыточные вызовы базы данных? Двойные циклы вызовов базы данных, а не простые объединения? Вы что-нибудь кешируете?

Как масштабировать после этого полностью зависит от вашего приложения, как / где вы сохраняете состояние сеанса и т. Д., Общие рекомендации имеют ограниченную применимость.

0 голосов
/ 27 сентября 2010

если вам это нравится, то вы должны были поставить кеш на него

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...