First VDS - Хостинг. Виртуальный выделенный сервер (VDS/VPS) по цене shared хостинга! Root-доступ, панель управления хостингом ISPmanager.

Форум хостинг провайдера firstVDS

VDS-Старт 149р. VDS-Разгон 249р. VDS-Отрыв 399р. VDS-Улёт 599р.
FAQFAQ ПоискПоиск ПользователиПользователи ГруппыГруппы РегистрацияРегистрация ПрофильПрофиль Войти и проверить личные сообщенияВойти и проверить личные сообщения ВходВход
RSS forum version

Ускорить MySQL
На страницу 1, 2, 3  След.
 
Начать новую тему   Ответить на тему    Список форумов firstVDS.ru -> Вопросы о работе сервера
Предыдущая тема :: Следующая тема  
Автор Сообщение
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
Прикольный тест.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
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
Прикольный тест.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
borisd



Зарегистрирован: 16.11.2006
Сообщения: 18

СообщениеДобавлено: Ср Фев 13, 2008 12:32 am    Заголовок сообщения: Ответить с цитатой

gooroo писал(а):

Лично я со своими сайтами переехал, и на новом хостинге чувствую себя отлично. Куда переехал, кому надо скажу в личку, а то ещё сочтут за рекламу...


Скиньте мне пожайлуста в личку, куда вы переехали. А то у меня надежд больше не осталось. Платить 30 евро в месяц за "VDS B" на котором открытие страницы с десятком коротких запросов к БД выполняется более 20 сек, а техсаппорт не отвечает, я более не могу.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов firstVDS.ru -> Вопросы о работе сервера Часовой пояс: GMT + 3
На страницу 1, 2, 3  След.
Страница 1 из 3

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group