 |
 |
Форум хостинг провайдера firstVDS
|
 |
|
|
|
|
 |
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
gooroo
Зарегистрирован: 26.01.2008 Сообщения: 7
|
Добавлено: Чт Фев 07, 2008 1:52 pm Заголовок сообщения: Ускорить MySQL |
|
|
Уважаемые форумчане!
Постигла и меня эта проблема - очень медленный MySQL.
Читал я форум на эту тему, и вот что нашёл:
Проблемы со скоростью обмена данными между субд и скриптами
Скорость запросов в MySQL слабовата
стартовая пауза на сайтах php/mysql
Блин все пишут о проблемах, но никто не написал как её решили. Этой темой я решил исправить этот недостаток.
У меня всё бы хорошо, только скорость MySQL ниже всяких допустимых пределов, время ответа от сервера начинается от 5 секунд, а на самом деле где-то в среднем 10-15 секунд держится.
Проанализировал конфигурацию, обнаружил, что самым узким звеном является работа MySQL.
Провёл этот тест (Проблемы со скоростью обмена данными между субд и скриптами) на своём сервере:, вот результаты:
| Цитата: |
Тест "скорости обмена информацией в установленном соединении с базой данных №1"
Текущий результат: 14.6461099189
Результат П3-933 186 - 195мс
Результат соответствует П3 - 12
Тест "скорости исполнения ПХП кода"
Текущий результат: 0.170785009995
Результат П3-933 84 - 88мс
Результат соответствует П3 - 459 |
Выделенные значения - это почти средние. Выше 70 значение в этом тесте никогда не поднималось, в среднем - 10-20.
Изначально настройки MySQL были следующими:
# The MySQL server
[mysqld]
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
Изменил на такие:
# The MySQL server
[mysqld]
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512M
read_buffer_size = 256K
read_rnd_buffer_size = 512K
net_buffer_length = 8K
thread_stack = 256K
Время изменилось в среднем ну где-то секунды на две (усреднённые данные) - т.е. задержка стала от 3 до 7 секунд примерно, средняя - 5-7 секунд так и держится. Это к сожалению тоже весьма и весьма плохо.
Подскажите пожалуйста, есть ли какие-нибудь ещё варианты улучшить работу MySQL на выделенных серверах тарифного плана VDS-Разгон?
Будет ли лучше, если заказать выделенный сервер MySQL (т.е. купить ещё один VDS и использовать его только для MySQL, а на основном сервере оставить только веб-сервер?)
Задал эти вопросы в суппорт, жду ответа, отпишусь здесь. А пока жду, может кто-то скажет свои соображения по поводу сабжа? как можно ускорить MySQL?
Я использую mysql 5-й версии и mysqli - расширение php. Но думаю это ни на что влиять особо не должно... _________________ Мой блог - http://andyceo.ruware.com |
|
| Вернуться к началу |
|
 |
John_Lepikhin Консультант
Зарегистрирован: 29.05.2005 Сообщения: 64
|
Добавлено: Чт Фев 07, 2008 2:13 pm Заголовок сообщения: Re: Ускорить MySQL |
|
|
| gooroo писал(а): |
Изменил на такие:
# The MySQL server
[mysqld]
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512M
read_buffer_size = 256K
read_rnd_buffer_size = 512K
net_buffer_length = 8K
thread_stack = 256K |
Таким образом, вы разрешили MySQL'ю использовать 50Gb (гигабайт) памяти. Когда MySQL запросит больше памяти, чем есть на VDS - получит отказ. Ему придётся аварийно завершиться, без сохранения каких-либо данных.
Что за переменные вы изменили и на что они влияют, написано здесь:
http://dev.mysql.com/doc/refman/5.0/en/memory-use.html
| Цитата: |
| Подскажите пожалуйста, есть ли какие-нибудь ещё варианты улучшить работу MySQL на выделенных серверах тарифного плана VDS-Разгон? |
Да, к сожалению даже коммерческие программы и скрипты очень часто отличаются не оптимальной работой с БД. И универсальных советов нет. Но рассказать в двух словах "что, как и почему" можно сделать в вашем случае - я тоже не могу. Этому посвящена отдельная большая глава в документации к MySQL:
http://dev.mysql.com/doc/refman/5.0/en/optimization.html
Кроме того, по этой теме издано множество книг. По оптимизации БД есть отдельная категория в нашей поддержке. |
|
| Вернуться к началу |
|
 |
