Неприятные пики ЦП, которые не связаны ни с какими видимыми процессами

У меня была такая проблема и я подозревал, что что-то связано с настройкой прокси-сервера, которая не работает для некоторых из доступов из CPAN ... Не смотрел глубже, но попробуйте проверить этот поток сообщества ActiveState, чтобы узнать, помогает ли он вам. Будет снова появляться, чтобы узнать, есть ли полезные ответы для нас обоих :-)

7
задан 8 July 2012 в 21:28

54 ответа

Я думаю, что это проблема ядра. Я бы вернулся к официально протестированной версии.

0
ответ дан 2 August 2018 в 04:35

Есть несколько недавно исправленных ошибок, которые могут исправить эту проблему. Если вы работаете в Ubuntu, я бы посоветовал придерживаться ядра Ubuntu, чтобы получать исправления через регулярные обновления. Я бы рекомендовал установить Lucid для поддержки и стабильности. Вы можете пойти с Maverick, если есть функции, о которых вы знаете, которых нет в Lucid, которые вам нужны.

1
ответ дан 4 August 2018 в 21:10

Чтобы получить вывод из top, который вы можете сохранить: top -b -n1

Вставьте это в cronjob, и вы сможете просмотреть подробный список процессов даже после устранения проблемы. Пример записи в crontab:

* * * * * top -b -n1 > /tmp/top_output_$(date +%Y-%m-%d_%H:%M:%S)

Это сохранит его в одном файле в минуту в / tmp

1
ответ дан 4 August 2018 в 21:10

«Процессор загружается на 80-90% во всех ядрах примерно на 5 минут»

Такое большое использование может позволить вам точно определить виновника с помощью pidstat, доступного в пакете sysstat.

Просто запустите pidstat -u | sort -nr -k 7,7 | head -10, и процесс, который использовал больше всего процессоров, должен быть в верхней строке.

3
ответ дан 4 August 2018 в 21:10

Я бы попытался найти причину проблемы с помощью некоторого сценария оболочки:

#!/bin/sh
MAXLOAD=100
CURRLOAD=`uptime | sed 's@.*load average: \([^,]*\).*@\1@' | sed 's@0\?.0\?@@'`

if [ $CURRLOAD -gt $MAXLOAD ]; then                                             
  ps -eo tid,pcpu,comm | sort -n -k 2 | tail -n 5 | \
    mail -s "High load" -e your@addre.ss
fi

В сценарии есть две переменные MAXLOAD и CURRLOAD. Первый из них должен быть высокой нагрузкой, умноженной на 100. Так что, если вы столкнетесь с пиковым значением и увидите, что нагрузка на систему возрастает до 2 или 3, то вам следует установить для MAXLOAD значение около 200. $CURRLOAD принимает выход uptime ищет нагрузку и удаляет точку, а также начальные нули.

Если нагрузка в какой-то момент слишком высока, она распечатывает пять процессов с наибольшей загрузкой ЦП и отправляет их в your@addre.ss.

Этот скрипт должен помочь вам найти причину всплеска, и, если вы знаете это, вы, возможно, сможете решить вашу проблему.

2
ответ дан 4 August 2018 в 21:10

Я думаю, что это проблема ядра. Я бы вернулся к официально протестированной версии.

0
ответ дан 4 August 2018 в 21:10

Есть несколько недавно исправленных ошибок, которые могут исправить эту проблему. Если вы работаете в Ubuntu, я бы посоветовал придерживаться ядра Ubuntu, чтобы получать исправления через регулярные обновления. Я бы рекомендовал установить Lucid для поддержки и стабильности. Вы можете пойти с Maverick, если есть функции, о которых вы знаете, которых нет в Lucid, которые вам нужны.

1
ответ дан 6 August 2018 в 04:38

Чтобы получить вывод из top, который вы можете сохранить: top -b -n1

Вставьте это в cronjob, и вы сможете просмотреть подробный список процессов даже после устранения проблемы. Пример записи в crontab:

* * * * * top -b -n1 > /tmp/top_output_$(date +%Y-%m-%d_%H:%M:%S)

Это сохранит его в одном файле в минуту в / tmp

1
ответ дан 6 August 2018 в 04:38

Я бы попытался найти причину проблемы с помощью некоторого сценария оболочки:

#!/bin/sh
MAXLOAD=100
CURRLOAD=`uptime | sed 's@.*load average: \([^,]*\).*@\1@' | sed 's@0\?.0\?@@'`

