фон
Деловой человек сказал, что система не может войти в систему, поэтому программист попытался успешно войти в систему. Он был уверен, что “мой код в порядке”, поэтому попросил делового человека попробовать еще раз. Затем бизнес-персонал успешно приземляется, но слишком отстает для всей системы. Этот программист понимает, что система представляет собой проблему.
Шаги по устранению неполадок
Из-за новых функций, только что запущенных в Интернете, я думаю о конфигурации задачи синхронизации, которая может быть неправильной конфигурацией задачи синхронизации, что приводит к тому, что 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.
В то же время возникают и некоторые другие мысли, которые сводятся к следующему:
Система внезапно кажется застрявшей. Каковы общие идеи по устранению неполадок?
- Чтобы просмотреть использование памяти:
бесплатные игры - Для просмотра использования диска:
df -h - Для просмотра использования дискового ввода-вывода:/| iostat-dx
Чтобы просмотреть загрузку процессора: - вверху
Конкретная настройка системы в этой статье не рассматривается.
Основное использование команды 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 вызвано ошибкой настройки задачи синхронизации/