gooroo
Зарегистрирован: 26.01.2008 Сообщения: 7
|
Добавлено: Чт Фев 07, 2008 3:08 pm Заголовок сообщения: |
|
|
| Цитата: |
| Таким образом, вы разрешили MySQL'ю использовать 50Gb (гигабайт) памяти. |
*всхлипнул и вернул всё обратно...
про указанные Вами ссылки знаю, ходил и даже читал :), но за один день специалистом по мускулу не станешь... поэтому и создал эту тему.
на достигнутом я не остановился. Установил на два компа себе XAMPP и начал играться с вышеупомянутым тестом. Один комп - ноутбук 1.5ГГц/1Гб, а второй - старый Celeron 300Mhz/128Mb.
Вот что дают результаты этого теста на данных машинах:
Ноутбук:
| Цитата: |
Тест "скорости обмена информацией в установленном соединении с базой данных №1"
Текущий результат: 0.270781918274
Результат П3-933 186 - 195мс
Результат соответствует П3 - 641
Тест "скорости исполнения ПХП кода"
Текущий результат: 0.0172310338135
Результат П3-933 84 - 88мс
Результат соответствует П3 - 4548 |
Среднее значение работы с MySQL примерно 700.
Старый комп:
| Цитата: |
Тест "скорости обмена информацией в установленном соединении с базой данных №1"
Текущий результат: 12.9260590125
Результат П3-933 186 - 195мс
Результат соответствует П3 - 13
Тест "скорости исполнения ПХП кода"
Текущий результат: 0.925923990402
Результат П3-933 84 - 88мс
Результат соответствует П3 - 85 |
Среднее значение работы с MySQL примерно 10.
XAMPP везде использовался тот же самый, как установил - так и потестил, без каких-либо дополнительных настроек.
Выводы? MySQL 5 крайне неинтересен на слабых машинах, да... но вот ведь! "Слабая" машина, всего лишь где-то лет 8 назад, была довольно современной, и я на ней вовсю резался в Carmageddon 2 с друзьями, и она работала нормально... столько было эмоций! :) А сейчас какой-то вшивый запрос там выполняется с ужасающими тормозами.. Во времена!
А также утешающие выводы в пользу FirstVDS, ресурсы действительно отдаются один-в-один, ни больше не меньше... что радует и огорчает одновременно. :) шутка. _________________ Мой блог - http://andyceo.ruware.com |
|
| Вернуться к началу |
|
 |
gooroo
Зарегистрирован: 26.01.2008 Сообщения: 7
|
Добавлено: Чт Фев 07, 2008 3:21 pm Заголовок сообщения: Ответыы поддержки |
|
|
Вот что советует поддержка:
| Цитата: |
| В основном загрузка зависит от количества запросов к базе, да, как вариант, можно взять отдельный сервер под MySQL |
| Цитата: |
| вы можете попробовать дефрагментировать оптимизировать хранилище, обновить статистику и отсортировать индексы. Перед тем, как будете что-либо делать с базой, создайте резервную копию. |
вызывает некоторое сомнение - заказывать ли дополнительный сервер под MySQL или лучше проапгрейдить текущий, выбрав тариф VDS-Отрыв например. Т.е. в каком случае выигрыш по производительности будет больше?
Оптимизировать скрипты и БД я не вижу смысла - мои сайты используют CMS DRUPAL. Да, он отличается конечно завышенными требованиями к ресурсам, но я не предполагал что до такой степени... но я это к тому говорю, что хоть я и не чайник (но и не спец) в PHP и MySQL, оптимизировать что-то ещё я уже вряд ли смогу.
Итак, остаётся два варианта, как я вижу:
1) Заказ отдельного VDS под MySQL (в этом случае, посоветуйте пожалуйста его конфигурацию)
2) Наращивание мощности уже имеющегося сервера (так же, посоветуйте пожалуйста, оптимальную конфигурацию)
Задача - чтобы задержка при открытиии сайтов была не больше 3 секунд. Сейчас на моих сайтах совокупная посещаемость не более 100 уникальных посетителей в сутки.
и ещё один вопрос хочу спросить, чтобы не создавать отдельную тему...
Можно ли каким-то образом взять полный образ диска моего VDS? я хочу дома поиграться с настройками, на виртуальной машине, например скомпилировать Апач для использования с Subversion, а на рабочем сервере делать этого не хочу. А нужна именно текущая конфигурация сервера, я бы её потестил например под разными скоростями процессора, размером оперативки, потестил бы на предмет стойкости к увеличению кол-ва запросов...
можно такое провернуть? _________________ Мой блог - http://andyceo.ruware.com |
|
| Вернуться к началу |
|
 |
