Проблемы со script_state // beta 165

Ошибки, глюки и прочие неприятности постить тут

Moderators: dushik, Slim

Post Reply
Дмитрий
Posts: 5
Joined: Mon Apr 10, 2017 5:32 am

Проблемы со script_state // beta 165

Post by Дмитрий »

Привет

Словил неприятную проблему, после обновления стрима с beta 135 -> 165

CentOS 8 /php 7.3.20 / mysql 5.7.34 / galleries 249472

При запуске, script_state первый step проходит нормально, далее перехожу на step 2 и он долго выполняется без какого либо вывода, после 40 минут интерфейс отображается как при битой базе, но без бенера, о битой базе. При этом в СУБД продолжается выполнение проблемного запроса.

В логах стрима есть запись о проблемном запросе в sql.slow

Code: Select all

2021-05-14 12:45:00.881  pid:1620985962465501104 (2021-05-14 11:52:42)  start at: 2021-05-14 11:53:00.5242   time: 3120.357s delete!!!!!!!!!!!!
sql: delete t1 from thumb_srcs as t1 left join thumb_srcs as t2 on t1.src_gal_id=t2.src_gal_id and t1.src_md5=t2.src_md5 and t1.src_thumb_id=t2.src_thumb_id and
 t2.src_pic_md5<>'' where t1.src_grab_job_id=0 and t1.src_pic_md5='' and  not isnull(t2.src_gal_id)
results: 0
   [obfuscated] in file /home/some_user/some_domain.com/www/stream_dir/utils.inc in line 10805
   [obfuscated] in file /home/some_user/some_domain.com/www/stream_dir/admin.php in line 14961
   [obfuscated] in file /home/some_user/some_domain.com/www/stream_dir/admin.php in line 14096
   [obfuscated] in file /home/some_user/some_domain.com/www/stream_dir/admin.php in line 175

таблица thumb_srcs содержит 544395 строк.

При этом в логах scriptstate

Code: Select all

2021-05-14 11:53:00.115  pid:1620985962465501104 (2021-05-14 11:52:42)  stream_db.thumb_srcs src_thumb_id: OK
2021-05-14 11:53:00.524  pid:1620985962465501104 (2021-05-14 11:52:42)  stream_db.thumb_srcs: OK
2021-05-14 12:45:00.881  pid:1620985962465501104 (2021-05-14 11:52:42)  stream_db.thumb_srcs: OK
2021-05-14 12:45:02.120  pid:1620985962465501104 (2021-05-14 11:52:42)  stream_db.thumb_srcs: OK
2021-05-14 12:45:02.120  pid:1620985962465501104 (2021-05-14 11:52:42)  stream_db.searches rz_id: OK
2021-05-14 12:45:02.130  pid:1620985962465501104 (2021-05-14 11:52:42)  stream_db.searches: OK
2021-05-14 12:45:02.130  pid:1620985962465501104 (2021-05-14 11:52:42)  stream_db.antibot_banned_ips cnt: OK
2021-05-14 12:45:02.771  pid:1620985962465501104 (2021-05-14 11:52:42)  stream_db.stats: OK
2021-05-14 12:45:03.473  pid:1620985962465501104 (2021-05-14 11:52:42)  stream_db.stats stats_tag_id: OK
2021-05-14 12:45:03.703  pid:1620985962465501104 (2021-05-14 11:52:42)  stream_db.stats stats_gallery_id stats_tag_id: OK
2021-05-14 12:45:03.703  pid:1620985962465501104 (2021-05-14 11:52:42)  Checking ratings...
2021-05-14 12:45:06.372  pid:1620985962465501104 (2021-05-14 11:52:42)  114 galleries were incorrect rating. dropped statistics
2021-05-14 12:45:06.372  pid:1620985962465501104 (2021-05-14 11:52:42)  Checking pub_date...
2021-05-14 12:45:06.593  pid:1620985962465501104 (2021-05-14 11:52:42)  OK
2021-05-14 12:45:06.593  pid:1620985962465501104 (2021-05-14 11:52:42)  Checking durations...
2021-05-14 12:45:06.758  pid:1620985962465501104 (2021-05-14 11:52:42)  OK
2021-05-14 12:45:06.758  pid:1620985962465501104 (2021-05-14 11:52:42)  Continue...
2021-05-14 12:47:29.740  pid:1620989249856786454 (2021-05-14 12:47:29)  Clearing thumbs dir...
2021-05-14 12:48:26.579  pid:1620989249856786454 (2021-05-14 12:47:29)  Done
2021-05-14 12:48:26.579  pid:1620989249856786454 (2021-05-14 12:47:29)  Checking Local Thumbs...
2021-05-14 12:48:29.741  pid:1620989249856786454 (2021-05-14 12:47:29)  --- scriptstate in progress ---
2021-05-14 12:48:31.642  pid:1620989249856786454 (2021-05-14 12:47:29)  checking was successfully completed
Описание таймингов начиная со step=2:
2021-05-14 11:53:00 - 12:45:00 - работа step=2
2021-05-14 12:47:29 - руками указал в url step=3, так как в интерфейсе нет Continue....
2021-05-14 12:48:31 - восстановилось отображение интерфейса и штатно отобразило репорт по step=3

