Производительность пхп

clevel

Новичок
Производительность пхп

написал виртуальный магазин на пхп+мускул работает примерно 0.2-2 секунды в зависимости от типа прайс-листа.
Однако при расчете на 20-30 тысяч пользователей в секунду данные показатели не выдерживают критики. Подскажите, плз, как мне добиться данных критериев: может на другом языке написать, либо что-то с железом? Код оптимизирован до предела.
 

Crazy

Developer
Для 30,000 пользователей в секунду тебе нужно серьезное железо (вероятно -- даже кластер) и серьезный софт (IBM Websphere + DB/2, к примеру).

Про PHP в этих случаях нужно просто забыть. И дело здесь вовсе не в нагрузке...
 

clevel

Новичок
Автор оригинала: Crazy
Для 30,000 пользователей в секунду тебе нужно серьезное железо (вероятно -- даже кластер) и серьезный софт (IBM Websphere + DB/2, к примеру).
насчет IBM - у меня конструктор сайтов тоже...

Про PHP в этих случаях нужно просто забыть. И дело здесь вовсе не в нагрузке...
А какие средства программирования(языки) мне использовать? с++?
 

Demiurg

Guest
1500000000 хитов в сутки ?? Это что же за прайсы такие ? На яндексе хитов меньше на 2 порядка.
 

AnToXa

prodigy-одаренный ребенок
1. плохо написал :))) 2 - секунды плохо, 0.2 - хорошо для среднего шопа.
2. магазин 20-30 ТЫСЯЧ В СЕКУНДУ!!!!!! Ты откуда свалился?
считаем загрузку равномерной, тогда получается 2 160 000 000 посетителей в сутки ... 2 миллиарда :))) крутой магазин :)
у озона 5K в сутки
такой нагрузки нету ни у одного сайта :))
3. для нагрузки 20-30 обращений в секунду (их все равно не будет, как ты понимаешь) уже не критично на чем писать, ибо пункт 4.
4. База у тебя тормозит, а не пхп скорее всего, надо структуру базы оптимизировать. Ну и, конечно, юзать всякие примочки реляционных СУБД: views, stored procs, clustered indexes и т.п.
 

HEm

Сетевой бобер
еще в таких случаях используется кеширование
 

Crazy

Developer
Про mod_accel на ТАКИХ объемах можно уже не впоминать -- здесь встрают проблемы совсем иного свойства.

Но все же сдается мне, что если автор треда урежет осетра, то проблема перестанет быть ТАКОЙ страшной... :)
 

AnToXa

prodigy-одаренный ребенок
и какого же ? :)) кроме каналов
почему mod_Accel не вспоминать, как ра наоборот, очень много страниц можно закешировать, но на 30K он умрет все равно :))

у меня на 2xpIII-1.26GHz/1Gb на пустом сервере апач с mod_accel делал 3.2K req/sec на статику закешированную Mod_accel... на порядок меньше чем 30K
 

Crazy

Developer
При таких нагрузках (и, соответственно, требованиях к надежности) придется начать с построения кластера.

Ты можешь представить себе убытки, если при нагрузке 100,000 юзеров в секунду на 10 минут остановить сервер из сбоя? :)

Кроме того, раздать трафик с ОДНОГО компа на 100,000 юзеров в каждую секунду -- весьма нехилая нагрузка. Реально это потребует нескольких каналов к разным провейдерам и коммутации запросов по серверам.

Но, как я уже говорил, хочется верить, что осетра урежут. :)
 

AnToXa

prodigy-одаренный ребенок
ну тут разговор был про 20-30K в секунду :), но это неважно.
с доводами согласен.
а вообще рутить внутрь будет одна циска, думаю хватит(если она новая и крутая), а вот наружу надо хорошие кэш серверы иметь.
 

Crazy

Developer
Шеф, посчитай трафик для 30,000 :) страниц по 20k (скромно), раздаваемых каждую секунду. Почти 600 мегабайт в секунду, не правда ли? :)

Циска должна быть очень новой и очень крутой... :)
 

AnToXa

prodigy-одаренный ребенок
я говорил про входящие запросы :), те, которые http, они не по 20K :))

они где-то по 300 байт :)
 

Crazy

Developer
Это уже проще. Но все равно 9M в секунду -- весьма серьезная нагрузка. И уж точно раскидывать это придется по куче компов. Увязывать сессии, обеспесивать их дублирование и т.п.

Общую стоимость такого магазинчика (железо плюс работа) я оцениваю где-то в лимон баксов... :)
 

AnToXa

prodigy-одаренный ребенок
1. 9 мегов любая для этого сделанная циска потянет за нефиг делать...

2. ага... пару лимонов :)) это хорошо. пусть нам хозяин аутсорснет разработку :)
 

HEm

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

Crazy

Developer
Автор оригинала: HEm
Сдается мне, у парня в предварительных расчетах инет-магазина вкралась ошибка в виде пары лишних нулей а вы это все так серьезно обсуждаете....
Я думаю, что не пара нулей, а три (а то и четыре). :) Но ситуация интересна как упражнение для ума. :)
 

Crazy

Developer
Спор и есть лучшее упражнение для ума. Но все же чуть вернемся к теме: на PHP можно сделать распределение нагрузки по двум серверам с "прилипанием" сессий? Навскидку приходит в голову подход a la Resin -- написание "proxy", который принимает и разбрасывает запросы по серверам, запоминая, какая сессия куда пошла. Но надежность этого вызывает большие сомнения.
 
Сверху