garry Консультант
Зарегистрирован: 07.12.2002 Сообщения: 2137 Откуда: FirstVDS
|
Добавлено: Чт Фев 07, 2008 4:58 pm Заголовок сообщения: |
|
|
сменить друпл на что-нибудь более быстрое (не делающее по 150 запросов к базе для генерации одной страницы)
или перенести этот сайт на шаред хостинг
не подходит ?
насчет образа, можете скопировать нужный вам шаблон с http://download.ispsystem.com/FreeBSD-6.3/i386/VDSmanager/DiskTemplate/
и распаковать его, получится ваш первоначальный вдс, хотя и не настроенный. |
|
| Вернуться к началу |
|
 |
gooroo
Зарегистрирован: 26.01.2008 Сообщения: 7
|
Добавлено: Чт Фев 07, 2008 8:25 pm Заголовок сообщения: |
|
|
| Цитата: |
сменить друпл на что-нибудь более быстрое (не делающее по 150 запросов к базе для генерации одной страницы)
или перенести этот сайт на шаред хостинг
не подходит ? |
Не подходит.
Чё-то я не пойму одной вещи. что, так ужасно всё у вас с MySQL что ли? На друпал работают одни из самых посещаемых сайтов интернета, кроме того там есть кеширование, к БД Друпал обращается только один раз чтобы взять кеш, если он есть.
Да и ещё. Вот обновлённые данные теста на вышеуказанном "старом компе", сделанные как ни странно это звучит - через другой браузер:
| Цитата: |
Тест "скорости обмена информацией в установленном соединении с базой данных №1"
Текущий результат: 1.73278891469
Результат П3-933 186 - 195мс
Результат соответствует П3 - 100
Тест "скорости исполнения ПХП кода"
Текущий результат: 0.116452990295
Результат П3-933 84 - 88мс
Результат соответствует П3 - 673 |
Среднее значение работы с MySQL - 100.
сначала я запускал скрипт под файерфоксом, а он когда ждал результатов работы, подвисал, и тормозил систему, в результате чего не все ресурсы использовались Апачем и Мускулом. Когда запустил из IE, результаты изменились.
часа два назад сменил свой тарифный план на VDS-улёт. Так НИКАКОГО, абсолютно никакого увеличения быстродействия НЕТ и в помине! Есть увеличение быстродействия PHP, а с БД - как была задница, так и есть.
Вот результаты теста:
| Цитата: |
Тест "скорости обмена информацией в установленном соединении с базой данных №1"
Текущий результат: 8.44948210748
Результат П3-933 186 - 195мс
Результат соответствует П3 - 21
Тест "скорости исполнения ПХП кода"
Текущий результат: 0.091559914917
Результат П3-933 84 - 88мс
Результат соответствует П3 - 856 |
Среднее значение работы с MySQL - 15-20.
Ребят, работать будем? вы вообще в клиентах заинтересованы? Если да, то не нужно мне отписок писать в виде "оптимизировать" БД в 20Мб, ага, чего её оптимизировать... к тому же дело не в движке, а сами видите в чём.
На что годен вообще ваш хостинг VDS, при таком ужасающем положении с работой с БД? Даже на Улёте? Слов нет.
У вас платная поддержка? не вопрос! я плачу деньги, вы делаете мне достойную работу сервера. Хотя это получается что я должен платить чтобы получить уже оплаченные ресурсы, интересно получается...
И вообще - почему я на старом компе конфигурации НИЖЕ, чем VDS-Улёт, получаю ресурсов на порядки БОЛЬШЕ, чем на вашем МАКСИМАЛЬНОМ VDS? Это как понимать? объясните мне пожалуйста. _________________ Мой блог - http://andyceo.ruware.com |
|
| Вернуться к началу |
|
 |
