MySQL под Solaris - есть знатоки?
-
- Уже с Приветом
- Posts: 7133
- Joined: 02 Mar 2003 03:28
- Location: 94596
-
- Администратор
- Posts: 17204
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
vovap wrote:Siberian Cableman wrote:Между прочим кто работает медленнее: база возврашяет запрос, или phpBB генерит страницу? Может от этого и плясать?
База, конено.
Насколько вроде удалось разобраться моей тупости phpBB сам по себе с точки зрения нагрузки вообще не при чем.
Нагрузка определяется базой и реал-тайм сжатием страниц бибиотекой сжатия. (страници- то посылаются в сжатом виде и если вспомнить на каком канале мы сидим, только благодаря этому сайт и держится)
Наибольшая проблемма в базой - система поиска. Для ее обеспечения каждый пост при посте парсится на слова. они проверяются по таблице уникальных лексических элементов, если нет - заносятся туда. И ID слов заносятся в таблицу соответствия слов-постов. Потом на этом работает поиск.
Разумеется, такой механизм рождает колоссальный оверхед при каждм посте.
Теперешняя версия MySql имеет вроде уже полнотекстовый поск по мемо полям. Но так как PhpBB абстрагирована от специфики конкретной базы - она его не использует. Если бы удалось переделать поиск под этот механозм - это. вероятно, дало бы очень значительный выигрыш в общей производительности базы.
Я не думаю, что сжатие так много занимает процессорного времени. Основные потребители - phpBBи MySQL. Проблема в том, что ISAPI версия php sucks (об этом сразу предупреждается даже в инструкции) и я вынужден пользовать php.exe. Каждый запрос генерит новый процесс. В сумме они потребляют немало.
Сам поиск (select) работает относительно быстро. Большую нагрузку вызывает редактирование. Приходится убирать все ссылки на слова в старом сообщении и вставлять в таблицу ссылку на каждое слово опять.
Таким образом, просто разнос сайта на два сервера должен дать результат.
Привет.
-
- Уже с Приветом
- Posts: 7133
- Joined: 02 Mar 2003 03:28
- Location: 94596
Privet wrote:Я не думаю, что сжатие так много занимает процессорного времени. Основные потребители - phpBBи MySQL. Проблема в том, что ISAPI версия php sucks (об этом сразу предупреждается даже в инструкции) и я вынужден пользовать php.exe. Каждый запрос генерит новый процесс. В сумме они потребляют немало.
Сам поиск (select) работает относительно быстро. Большую нагрузку вызывает редактирование. Приходится убирать все ссылки на слова в старом сообщении и вставлять в таблицу ссылку на каждое слово опять.
Таким образом, просто разнос сайта на два сервера должен дать результат.
Тогда может мне действительно не возиться с MySQL, а ограничиться Apache+PHP?
"Как выглядит кусок хлеба, зависит от того, голодны вы или сыты"
-
- Уже с Приветом
- Posts: 13724
- Joined: 16 Jan 2001 10:01
Privet wrote: Проблема в том, что ISAPI версия php sucks (об этом сразу предупреждается даже в инструкции) и я вынужден пользовать php.exe. Каждый запрос генерит новый процесс. В сумме они потребляют немало.
Сам поиск (select) работает относительно быстро. Большую нагрузку вызывает редактирование. Приходится убирать все ссылки на слова в старом сообщении и вставлять в таблицу ссылку на каждое слово опять.
Таким образом, просто разнос сайта на два сервера должен дать результат.
...или сузить проблему.
php.exe конечно нехорошо, нерационально, но судя по Вашему описанию, нагрузка происходит внутри определенных запрсов, когда процесс уже создан и загружен.
К тому же мы имеем дело с интенсивной записью в базу....
Мне видится два варианта:
1. MySQL тратит много сил на выполнение операций (запись, пересчет индексов, и т.д.).
2. Процесс записи реализован в сложном алгоритме, и PHP, будучи интерпретатором, "перегревается" на этом коде.
Борис, можно узнать какие процессы "прыгают" в списке отсортированном по CPU usage?
Глобальное решение проблемы было бы в применении очереди заданий на изменение словаря.
Но в любом случае разнос базы и логики должен помочь.
Что же касается поиска спеца - тут нужно присто кого-то назначить волевым решением. Тот кто в это впряжется уже будет задавать конкретные вопросы коллективному разуму.
И еще - мне кажется "торописса не надо!...",
"Лучше день потратим, а потом за 5 минут долетим".
Надобно определиться:
- Где что будет крутиться;
- Как будут переноситься данные (если будут);
- Какие версии ставить;
- Каковы требования данных версий (что добавлять, где брать)
Последние 2 пункта должен IMHO определять исполнитель при поддержке коллективного разума.
-
- Уже с Приветом
- Posts: 286
- Joined: 22 Dec 2000 10:01
- Location: Chicago NW suburbs -> Houston, TX -> Seattle eastside (hurray, hurray, hurray)
Privet wrote:Я не думаю, что сжатие так много занимает процессорного времени. Основные потребители - phpBBи MySQL. Проблема в том, что ISAPI версия php sucks (об этом сразу предупреждается даже в инструкции) и я вынужден пользовать php.exe. Каждый запрос генерит новый процесс. В сумме они потребляют немало.
Сам поиск (select) работает относительно быстро. Большую нагрузку вызывает редактирование. Приходится убирать все ссылки на слова в старом сообщении и вставлять в таблицу ссылку на каждое слово опять.
Таким образом, просто разнос сайта на два сервера должен дать результат.
А может сменить веб-сервер на Win32 apache, и использовать модуль PHP ? тогда от оверхеда, связнанного с созданием процесса на каждый запрос, можно было бы избавиться.
The best way to predict the future is to create it.
-
- Уже с Приветом
- Posts: 7133
- Joined: 02 Mar 2003 03:28
- Location: 94596
mbabayan wrote:Privet wrote:Я не думаю, что сжатие так много занимает процессорного времени. Основные потребители - phpBBи MySQL. Проблема в том, что ISAPI версия php sucks (об этом сразу предупреждается даже в инструкции) и я вынужден пользовать php.exe. Каждый запрос генерит новый процесс. В сумме они потребляют немало.
Сам поиск (select) работает относительно быстро. Большую нагрузку вызывает редактирование. Приходится убирать все ссылки на слова в старом сообщении и вставлять в таблицу ссылку на каждое слово опять.
Таким образом, просто разнос сайта на два сервера должен дать результат.
А может сменить веб-сервер на Win32 apache, и использовать модуль PHP ? тогда от оверхеда, связнанного с созданием процесса на каждый запрос, можно было бы избавиться.
Всё, через пол часа будет Apache+php4+MySQL+phpBB под Solaris 8, спасибо prozaik!
Остаётся вопрос - кто в ближайшее время едет из SF Bay Area в Redmond, WA?
"Как выглядит кусок хлеба, зависит от того, голодны вы или сыты"
-
- Уже с Приветом
- Posts: 1222
- Joined: 02 Jan 2002 10:01
- Location: Bellevue, WA
-
- Уже с Приветом
- Posts: 12014
- Joined: 05 Apr 2000 09:01
- Location: Philadelphia, PA, USA
Privet wrote:Я не думаю, что сжатие так много занимает процессорного времени. Основные потребители - phpBBи MySQL.
Я склонен думать, что время уходит именно на сжатие. В максимуме оно жмет примерно 500КB в секунду - это все-таки прилично. Выяснить точно мы не можем - так как это DLL и она работает под главным процессом, то есть показывается как часть загрузки phpBB.
В сущности это не принципиально - важно разделение нагрузок между WEB частью и базой. 40/60 представляется мне хорошей оценкой.
-
- Уже с Приветом
- Posts: 12014
- Joined: 05 Apr 2000 09:01
- Location: Philadelphia, PA, USA
-
- Уже с Приветом
- Posts: 13724
- Joined: 16 Jan 2001 10:01
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
mbabayan wrote:А может сменить веб-сервер на Win32 apache, и использовать модуль PHP ? тогда от оверхеда, связнанного с созданием процесса на каждый запрос, можно было бы избавиться.
Я думаю, что если это не апач 2, это не поможет. Так как апач 1.3 все равно на каждого клиента порождает процесс. На Юниксе это нормально, на Win32 нужно то же самое делать на тредах. Вроде Апач 2 так и сделан, хотя я win32 особо не интересуюсь.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 286
- Joined: 22 Dec 2000 10:01
- Location: Chicago NW suburbs -> Houston, TX -> Seattle eastside (hurray, hurray, hurray)
f_evgeny wrote:mbabayan wrote:А может сменить веб-сервер на Win32 apache, и использовать модуль PHP ? тогда от оверхеда, связнанного с созданием процесса на каждый запрос, можно было бы избавиться.
Я думаю, что если это не апач 2, это не поможет. Так как апач 1.3 все равно на каждого клиента порождает процесс. На Юниксе это нормально, на Win32 нужно то же самое делать на тредах. Вроде Апач 2 так и сделан, хотя я win32 особо не интересуюсь.
Точно уже не помню, но по моему Апач 1.3 на вине делал это тредами.
Апач 2 - точно не порождает новых процессов, недавно его ставил и конфигурил под него РНР, правда для девелопмента, а не продакшн.
The best way to predict the future is to create it.
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
mbabayan wrote:Точно уже не помню, но по моему Апач 1.3 на вине делал это тредами.
Апач 2 - точно не порождает новых процессов, недавно его ставил и конфигурил под него РНР, правда для девелопмента, а не продакшн.
В 1.3 - процессы. Я уверен, а завтра еще и проверю на работе.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 7133
- Joined: 02 Mar 2003 03:28
- Location: 94596
f_evgeny wrote:mbabayan wrote:Точно уже не помню, но по моему Апач 1.3 на вине делал это тредами.
Апач 2 - точно не порождает новых процессов, недавно его ставил и конфигурил под него РНР, правда для девелопмента, а не продакшн.
В 1.3 - процессы. Я уверен, а завтра еще и проверю на работе.
Можете глянуть доки вот здесь http://66.127.248.52/ (пока не снесли)
![Wink ;)](./images/smilies/icon_wink.gif)
"Как выглядит кусок хлеба, зависит от того, голодны вы или сыты"
-
- Уже с Приветом
- Posts: 1222
- Joined: 02 Jan 2002 10:01
- Location: Bellevue, WA