if [ $CURRLOAD -gt $MAXLOAD ]; then                                             
  ps -eo tid,pcpu,comm | sort -n -k 2 | tail -n 5 | \
    mail -s "High load" -e your@addre.ss
fi

В сценарии есть две переменные MAXLOAD и CURRLOAD. Первый из них должен быть высокой нагрузкой, умноженной на 100. Так что, если вы столкнетесь с пиковым значением и увидите, что нагрузка на систему возрастает до 2 или 3, то вам следует установить для MAXLOAD значение около 200. $CURRLOAD принимает выход uptime ищет нагрузку и удаляет точку, а также начальные нули.

Если нагрузка в какой-то момент слишком высока, она распечатывает пять процессов с наибольшей загрузкой ЦП и отправляет их в your@addre.ss.

Этот скрипт должен помочь вам найти причину всплеска, и, если вы знаете это, вы, возможно, сможете решить вашу проблему.

2
ответ дан 6 August 2018 в 04:38

Я думаю, что это проблема ядра. Я бы вернулся к официально протестированной версии.

0
ответ дан 6 August 2018 в 04:38

Есть несколько недавно исправленных ошибок, которые могут исправить эту проблему. Если вы работаете в Ubuntu, я бы посоветовал придерживаться ядра Ubuntu, чтобы получать исправления через регулярные обновления. Я бы рекомендовал установить Lucid для поддержки и стабильности. Вы можете пойти с Maverick, если есть функции, о которых вы знаете, которых нет в Lucid, которые вам нужны.

1
ответ дан 7 August 2018 в 22:49

Чтобы получить вывод из top, который вы можете сохранить: top -b -n1

Вставьте это в cronjob, и вы сможете просмотреть подробный список процессов даже после устранения проблемы. Пример записи в crontab:

* * * * * top -b -n1 > /tmp/top_output_$(date +%Y-%m-%d_%H:%M:%S)

Это сохранит его в одном файле в минуту в / tmp

1
ответ дан 7 August 2018 в 22:49

«Процессор загружается на 80-90% во всех ядрах примерно на 5 минут»

Такое большое использование может позволить вам точно определить виновника с помощью pidstat, доступного в пакете sysstat.

Просто запустите pidstat -u | sort -nr -k 7,7 | head -10, и процесс, который использовал больше всего процессоров, должен быть в верхней строке.

3
ответ дан 7 August 2018 в 22:49

Я бы попытался найти причину проблемы с помощью некоторого сценария оболочки:

#!/bin/sh
MAXLOAD=100
CURRLOAD=`uptime | sed 's@.*load average: \([^,]*\).*@\1@' | sed 's@0\?.0\?@@'`

if [ $CURRLOAD -gt $MAXLOAD ]; then                                             
  ps -eo tid,pcpu,comm | sort -n -k 2 | tail -n 5 | \
    mail -s "High load" -e your@addre.ss
fi

В сценарии есть две переменные MAXLOAD и CURRLOAD. Первый из них должен быть высокой нагрузкой, умноженной на 100. Так что, если вы столкнетесь с пиковым значением и увидите, что нагрузка на систему возрастает до 2 или 3, то вам следует установить для MAXLOAD значение около 200. $CURRLOAD принимает выход uptime ищет нагрузку и удаляет точку, а также начальные нули.

Если нагрузка в какой-то момент слишком высока, она распечатывает пять процессов с наибольшей загрузкой ЦП и отправляет их в your@addre.ss.

Этот скрипт должен помочь вам найти причину всплеска, и, если вы знаете это, вы, возможно, сможете решить вашу проблему.

2
ответ дан 7 August 2018 в 22:49

Я думаю, что это проблема ядра. Я бы вернулся к официально протестированной версии.

0
ответ дан 7 August 2018 в 22:49

Есть несколько недавно исправленных ошибок, которые могут исправить эту проблему. Если вы работаете в Ubuntu, я бы посоветовал придерживаться ядра Ubuntu, чтобы получать исправления через регулярные обновления. Я бы рекомендовал установить Lucid для поддержки и стабильности. Вы можете пойти с Maverick, если есть функции, о которых вы знаете, которых нет в Lucid, которые вам нужны.

1
ответ дан 10 August 2018 в 10:54

Чтобы получить вывод из top, который вы можете сохранить: top -b -n1

Вставьте это в cronjob, и вы сможете просмотреть подробный список процессов даже после устранения проблемы. Пример записи в crontab:

* * * * * top -b -n1 > /tmp/top_output_$(date +%Y-%m-%d_%H:%M:%S)

Это сохранит его в одном файле в минуту в / tmp

