Веб-сайты Railo не могут подключиться во время резервного копирования MySQL

У меня есть еженедельная резервная копия, которая выполняется для одной из моих баз данных mysql для одного из моих веб-сайтов (ccms). Эта резервная копия составляет около 1,2 ГБ, и ее выполнение занимает около 30 минут.

Когда эта резервная копия базы данных запускается, все мои другие веб-сайты railo не могут подключиться и отключаются на время резервного копирования.

Одна из ошибок, которые мне удалось поймать, была:

"[show] railo.runtime.exp.RequestTimeoutException: request (:119) is run into a
timeout (1200 seconds) and has been stopped. open locks at this time (c:/railo/webapps/root/ccms/parsed/photo.view.cfm,
c:/railo/webapps/root/ccms/parsed/profile.view.cfm, c:/railo/webapps/root/ccms/parsed/album.view.cfm,
c:/railo/webapps/root/ccms/parsed/public.dologin.cfm)."

Я считаю, что происходит то, что таблицы, необходимые для этих страниц (веб-сайт «ccms»), блокируются из-за резервного копирования, что достаточно справедливо.

Но почему это приводит к тайм-ауту других веб-сайтов railo? Например, ошибка, которую я вставил выше, на самом деле была взята с другого веб-сайта, а не с веб-сайта «ccms», на который она ссылается в ошибке. Любой веб-сайт, который я пытаюсь запустить, терпит неудачу и выдает ошибку, которая ссылается на веб-сайт «ccms», для которого выполняется резервное копирование. Как этого избежать?

Мы будем очень признательны за любое понимание. Спасибо


person Paolo Broccardo    schedule 17.02.2014    source источник


Ответы (1)


Одна из возможностей заключается в том, что, поскольку ваш тайм-аут составляет 20 минут, каждый раз, когда на сайт, для которого выполняется резервное копирование, поступает запрос, этот поток блокируется в ожидании БД.

У Railo есть пул рабочих потоков для обработки запросов, и сейчас один из них занят. Поскольку запросы продолжают поступать, любые запросы к затронутому сайту связывают другой поток. В конце концов в пуле больше нет воркеров, и все последующие запросы ставятся в очередь для обработки, как только воркеры становятся доступными.

Я не специалист по отладке Railo, но вышеизложенное кажется мне правдоподобным. Вы можете рассмотреть возможность запуска разных процессов Railo для разных сайтов, что изолирует их или резко снизит время ожидания БД (если это приемлемо).

person barnyr    schedule 17.02.2014
comment
Спасибо - это имеет смысл. Я посмотрю на это. - person Paolo Broccardo; 20.02.2014