Сайт не работает с MySQL во время выполнения скрипта, записывающего в базу MySQL. Как исправить?
Есть чужой скрип, загружающий данные в интернет-магазин из локального xml-файла. Всё работает на VPS с BitrixVM 7.5 (nginx, apache, mysql 5.7.35-38, php 5.6, 2 ядра, 2 гига) Сайт в целом летает.
Но есть проблема: во время работы того скрипта вообще не открываются страницы сайта.
Но в тоже время:
- На сайте быстро открывает статика через nginx
- Быстро работают файлы php, не использующие базу данных (phpinfo моментально выводится)
Результаты моих исследований:
Команда mysql
SHOW PROCESSLIST;показывает, что висит один процесс. Но если его убить, то страницы сайта всё равно не отрываются.Перезагрузка mysqld не помогает - страницы сайта не открываются.
После перезапуска mysqld apache начинает загружать процессор на 25%. И невозможно выполнить
service httpd restart- висит. Но если сделатьkillпроцесса с apache, то всё сразу отвисает (и не надо трогать mysqld).По совету коллеги я посмотрел нагрузку на диск с помощью
iotop -okaЭтот показатель в среднем колеблется от 500 до 3000 K/s, очень редко поднимается на секунду до 6000 К/sДействующие переменные MySQL в pastebin: https://pastebin.com/VYE02kXj
Автор скрипта сказал, что нужно настраивать хостинг. Но не дал конкретных инструкций.
И у меня чувство, что залочены таблицы или в настройках хостинга запрещено несколько параллельных обращений к базе данных.
Куратор тега MySQL в аналогичном русскоязычном сервисе тоже считает, что дело в "лочках". И считает это интересной и обширной темой. Спасибо ему за это.
Подскажите, пожалуйста, можно ли настроить MySQL, чтобы наполнение сайта скриптом не блокировало его работу?