1
ответ дан 10 August 2018 в 10:54

«Процессор загружается на 80-90% во всех ядрах примерно на 5 минут»

Такое большое использование может позволить вам точно определить виновника с помощью pidstat, доступного в пакете sysstat.

Просто запустите pidstat -u | sort -nr -k 7,7 | head -10, и процесс, который использовал больше всего процессоров, должен быть в верхней строке.

3
ответ дан 10 August 2018 в 10:54

Я бы попытался найти причину проблемы с помощью некоторого сценария оболочки:

#!/bin/sh
MAXLOAD=100
CURRLOAD=`uptime | sed 's@.*load average: \([^,]*\).*@\1@' | sed 's@0\?.0\?@@'`

if [ $CURRLOAD -gt $MAXLOAD ]; then                                             
  ps -eo tid,pcpu,comm | sort -n -k 2 | tail -n 5 | \
    mail -s "High load" -e your@addre.ss
fi

В сценарии есть две переменные MAXLOAD и CURRLOAD. Первый из них должен быть высокой нагрузкой, умноженной на 100. Так что, если вы столкнетесь с пиковым значением и увидите, что нагрузка на систему возрастает до 2 или 3, то вам следует установить для MAXLOAD значение около 200. $CURRLOAD принимает выход uptime ищет нагрузку и удаляет точку, а также начальные нули.

Если нагрузка в какой-то момент слишком высока, она распечатывает пять процессов с наибольшей загрузкой ЦП и отправляет их в your@addre.ss.

Этот скрипт должен помочь вам найти причину всплеска, и, если вы знаете это, вы, возможно, сможете решить вашу проблему.

2
ответ дан 10 August 2018 в 10:54

Я думаю, что это проблема ядра. Я бы вернулся к официально протестированной версии.

0
ответ дан 10 August 2018 в 10:54

Есть несколько недавно исправленных ошибок, которые могут исправить эту проблему. Если вы работаете в Ubuntu, я бы посоветовал придерживаться ядра Ubuntu, чтобы получать исправления через регулярные обновления. Я бы рекомендовал установить Lucid для поддержки и стабильности. Вы можете пойти с Maverick, если есть функции, о которых вы знаете, которых нет в Lucid, которые вам нужны.

1
ответ дан 13 August 2018 в 17:29

Чтобы получить вывод из top, который вы можете сохранить: top -b -n1

Вставьте это в cronjob, и вы сможете просмотреть подробный список процессов даже после устранения проблемы. Пример записи в crontab:

* * * * * top -b -n1 > /tmp/top_output_$(date +%Y-%m-%d_%H:%M:%S)

Это сохранит его в одном файле в минуту в / tmp

1
ответ дан 13 August 2018 в 17:29

«Процессор загружается на 80-90% во всех ядрах в течение примерно 5 минут»

Такое большое использование может позволить вам точно определить виновника с помощью pidstat, доступного в пакете sysstat.

Просто запустите pidstat -u | sort -nr -k 7,7 | head -10, и процесс, который использовал больше всего процессоров, должен быть в верхней строке.

3
ответ дан 13 August 2018 в 17:29
  • 1
    Хороший совет о пидстате. Первый раз сталкиваюсь с этим. – harperville 14 March 2014 в 21:12

Я бы попытался найти причину проблемы с помощью некоторого сценария оболочки:

#!/bin/sh
MAXLOAD=100
CURRLOAD=`uptime | sed 's@.*load average: \([^,]*\).*@\1@' | sed 's@0\?.0\?@@'`

if [ $CURRLOAD -gt $MAXLOAD ]; then                                             
  ps -eo tid,pcpu,comm | sort -n -k 2 | tail -n 5 | \
    mail -s "High load" -e your@addre.ss
fi

В сценарии есть две переменные MAXLOAD и CURRLOAD. Первый из них должен быть высокой нагрузкой, умноженной на 100. Так что, если вы столкнетесь с пиковым значением и увидите, что нагрузка на систему возрастает до 2 или 3, то вам следует установить для MAXLOAD значение около 200. $CURRLOAD принимает выход uptime ищет нагрузку и удаляет точку, а также начальные нули.

Если нагрузка в какой-то момент слишком высока, она распечатывает пять процессов с наибольшей загрузкой ЦП и отправляет их в your@addre.ss.

Этот скрипт должен помочь вам найти причину всплеска, и, если вы знаете это, вы, возможно, сможете решить вашу проблему.

2
ответ дан 13 August 2018 в 17:29

Другие вопросы по тегам:

Похожие вопросы: