WedX - журнал о программировании и компьютерных науках

Сценарий оболочки для автоматического отключения процессов сна mysql

Как мы убиваем процессы сна mysql, такие как:

+------+-----------+-----------+------------------------+---------+------+----------------+-------------------------------------------------------------------------------------------+
| Id   | User      | Host      | db                     | Command | Time | State          | Info                                                                                      |
+------+-----------+-----------+------------------------+---------+------+----------------+-------------------------------------------------------------------------------------------+
| 2477 | stageuser | localhost | jj_production_11102013 | Query   |    0 | end            | SELECT * FROM wp_comments WHERE blog_id = 1071 ORDER BY comment_date_gmt DESC LIMIT 0, 50 |
| 3050 | stageuser | localhost | jj_production_11102013 | Query   |    0 | Sorting result | SELECT * FROM wp_comments WHERE blog_id = 1071 ORDER BY comment_date_gmt DESC LIMIT 0, 50 |
| 3052 | stageuser | localhost | jj_production_11102013 | Sleep   |  336 |                | NULL                                                                                      |
| 3056 | stageuser | localhost | NULL                   | Query   |    0 | NULL           | show processlist                                                                          |
| 3057 | stageuser | localhost | jj_production_11102013 | Sleep   |  301 |                | NULL                                                                                      |
| 3058 | stageuser | localhost | jj_production_11102013 | Sleep   |  299 |                | NULL                                                                                      |
| 3059 | stageuser | localhost | jj_production_11102013 | Sleep   |  298 |                | NULL                                                                                      |
| 3061 | stageuser | localhost | jj_production_11102013 | Sleep   |  273 |                | NULL                                                                                      |
| 3068 | stageuser | localhost | jj_production_11102013 | Sleep   |  251 |                | NULL                                                                                      |
| 3072 | stageuser | localhost | jj_production_11102013 | Sleep   |  233 |                | NULL                                                                                      |
| 3111 | stageuser | localhost | jj_production_11102013 | Sleep   |    1 |                | NULL                                                                                      |
+------+-----------+-----------+------------------------+---------+------+----------------+-------------------------------------------------------------------------------------------+
11 rows in set (0.00 sec)

Эти процессы сна влияют на производительность сайта, как замедление других запросов?

18.11.2013


Ответы:


1

Я сделал это.

Создайте файл kill_sleep.sh

mysql -u<user> -p<password> -h<host> -e "select concat('KILL ',id,';')  into outfile '/tmp/sleep_processes.txt' from information_schema.processlist where Command = 'Sleep'"
mysql -u<user> -p<password> -h<host> -e "source /tmp/sleep_processes.txt;"
rm -rf /tmp/sleep_processes.txt

И установите kill_sleep.sh для работы cron.

18.11.2013
  • Похоже на атаку с помощью SQL-инъекции во сне. Попытка найти источник атаки может быть хорошей идеей. saotn.org/mysql-sleep-attacks 20.05.2016
  • mysql -u -p -e показать список процессов; | grep Sleep | awk '{print $ 1}' | пока читал LINE; сделать mysql -u -p -e kill $ LINE; Выполнено 04.11.2017
  • Привет! Можете ли вы предоставить обновление, чтобы использовать это в mariadb 10.5? 01.10.2020

  • 2

    Ответ Вишала хорошо работает, если вы запускаете команду на сервере MySQL, но он не будет работать, если вы подключаетесь к серверу удаленно или если у вас нет разрешения на запуск SOURCE или SELECT ... INTO OUTFILE (например, Amazon RDS) . Однако можно переписать его, чтобы не полагаться на эти функции, и тогда он будет работать где угодно:

    mysql -h<host> -u<user> -p -e "SELECT CONCAT('KILL ',id,';') FROM information_schema.processlist WHERE Command = 'Sleep'" > sleep.txt
    cat sleep.txt | xargs -I% mysql -h<host> -u<user> -p -e "%"
    
    23.02.2014

    3

    Синтаксис:

    KILL thread_id
    

    В твоем случае:

      mysql > KILL 3057
    

    Но для того, чтобы удалить все спящие процессы, нельзя использовать одну команду, вам нужно пройти через весь список процессов, взяв все процессы в таблице tmp и перебрав их:

    select concat('KILL ',id,';') from information_schema.processlist where Command='Sleep';
    
    select concat('KILL ',id,';') from information_schema.processlist where Command='Sleep' into outfile '/tmp/a.txt';
    

    Направлено с здесь

    18.11.2013
  • @Jhamvi Я уже пробовал это, он показывает только процессы сна. Например ‹pre› ›выберите concat ('KILL', id, ';') из information_schema.processlist, где user = 'stageuser'; + ------------------------ + | concat ('УБИТЬ', id, ';') | + ------------------------ + | УБИТЬ 3477; | | УБИТЬ 3072; | | УБИТЬ 3068; | | УБИТЬ 3061; | | УБИТЬ 3059; | | УБИТЬ 3058; | | УБИТЬ 3057; | | УБИТЬ 3056; | | УБИТЬ 3052; | | УБИТЬ 3050; | | УБИТЬ 2477; | + ------------------------ + 11 рядов в наборе (0,00 сек) ‹/pre› 18.11.2013
  • @VishalKamal, он покажет только процесс сна, вам нужно разобрать цикл, какой язык вы используете ?? 18.11.2013
  • @VishalKamal, я имею в виду, используете ли вы какой-либо язык программирования, чтобы вы могли использовать цикл и запускать запрос, используя этот язык ?? 18.11.2013
  • php, мне нужен сценарий оболочки Linux, который автоматически убивает все процессы сна. 18.11.2013
  • @VishalKamal, используя одну команду, это невозможно в оболочке Linux, требуется 2-3 запроса, обратитесь к это 18.11.2013
  • Хорошо, спасибо, Джанви, я попробую создать сценарий оболочки, используя два запроса. 18.11.2013
  • ОШИБКА 1109 (42S02): неизвестная таблица 'processlist' в information_schema 06.08.2014

  • 4

    Инструменты Percona:

    pt-kill --match-command Sleep --idle-time 100 --victims all  --interval 30 --kill
    

    Это обнаружит все соединения, которые находятся в состоянии «сна» и бездействуют в течение 100 секунд или более, и уничтожит их. --interval 30 заставит его делать это каждые 30 секунд. Итак, вы можете открыть экран -S ptkill, затем на этом экране выполните указанную выше команду, затем ctrl-A, D, чтобы отсоединить и выйти из терминала, и он просто продолжит очищать ваши соединения.

    https://www.percona.com/doc/percona-toolkit/2.1/pt-kill.html

    16.03.2016

    5

    Легкий способ:

    for i in `mysql -e "show processlist" | awk '/Sleep/ {print $1}'` ; do mysql -e "KILL $i;"; done
    
    10.08.2020
    Новые материалы

    Как создать диаграмму градиентной кисти с помощью D3.js
    Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

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

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


    Для любых предложений по сайту: [email protected]