Ускорение MySQL на Ubuntu Server переносим базу данных в оперативную память. #46
Ускоряем MySQL перенеся его в оперативную память
для ускорения быстродействия mysql достаточно поменять его местоположение на хосте
для контроля скорости запишем 100000 строк в базу данных
сервер на платформе lga 1156 с процессором xeon x3460
таблицы mysql хранятся на жестком диске (дисках, там рейд конечно же)
контроль нагрузок при помощи утилит htop и lm-sensors, php скрипт записи в таблицу на синем фоне
в ходе записи в таблицы mysql системные ресурсы фактически не загружены
единственное, что длилось долго - время записи, в итоге 4 часа 28 минут
делаем запрос и убеждаемся, что записано 100000 строк
скорость записи составляет, в среднем, 6 строк в секунду
ссылки на статьи описывающие перенос mysql в оперативную память в ссылках под видео
там даже есть рекомендация по автоматизации процесса и способы вернуть все обратно
лично я просто переустановил MySQL
создаем папку для хранения таблиц в оперативной памяти
sudo mkdir /tmp/tempramdisk
примонтируем каталог и, заодно, выделяем предельно доступное для таблиц место
sudo mount -t tmpfs -o size=5G tmpfs /tmp/tempramdisk/
место резервируется не все сразу, а по мере необходимости
переносим таблицы в оперативную память
sudo mv /var/lib/mysql /tmp/tempramdisk/mysql
создаем символическую ссылку на диск в оперативной памяти
sudo ln -s /tmp/tempramdisk/mysql /var/lib/mysql
предоставляем mysql права на действия в примонтированном диске
sudo chown mysql:mysql /tmp/tempramdisk/mysql
перезапускаем сервер mysql
/etc/init.d/mysql restart
запускаем проверку состояния сервера аналогичную контрольной
загрузка потоков стремится к 40%, в оперативной памяти занято дополнительно около 350 мегабайт
времени на запись ушло 37 секунд
проверяем сколько записано строк и выясняем что тоже 100000
количество сторок в записанных в таблицу составляет 3283 в секунду
прирост скорости составил ТРИ ПОРЯДКА (!!!)
первый и главный вывод - можно получить большой прирост производительности на любом оборудовании
достаточно просто задуматься каким образом и где происходит общение процессора с данными