Для справки, на версии beta 135, отрабатывает минут за 5-6.

Так же уточните, пожалуйста, есть ли более эффективные методы проверки скрипта при таком количестве галерей?
User avatar
dushik
Admin
Posts: 2228
Joined: Sun Sep 03, 2006 4:51 pm

Re: Проблемы со script_state // beta 165

Post by dushik »

привет
я уменьшил необходимое количество записей в thumb_srcs и script state удаляет лишнее. это работает по крону, сразу после апдейта, или во script state. Проверка будет выполняться дольше чем обычно, но это не страшно. Все работает нормально на сайтах с миллионами галь в базе
Дмитрий
Posts: 5
Joined: Mon Apr 10, 2017 5:32 am

Re: Проблемы со script_state // beta 165

Post by Дмитрий »

Но все же, при выполнении в 3120 секунд, 0 вхождений для удаления.
И выполнение step 2 по логике не должно приводить к отвалу интерфейса, так как после пропадает возможность завершить проверку штатно.

Изначально я предполагал, что индексы и плотность данных после обновления нарушены и из-за этого процесс крайне долго выполняется. Тем более у таблицы нет PK. Но после переливки дампа с принудительной перестройкой индексов и уплотнения табличного пространства, результат все тот же, запрос висит в состоянии "Sending data".

Возможно у вас есть рекомендации, для оптимизации/конфигурации СУБД и в частности для более быстрого прохождения "Sending data".

Я понимаю, что этот статус так же зависит от I/O характеристик сервера, но хотелось бы сперва убедится что это не проблема СУБД.

Возвращаясь к теме ключей, я смотрю что профайлер выбирает следующие ключи для обхода src_pic_md5 / src_thumb_id - оптимальный ли это выбор?

Code: Select all

explain delete t1 from thumb_srcs as t1 left join thumb_srcs as t2 on t1.src_gal_id=t2.src_gal_id and t1.src_md5=t2.src_md5 and t1.src_thumb_id=t2.src_thumb_id and t2.src_pic_md5<>'' where t1.src_grab_job_id=0 and t1.src_pic_md5='' and  not isnull(t2.src_gal_id)\G
*************************** 1. row ***************************
id: 1
select_type: DELETE
table: t1
partitions: NULL
type: ref
possible_keys: src_gal_id,src_grab_job_id,src_thumb_id,src_md5,src_pic_md5
key: src_pic_md5
key_len: 98
ref: const
rows: 1114
filtered: 84.31
Extra: Using where
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: t2
partitions: NULL
type: ref
possible_keys: src_gal_id,src_thumb_id,src_md5,src_pic_md5
key: src_thumb_id
key_len: 4
ref: admin_gaychilisr.t1.src_thumb_id
rows: 1
filtered: 5.00
Extra: Using where
Дмитрий
Posts: 5
Joined: Mon Apr 10, 2017 5:32 am

Re: Проблемы со script_state // beta 165

Post by Дмитрий »

Вопрос, решен.
Используя штатные средства скрипта, перевел минорные таблицы в InnoDB (в них же как оказалось входит и thumb_srcs), выполнил реконфигурацию Mysql под оптимальную производительность как для MyISAM так и для InnoDB

И все отработало менее чем за минуту.
Post Reply