сайты с большим кол-вом посещений

benadin

Guest
сайты с большим кол-вом посещений

Ситуация: на сервере хоститься пара-тройка сайтов, работающих через один движок. Количество одновременных обращений - до 60-100.

Может ли в этом случае идти речь о динамической генерации страниц "на лету" ?

Динамика позволяет очень гибко строить сайт, одно изменение - автоматически подхватиться на 10-тках различных страниц.

И еще вопрос. С любой информацией очень удобно работать, когда она хранится в БД. В движке и админке можно использовать единый подход изменения, оперирования этими данными. Каким хочешь образом их всегда можно выбрать.... Но... Максимально снабжая гибкостью настроек сайт и его админку, храня все это дело в БД, не используя прегенерацию страниц... Сложная страница выходит производит более 100 запросов к БД. 10 юзверей одновременно - 1000 запросов. Но самое интересное, что вылетает по ошибке
. В момент большого кол-ва обращений на сервер. БД MySQL.

Глобальный вопрос: оправдано ли юзать динамику, да еще и навернутую при большом кол-ве обращений? Сколько реально выдерживает MySQL, и какова ему альтернатива? Юзать генерацию своих файлов вместо БД - мне кажется плоским подходом...
 

.des.

Поставил пиво кому надо ;-)
100 запросов к бд при генерации одной страницы?
 

Voxus

founder (Старожил PHPCluba)
по-моему, либо мигрировать на Interbase/Firebird (либо oracle), либо при каждом изменении базы генерить статику и отдавать ее клиенту, либо подумать над организаций кэш-системы какой-либо..
 

benadin

Guest
А чем плохо много запросов по primary_key?
По словам мануала, MySQL fetch такие queries permanently
 

benadin

Guest
мигрировать на Interbase/Firebird (либо oracle),

А разве они не более требовательны к железу? И выдержат ли такое кол-во одновременных обращений?

И еще интересно, почему вылет происходит именно по указанной ошибке... :-\
 

su1d

Старожил PHPClubа
Может ты просто не те (не так) функции используешь?
У тебя там mysql_result() наверное всё делает? Попробуй через mysql_fetch_array() mysql_fetch_object(), они, как пишут, и побыстрее будут...
 

benadin

Guest
в том то и дело, что я юзаю
mysql_fetch_object()

Но при большом кол-ве обращений начинает вылетать по указанной ошибке. Я уже склоняюсь к тому, что php не корректно работает с MySQL в описанной ситуации. PHP Version 4.2.3

Когда на сайте одновременно 2-3 юзера получают страницы, все работает - суперски.

Когда создавал топик, думал решать трабл глобально - разочароваться в "супер-мощности" MySQL - похоже, слишком много веры и надежд ;) я на него возлагал...
 

su1d

Старожил PHPClubа
поищи ещё разок какой-нибудь косяк в коде.

не только ж ты делаешь большие сайты на MySQL, и если кроме тебя никто не жалуется, значит у всех всё получается =)
 

Barlone

Guest
А операционка какая ? Не windows случайно ? А pconnect не используется ?
 

benadin

Guest
Автор оригинала: su1d
поищи ещё разок какой-нибудь косяк в коде.

не только ж ты делаешь большие сайты на MySQL, и если кроме тебя никто не жалуется, значит у всех всё получается =)
:)

Хм... когда косяк в коде при обновлении страницы не исчезает. А когда из 10-ти раз 1-н, да сглючивает, причем 100% известно, что как раз в этот момент больш. кол-во обращений к серверу... Хм...

Тогда выходит, что именно php, юзая MySQL-ные библиотки, не освобождает память.... Если килять каждый раз процесс Апача для каждого посетителя (эдакая эмуляция cgi), то все начинает явно подтормаживать, проц. загружен, зато ошибки не возникает... Но ведь это не выход???


Вообще, интересно как раз мнение тех, кто пишет большие сайты на MySQL - укажите на тонкие места? И насколько плохо много запросов на странице? Кто имеет опыт подобных разработок?
 

Апельсин

Оранжевое создание
ты pconnect используешь? там была какая-то бага в PHP, вылетала эта ошибка при использовании pconnect..
 

benadin

Guest
конечно, юзаю pconnect... Большое ж кол-во одновременных обращений. Пусть юзают одно соединение... Другое дело, почему оно кривое?

И чем грозит использование connect? Не too many connections error???

2 Апельсин именна эта ошибка?
Commands out of sync ? В какой версии php?
 

confguru

ExAdmin
Команда форума
По логике должно быть макс. 3 запроса на страничке... и все должны быть оптимизированы..
 

benadin

Guest
2 admin
Т.е. запросы вообще считаются тонким местом на страничке?

А чтение из файлов?
 

confguru

ExAdmin
Команда форума
Сделай explain всех своих запросов...
Допиши limit 0,1000 в конец если база
большая...
 

Апельсин

Оранжевое создание
> 2 Апельсин именна эта ошибка?
> В какой версии php?

http://bugs.php.net/bug.php?id=19529
 

benadin

Guest
2 admin
Стоп, до этого кто-то говорил ;) что должно быть вообще лишь 3 запроса на странице максимум? Аргументируй, почему плохо больше???
 

tony2001

TeaM PHPClub
>конечно, юзаю pconnect... Большое ж кол-во одновременных
>обращений. Пусть юзают одно соединение...
это старый баг, не юзай pconnect.
почему он есть - это другой вопрос.
 

Barlone

Guest
Автор оригинала: benadin
И чем грозит использование connect? Не too many connections error???
Этим не грозит, одновременных соединений больше не станет, просто они будут чаще открываться и закрываться.
 
Сверху