Переезд MySQL с localhost на выделенную машину

Тема в разделе "Базы данных", создана пользователем Black Hat, 10 сен 2015.

Модераторы: latteo
  1. Black Hat

    Black Hat Постоялец

    Регистр.:
    15 май 2015
    Сообщения:
    107
    Симпатии:
    69
    Добрый день!
    Проблема в том, что сейчас в мускул на одну страницу идет 20 тыс запросов (переделать/оптимизировать не предлагайте, это исключено). Такая страница одна, но она критичная.

    Переезд MySQL с localhost на выделенную машину - хорошо, но есть сомнения что это поможет именно в этом случае. На локалхосте пересылка результатов - практически моментальная, а если вынести на отдельную машину - то будет задержка сети. Умножаем это на 20 тыс и получается кругленькая сумма.
    У кого есть опыт - это так? И как-то можно максимально снизить эту задержку? Что если это будет на одной физической машине, а внутри нее - на разных виртуальных?
     
  2. primehostnet

    primehostnet Постоялец

    Регистр.:
    28 июн 2015
    Сообщения:
    98
    Симпатии:
    17
    в рамках одного дц, по гигабитному порту вы этого не заметите особо.
    Так же посомтрите в сторону кеширования самой страницы, построения этой страницы с использованием ajax, то есть сначала отобразить самую нужную страницу, а потом уже доп инфо подгружать.
    Ипредложу задуматься о логике построения этой страницы. Скорее всего у вас кривые запросы или кривой код, который делает кучу запросов в цикле, более чем уверен что это все можно сделать куда более оптимальней.
    Если что пилите в лс по оптимизации.
     
    Black Hat нравится это.
  3. nejtr0n

    nejtr0n Постоялец

    Регистр.:
    24 янв 2014
    Сообщения:
    95
    Симпатии:
    38
    Варианты по приоритету:
    1) Кеш запросов
    2) Виртуализация с выделенным сервером под бд (у меня так на OpenVz было сделано)
    3) VPN между машиной и сервером бд (имхо уменьшит накладные расходы на установку соединения)
     
    Black Hat нравится это.
  4. Black Hat

    Black Hat Постоялец

    Регистр.:
    15 май 2015
    Сообщения:
    107
    Симпатии:
    69
    Оптимизировать тут нечего, ибо это штатная функция битрикса, а в ядре ковырять - неблагодарное дело. И аякс не поможет, так как этот аякс и тупит.
    Кеш запросов работает на ура, практически все с него. В слоу лог ничего не падает, уже было профилирование.
     
  5. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.401
    Симпатии:
    1.182
    Оптимизировать можно всё и не всегда нужно лезть в ядро, если ответы от сервера не меняются в течении определённого и известного времени, то кешировать можно на уровне сервера nginx/apach с хранением в рам - настроить сложно, но скорость рулит.
    Если машина в твоей локальной сети, может выгореть. Переносить на впс или дедик очень мало смысла и в очень редких случаях.
    Виртуальные машины на виртуализацию очень сильно забирают ресурсы - скорее всего будет медленнее. Совсем недавно ставил эксперимент с виртуальным диском подключаемым к основной ОС - падение вполне заметно (мерял CrystalDiskMark). В общем случае виртуалки это скорее способ равномерного разделения ресурсов на множество пользователей или относительно безопасного выполнения подозрительного софта.

    Очень часто скорость БД упирается в диск. И зная это, в похожем вашему случае выносил бд на рам диск SoftPerfect RAM Disk ... и оказалось, что проблема в слабом процессоре ;) Но для такого хака необходимо стабильное питание и периодические бекапы на винт.
     
    Black Hat и Renny нравится это.
  6. nejtr0n

    nejtr0n Постоялец

    Регистр.:
    24 янв 2014
    Сообщения:
    95
    Симпатии:
    38
    Можно поспорить.
    Согласно сайту OpenVZ, накладные расходы на виртуализацию очень малы, и падение производительности составляет всего 1-3 %, по сравнению с обычными Linux-системами. Хоть и виртуализация условная. Можно попробовать сделать master/slave и забалансировать нагрузку между ними ну или смонтировать mysql/data в оперативку =)
    Ну а вообще, битрикс в топку!
     
    Black Hat нравится это.
  7. Black Hat

    Black Hat Постоялец

    Регистр.:
    15 май 2015
    Сообщения:
    107
    Симпатии:
    69
    Там пересчет. Меняется. Либо с головой и ногами в ядро лезть, либо наращивать железо.
    Уже сайт (php + mysql) крутится под виртуальной машиной, причем от микрософта. Сейчас идея сделать еще одну машину на SSD и перетащить туда мускул.
    Может просто engine=memory (там без транзакций)? Но все равно исключено. This is Bitrix!