У меня Linode VPS объемом 1 ГБ со стандартным стеком LAMP. Apache настроен нормально, но по какой-то причине диск MySQL используется очень часто. Это приводит к очень медленной загрузке сайта. ОЗУ и ЦП в порядке.
Может ли кто-нибудь дать мне какие-либо указания по настройке производительности диска mysql? Я использую InnoDB. Вывод iotop ниже.
Total DISK READ: 38.50 M/s | Total DISK WRITE: 27.20 K/s
TID PRIO USER DISK READ> DISK WRITE SWAPIN IO COMMAND
9808 be/4 mysql 22.40 M/s 0.00 B/s 0.00 % 63.75 % mysqld
10045 be/4 mysql 2.06 M/s 0.00 B/s 0.00 % 26.65 % mysqld
9987 be/4 mysql 1694.38 K/s 0.00 B/s 0.00 % 18.33 % mysqld
10015 be/4 mysql 1554.47 K/s 0.00 B/s 0.00 % 12.71 % mysqld
10019 be/4 mysql 1461.21 K/s 0.00 B/s 0.00 % 5.58 % mysqld
9839 be/4 mysql 1383.48 K/s 0.00 B/s 0.00 % 25.69 % mysqld
10031 be/4 mysql 1243.58 K/s 0.00 B/s 0.00 % 5.68 % mysqld
10023 be/4 mysql 1057.04 K/s 0.00 B/s 0.00 % 2.02 % mysqld
10020 be/4 mysql 1025.95 K/s 0.00 B/s 0.00 % 7.05 % mysqld
10001 be/4 mysql 808.33 K/s 683.97 K/s 0.00 % 1.16 % mysqld
10025 be/4 mysql 746.15 K/s 0.00 B/s 0.00 % 3.28 % mysqld
10043 be/4 mysql 715.06 K/s 0.00 B/s 0.00 % 0.48 % mysqld
10044 be/4 mysql 672.31 K/s 0.00 B/s 0.00 % 5.25 % mysqld
10034 be/4 mysql 668.42 K/s 1989.73 K/s 0.00 % 5.31 % mysqld
9985 be/4 mysql 450.80 K/s 124.36 K/s 0.00 % 8.83 % mysqld
9989 be/4 mysql 357.53 K/s 0.00 B/s 0.00 % 5.21 % mysqld
10033 be/4 mysql 186.54 K/s 0.00 B/s 0.00 % 1.59 % mysqld
10021 be/4 mysql 155.45 K/s 435.25 K/s 0.00 % 1.23 % mysqld
10007 be/4 mysql 124.36 K/s 0.00 B/s 0.00 % 0.53 % mysqld
9763 be/4 www-data 38.86 K/s 0.00 B/s 0.00 % 4.56 % apache2 -k start
10027 be/4 mysql 31.09 K/s 0.00 B/s 0.00 % 4.24 % mysqld
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
4 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:0]
5 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/u:0]
6 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0]
7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/1]
Сначала вы можете проверить журнал slow-query.log на предмет запросов, не использующих индексы.
Во-вторых, не могли бы вы объяснить, сколько ГБ занимает база данных? Мне кажется, что БД довольно большая (по сравнению с 1 ГБ ОЗУ вашей машины с линодом, а сервер базы данных не может обслуживать из пула буферов, ему нужно снова и снова обращаться к диску для данных. Попробуйте увеличить настройку пула буферов, и проверка индексов.