большое количество запросов к php скрипту приводит сервер к зависанию.

123av

Новичок
большое количество запросов к php скрипту приводит сервер к зависанию.

Доброго времени суток , есть проект счетчика , на данный момент количество пользователей сервиса очень высоко , в связи с чем , количество запросов к скрипту , очень высокое , и сервер регулярно стал виснуть , т.е. загрузка CPU на все 100% , причем загрузка может длиться очень долго , сам же CPU это 2х ядерный Xeon , вот возник вопрос , как в таком случае быть ? ведь счетчики от других сервисов , типа Google Analytics не виснет от большого наплыва пользователей.
 

Активист

Активист
Команда форума
> На форуме с: Feb 2002

google://MySQL NDB
google://Load Balance PHP
google://Оптимизация кода PHP
google://Кластер
google://Nginx

-~{}~ 02.09.10 13:28:

Ну еще можно почитать
google://MySQL Replication Load Balance
 

zerkms

TDD infected
Команда форума
какой глупый совет. не надо NoSQL выставлять панацеей всем новичкам.

ведь счетчики от других сервисов , типа Google Analytics не виснет от большого наплыва пользователей.
омг, как нескромно сравнивать себя и гугл )))

по вопросу - на абстрактный вопрос "как быть" есть только абстрактный ответ - "работать лучше". для начала - выполнить профилирование кода. посмотреть загрузку CPU/IO серверов.
 

zerkms

TDD infected
Команда форума
Активист
он не знает что такое профайлинг => он новичок.
 

123av

Новичок
понравилась идея Load Balancing вот тут http://httpd.apache.org/docs/current/misc/rewriteguide.html , только как быть с базой mysql она ведь должна быть общей.
 

zerkms

TDD infected
Команда форума
123av
перед тем как решать проблему - нужно разобраться в источнике проблемы.
 

Активист

Активист
Команда форума
123av
Если БД и код оптимизирован (в чем я очень сомневаюсь), и действительно, сейчас тормозит именно MySQL, то нужно определится, что именно тормозит.

1. Если тормозят запросы на запись, нужен дедик MySQL и апгрейд железа, тонкая настройка MySQL

2. Если тормозят запросы на чтение нужно - оптимизировать запросы, если она максимально оптимизированы, то либо апгрейд железа, либо еще одно железо - организовать репликацию, читать со Slave, записывать в Master
> google://MySQL Replication Load Balance

-~{}~ 02.09.10 14:19:

Да, проблема может быть и в IO (смотреть можно через мстат, топ или както-то еще), если затыкаются винты - организовать raid, какой уровень решать самим.

Если проблема в винтах, то можно и Storage Device приобрести.

Под субд можно и отдельные винты завести в массиве, если оно сейчас на одном винте.

-~{}~ 02.09.10 14:20:

Сначала нужно найти узкое место, в общем.
 

Splurov

Новичок
Профайлером посмотри какие операции в скрипте сколько занимают времени и от этого отталкивайся.

Что вообще скрипт делает кроме инсерта записи о посетителе в базу?
 

Gas

может по одной?
Раз у вас "проект счетчика", то хиты не должны записываться через динамику, нужно самым простым/быстрым способом их куда-то закинуть, а потом уже разгребать асинхронно и писать в базу.

Вот была подобная темка - http://phpclub.ru/talk/showthread.php?s=&threadid=119370
 

123av

Новичок
к сожалению на хостинге я не имею возможности доустанавливать софт , ножен такой , чтобы работал без установки.
 

dimagolov

Новичок
счетчик на хостинге... мегажесть.

123av, начни с выделенного сервера, без этого, на виртуалках профилировать что-либо почти что бесполезно, разве что скрипты и запросы можно посмотреть.
 

Alexandre

PHPПенсионер
однозначно проблема в архитектуре.
Раз у вас "проект счетчика", то хиты не должны записываться через динамику, нужно самым простым/быстрым способом их куда-то закинуть, а потом уже разгребать асинхронно и писать в базу.
однозначно,
я бы вообще счетчик делал на основе анализа логов сервера. Было у меня где-то решение на основе nginx (клики считало для банерки).
 
Сверху