scheffbest 0 Опубликовано: 28 июня Рассказать Опубликовано: 28 июня Система установлена на VPS. Конфигурация: 4x3.4ГГц, 8Гб RAM. И при этом MYSQL её кладёт записывая тысячи файлов в минуту, складывает это всё дело на сервере в папку /home/user/tmp/ Складывает сюда файлы сессий вида: sess_vvudbhidkmpfvedca3eee3t19d С содержимым вида: mobile_disable|i:0;mobile_enable|i:0;state|b:0;referrer|s:1:"/"; Помогает только периодическая очистка этой директории, а именно раз в минуту по крону вычищаю и при этом сайт всё-равно жутко тормозит. В момент зачистки на сайте выводится запись вида: Цитата MySQL Error! MySQL error in file: /engine/modules/functions.php at line 1650 Error Number: 1 The Error returned was: Can't create/write to file '/tmp/#sql-temptable-321-30bc83-133.MAI' (Errcode: 2 "No such file or directory") SQL query: SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM dle_post p INNER JOIN (SELECT DISTINCT(dle_post_extras_cats.news_id) FROM dle_post_extras_cats WHERE cat_id IN ('89','88','86','24','23')) c ON (p.id=c.news_id) LEFT JOIN dle_post_extras e ON (p.id=e.news_id) WHERE approve=1 AND date < '2024-06-28 09:50:20' ORDER BY date DESC LIMIT 0,1 Как понимаю что-то не так с кэшированием, а именно здесь в коде: } else $sql_count = ""; $tpl = new dle_template(); $tpl->dir = TEMPLATE_DIR; $tpl->is_custom = true; $tpl->load_template( $custom_template . '.tpl' ); $sql_select .= " WHERE ".implode(' AND ', $where)." ORDER BY " . $fixed . $news_sort . " " . $news_msort . " LIMIT " . $custom_from . "," . $custom_limit; $sql_result = $db->query( $sql_select ); Самая нижняя строка кода это и есть искомая 1650я. Кто может подсказать, что делать в этой ситуации? Поможет ли обновление до новой версии? Цитата Ссылка на сообщение Поделиться на других сайтах
scheffbest 0 Опубликовано: 28 июня Рассказать Опубликовано: 28 июня Автор В логах сервера выдаёт ошибку: Цитата 1024 worker_connections are not enough while connecting to upstream Увеличение этого числа до 10000 ситуацию никак не меняет... Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 081 Опубликовано: 28 июня Рассказать Опубликовано: 28 июня 6 часов назад, scheffbest сказал: И при этом MYSQL её кладёт записывая тысячи файлов в минуту, складывает это всё дело на сервере в папку /home/user/tmp/ Складывает сюда файлы сессий вида: sess_vvudbhidkmpfvedca3eee3t19d С содержимым вида: mobile_disable|i:0;mobile_enable|i:0;state|b:0;referrer|s:1:"/"; Это PHP сессии а не MySQL. И MySQL тут не причем. PHP создает одну сессию на одного посетителя. Поэтому если у вас тысячи новых файлов в минуту, то это тысячи реальных обращений к сайту от разных клиентов. То есть DDOS. По логам сервера блокируйте в файерволле IP тех кто досит или подключайте сервисы защиты от DDOS атак 6 часов назад, scheffbest сказал: Как понимаю что-то не так с кэшированием, а именно здесь в коде Не правильно понимаете. В момент очистки вы просто удаляете служебных файл MySQL и поэтому получаете ошибку от MySQL сервера. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.