Рубрики
Uncategorized

Размышления об ошибке настройки задачи синхронизации

Автор оригинала: David Wong.

фон

Деловой человек сказал, что система не может войти в систему, поэтому программист попытался успешно войти в систему. Он был уверен, что “мой код в порядке”, поэтому попросил делового человека попробовать еще раз. Затем бизнес-персонал успешно приземляется, но слишком отстает для всей системы. Этот программист понимает, что система представляет собой проблему.

Шаги по устранению неполадок

Из-за новых функций, только что запущенных в Интернете, я думаю о конфигурации задачи синхронизации, которая может быть неправильной конфигурацией задачи синхронизации, что приводит к тому, что PHP запускает слишком много процессов.

Используйте команду ps-ef | grep php Это правда, что существует много ненужных сценариев обновления данных, которые предполагают взаимодействие со сторонним интерфейсом и большое количество операций обновления базы данных, поэтому это напрямую приводит к зависанию системы.

Используйте команду crontab -l Проверьте конфигурацию crontab. Существует несколько сценариев, частота выполнения которых должна быть настроена на выполнение один раз в час. В результате конфигурация неверна, что приводит к выполнению раз в минуту. Подробности заключаются в следующем:

#Misconfiguration
* */1 * * * /usr/local/bin/php /data/site/demo/yii demo/sync-product

#Correct configuration
0 */1 * * * /usr/local/bin/php /data/site/demo/yii demo/sync-product

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

ps -ef | grep php | awk '{print $2}' | xargs kill -9

После выполнения система начинает восстанавливаться.

Отражение

В конце концов, не стоит тщательно настраивать crontab.

В то же время возникают и некоторые другие мысли, которые сводятся к следующему:

Система внезапно кажется застрявшей. Каковы общие идеи по устранению неполадок?

  1. Чтобы просмотреть использование памяти: бесплатные игры
  2. Для просмотра использования диска: df -h
  3. Для просмотра использования дискового ввода-вывода:/| iostat-dx Чтобы просмотреть загрузку процессора:
  4. вверху

Конкретная настройка системы в этой статье не рассматривается.

Основное использование команды awk

Часто используемые команды

Awk 'condition type 1 {action 1} condition type 2 {action 2}...' filename

За Awk следуют две кавычки и фигурные скобки, чтобы задать действие обработки, которое вы хотите выполнить с данными.

Например, если мы хотим удалить IP-адрес учетной записи и логин и разделить их с помощью [tab], то:

[[email protected]_02 ~]$ last -n 5 | awk '{print $1 "\t" $3}'
release    117.111.111.11
release    117.111.111.11
release    117.111.111.11
release    117.111.111.11
release    117.111.111.11

Awk также имеет некоторые встроенные переменные

NF Общее количество полей, принадлежащих каждой строке
Н-Р Какой линией в настоящее время занимается awk
ФС Текущий разделитель, для которого по умолчанию используется пробел

Продолжите с приведенным выше примером. Требования таковы:

  • Перечислите номер счета каждой строки
  • Отображает количество обрабатываемых в данный момент строк
  • Укажите, сколько полей в этой строке
[[email protected]_02 ~]$ last -n 5 | awk '{print $1 "\t lines:" NR "\t columns:"NF}'
release     lines:1     columns:10
release     lines:2     columns:10
release     lines:3     columns:10
release     lines:4     columns:10
release     lines:5     columns:10

Команда awk имеет более расширенные функции, которые здесь не будут представлены.

Основное использование конфигурации crontab

Правила настройки crontab следующие:

minute   hour   day   month   week   command

Значение каждого поля заключается в следующем:

Минута: минута, диапазон значений: целое число от 0 до 59

Час: час, диапазон значений: целое число от 0 до 23

День: дата, диапазон значений: целое число от 1 до 31

Месяц: месяц, диапазон значений: целое число от 1 до 12

Неделя: день недели, диапазон значений: целое число от 0 до 7, Здесь 0 или 7 означает воскресенье

Команда: выполняемая команда может быть системной командой или файлом сценария, написанным вами.

Специальные символы:

Звездочка (*): указывает все значения

Запятая (,): вы можете указать диапазон списка со значениями, разделенными запятыми, например “1,2,6,7”

Средняя полоса (-): средняя полоса между целыми числами может использоваться для представления целого диапазона, например, “1-3” означает “1,2,3”

Прямая косая черта (/): вы можете использовать прямую косую черту, чтобы указать частоту интервалов времени, например, “0-23/2” означает каждые два часа. В то же время косая черта вперед может использоваться со звездочкой, например */10. Если он используется в поле минута, это означает, что он выполняется каждые десять минут.

Некоторые распространенные примеры

Example 1: Execute command every 1 minute
Order:
* * * * * command
 
Example 2: the 3rd and 15th minute of each hour
Order:
3,15 * * * * command
 
Example 3: in the 3rd and 15th minutes from 8am to 11am
Order:
3,15 8-11 * * * command
 
Example 4: every two days from 8:00 a.m. to 11:00 a.m. on the 3rd and 15th minutes
Order:
3,15 8-11 */2 * * command
 
Example 5: every Monday from 8:00 a.m. to 11:00 a.m. in the 3rd and 15th minutes
Order:
3,15 8-11 * * 1 command
 
Example 6: restart SMB at 21:30 every night 
Order:
30 21 * * * /etc/init.d/smb restart
 
Example 7: restart SMB at 4:45 on the 1st, 10th and 22nd of each month 
Order:
45 4 1,10,22 * * /etc/init.d/smb restart
 
Example 8: restart SMB at 1:10 on Saturday and Sunday
Order:
10 1 * * 6,0 /etc/init.d/smb restart
 
Example 9: restart SMB every 30 minutes between 18:00 and 23:00 every day 
Order:
0,30 18-23 * * * /etc/init.d/smb restart

Справочный материал

Как проверить Linux Caton

Отдельная комната Linux bird для базового обучения версия 3 – Глава 12.4.2

Исходная ссылка

Https://tsmliyun.github.io/2019/10/16/thinking вызвано ошибкой настройки задачи синхронизации/