John_Lepikhin Консультант
Зарегистрирован: 29.05.2005 Сообщения: 64
|
Добавлено: Пт Фев 08, 2008 3:40 am Заголовок сообщения: |
|
|
| Ответил в поддержке. Вы скриптом мерите не CPU и не производительность VDS в целом, а скорость работы с TCP-сокетами. |
|
| Вернуться к началу |
|
 |
medin
Зарегистрирован: 14.01.2008 Сообщения: 0
|
Добавлено: Пт Фев 08, 2008 6:04 am Заголовок сообщения: |
|
|
| gooroo, плиз держите в курсе. Очень интересна тема. |
|
| Вернуться к началу |
|
 |
gooroo
Зарегистрирован: 26.01.2008 Сообщения: 7
|
Добавлено: Сб Фев 09, 2008 3:05 am Заголовок сообщения: |
|
|
А чего тут ещё сказать, поддержка сработала верно. Спасибо, john, конечно за ответ, только мне от этого легче не стало...
Лично я со своими сайтами переехал, и на новом хостинге чувствую себя отлично. Куда переехал, кому надо скажу в личку, а то ещё сочтут за рекламу...
Я пытался соединяться не через сокеты, а через TCP/IP, результат был примерно таким же - среднее время доступа увеличилось, но разброс между максимумом и минимум уже не был таким большим. Но потом мне надоело считать среднеквадратичные отклонения и когда же мой сайт соизволит загрузиться и я быстренько собрал вещички и был таков. (Тест, поскольку он меряет эффективность сокетов, показывал одинаковые результаты как на VDS-Старт, так и на VDS-Улёт.) Вот данные, кому интересно (тариф VDS-старт, скрипт теста тот же самый. данные означают на этот раз КОЛИЧЕСТВО СЕКУНД, сколько скрипт потратил на работу с БД, я подумал что это нагляднее.)
| Цитата: |
TCP/IP socket
12 4
2 3
2 1
3 2
2 2
4 3
2 3
3 6
2 2
2 2
3 2
2 5
9 2
25 2
2 2
2 2
2 2
4 2
8 2
5 5
6 2
2 2
2 6
2 2
2 3
4 3
3 6
4,33 2,89
608 54,67 |
первый столбец - это когда использовал соединение с БД через TCP/IP, второй - когда через сокеты. предпоследняя строчка = среднее значение в столбце, последняя строчка - среднеквадратичные отклонения от среднего значения (сумма квадратов).
Кстати, VDS как DNS-хостинг весьма пригодился - настроил нужные NS-записи и сайт без простоев живёт на новом месте.
Так что для себя могу констатировать - даже на VDS-Улёт не особо посещаемый небольшой сайт на Друпале не пойдёт - мой блог (в подписи) открывался где-то в среднем секунд через пять, а то и на 20 и больше была задержка. меньше секунды не было никогда. сейчас после переезда - задержка больше секунды мне кажется уже очень долгой :)
Не отрицаю, VDS может пригодится для кучи других полезных вещей.. почта, DNS, ещё что-нибудь. место на диске. сервисы какие-то. вполне. Пока оставил себе VDS-Старт, посмотрю как его можно использовать.
Одно непонятно... откуда задержки с сокетами???? почему очередь большая??? она что, одна на все VDS на физическом сервере? что за технология виртуализации используется? у меня под VMWare нормально вполне себе живёт линукс, и не жалуюсь на задержки, скрипт померил и на виртуальной машине. чудеса...
так что такой вот себе опыт. кому-то может пригодится. поддержке спасибо за ответы. _________________ Мой блог - http://andyceo.ruware.com |
|
| Вернуться к началу |
|
 |
borisd
Зарегистрирован: 16.11.2006 Сообщения: 18
|
Добавлено: Пн Фев 11, 2008 1:07 pm Заголовок сообщения: |
|
|
| VDS-ы на FirstVDS и даже на ISP server не очень годятся для динамических сайтов и коммерческого использования. С сожалением могу констатировать, что переход на ISP Server тоже проблему с тормозами не решил. Имхо, проблема упирается в дисковую подсистему (во время тормозов банальное копирование файлов в консоли замедляется в десятки раз). В целом, конечно, на ISPServer VDS-ы работают стабильней и быстрее, днем практически все устраивает, но... сразу после полуночи начинается замедление работы в десятки раз. По-видимому на материнском сервере начинаются бэкапы и прочие профилактические работы. Однако сайты типа джумлы с 14 запросами к БД на страницу или на Джанго с 6-ю запросами становятся в это время практически неработоспособными (страницы открываются более 7 сек, что неприемлемо - платные клики с директ-яндекс пропадают в пустую, проблемы с индексацией поисковиками, etc). Более-менее приемлемо в это время работает только статичный html. Частично проблему решил установкой обратного кеширующего прокси в Апаче, но это решение годится далеко не для всех сайтов. |
|
| Вернуться к началу |
|
 |
garry Консультант
Зарегистрирован: 07.12.2002 Сообщения: 2137 Откуда: FirstVDS
|
Добавлено: Пн Фев 11, 2008 1:23 pm Заголовок сообщения: |
|
|
да да бэкапы, есть мысль вообще не делать централизованные бэкапы, а возложить заботу о сохранности данных на плечи пользователя ...
либо делать, но не каждый день, а раз в неделю, в выходной, когда нагрузка минимальна. |
|
| Вернуться к началу |
|
 |
leppa
Зарегистрирован: 21.01.2008 Сообщения: 15 Откуда: Киев
|
Добавлено: Пн Фев 11, 2008 2:59 pm Заголовок сообщения: |
|
|
| garry писал(а): |
| да да бэкапы, есть мысль вообще не делать централизованные бэкапы, а возложить заботу о сохранности данных на плечи пользователя ... |
...и все пользователи поставят время бекапа в какое-нибудь стандартное время (типа, 00:00) и сервак в это время будет опять под завязку загружен :) _________________ Regards, Lёppa <contacts[at]homes[dot]kiev[dot]ua>
Laugh now, cry later. © Everlast
Прикольный тест. |
|
| Вернуться к началу |
|
 |
garry Консультант
Зарегистрирован: 07.12.2002 Сообщения: 2137 Откуда: FirstVDS
|
Добавлено: Пн Фев 11, 2008 4:34 pm Заголовок сообщения: |
|
|
Во первых не факт что все поставят, ведь бэкапить на свой же сервер смысла особого нету, а внешнее место для бэкапов стоит дополнительных денег. Кому-то они вообще не нужны.
Во вторых как показывает практика часовые пояса на разных вдс отличаются, и нагрузка будет растянута по времени.
чем больше рассуждаю на эту тему, тем она мне больше начинает нравится ... :) ждите ... |
|
| Вернуться к началу |
|
 |
leppa
Зарегистрирован: 21.01.2008 Сообщения: 15 Откуда: Киев
|
Добавлено: Пн Фев 11, 2008 6:30 pm Заголовок сообщения: |
|
|
| garry писал(а): |
| ...ведь бэкапить на свой же сервер смысла особого нету, а внешнее место для бэкапов стоит дополнительных денег. |
| garry писал(а): |
| Во вторых как показывает практика часовые пояса на разных вдс отличаются, и нагрузка будет растянута по времени. |
да, этого я не учел :) _________________ Regards, Lёppa <contacts[at]homes[dot]kiev[dot]ua>
Laugh now, cry later. © Everlast
Прикольный тест. |
|
| Вернуться к началу |
|
 |
borisd
Зарегистрирован: 16.11.2006 Сообщения: 18
|
Добавлено: Ср Фев 13, 2008 12:32 am Заголовок сообщения: |
|
|
| gooroo писал(а): |
Лично я со своими сайтами переехал, и на новом хостинге чувствую себя отлично. Куда переехал, кому надо скажу в личку, а то ещё сочтут за рекламу...
|
Скиньте мне пожайлуста в личку, куда вы переехали. А то у меня надежд больше не осталось. Платить 30 евро в месяц за "VDS B" на котором открытие страницы с десятком коротких запросов к БД выполняется более 20 сек, а техсаппорт не отвечает, я более не могу. |
|
| Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2002 phpBB Group
|