От тайка они пухли, а от украдки - дохли

Уважаемые ученые!

У меня в подполе происходит подземный стук стала странно себя вести FreeBSD 9.1

А именно: она замерзает.

Это домашний сервер, на котором ночью никаких процессов нет (я в рамках поиска проблемы даже periodic убрал) и утром я нахожу его в следующем состоянии:

  • Оно с виду живое, можно залогиниться
  • Если запустить top или systat - то вместо обновления раз в несколько секунд - экран обновляется раз в секунд 10-30 (а может и медленнее)
  • Если запустить netstat 1, то вместо печати суммарного трафика раз в секунду - печатается заголовок и более ничего не происходит (впрочем, дольше нескольких десятков секунд я не ждал)
  • По reboot - убиваются процессы, а дальше я не знаю т.е. на экран оно ничего не выводит, диски не синкает. Всякий раз перегружаю ресетом.
  • Если делать на машину scp - то идет медленно (~3MB sec), при этом sshd съедает целое ядро, судя по top. Samba тоже работает медленно, вместо 150-250 MB/sec (по 10G) получается скорее 30MB/sec.
  • В логах - тишина, за исключением вот этого вот:
    May  8 00:07:24 home-gw named[1406]: *** POKED TIMER ***
    May  8 00:18:16 home-gw named[1406]: *** POKED TIMER ***
    May  8 00:30:25 home-gw named[1406]: *** POKED TIMER ***
    May  8 00:50:52 home-gw named[1406]: *** POKED TIMER ***
    May  8 01:31:10 home-gw named[1406]: *** POKED TIMER ***
    
Изначально была гипотеза, что оно зависает в каком-то low-power state. Сейчас гипотеза - что просто встает таймер.

Пока переставил таймер с TSC-low на HPET, но что бы еще такое посмотреть?

Проблема усугубляется тем, что специально вызвать такое состояние я не могу, оно к утру становится таким, а в течение дня - не засыпает (ну там жизнь всякая, почта ходит, бэкапы бэкапятся и ведет себя нормально.

Comments

это без всяких там модных виртуализаций?

Нет, это простое физическое десктопное железо.
i3 какой-то из новых (3.3Ghz), материнка на Z68 и все такое.

И раньше не было. Началось с неделю назад после cvsup. Можно откатиться, наверное, но не хочется.

Надо запустить ntpd, дать ему три вышестоящих сервера и поглядывать в его drift-файл, если дело в таймере - там будут безумные трехзначные значения.

Сейчас там так:
# cat /var/db/ntpd.drift
38.276

Но обновлялся он сутки назад (нормально ли это?)
# ls -l /var/db/ntpd.drift
-rw-r--r-- 1 root wheel 7 May 8 08:59 /var/db/ntpd.drift

Сделал несколько раз ntpd restart (оно, оказывается, только на рестарте пишется) - там стало около 1.0

Ну так сейчас, после традиционной утренней перезагрузки и проблемы нет.

> Сделал несколько раз ntpd restart (оно, оказывается, только на рестарте пишется)

У меня не только на рестарте.

А, да. Раз в час, как пишет нам ман.

Но я часу не дождался немного, когда отвечал.

38.276 это многовато, но пока не безумно. На дешевой ASRock'овской материнке у меня -8.894. Обновлён вот 20 минут назад.

А может это диск дохнет, где-нибудь в районе свопа?

1) свап не используется
# swapinfo
Device 1K-blocks Used Avail Capacity
/dev/zvol/zdata/swap 2097152 0 2097152 0%

2) Ну оно бы заорало, если бы с диском что не так. В логах - кроме POKED TIMER - вообще тишина.

Ох, не факт что оно заорёт если с 30-го раза попытка чтения всё же прошла. В общем, SMART погонять по-моему стоит.

Ну это вот прямо у меня в метре от головы (в шкафу над столом,дверца открыта)
Если там будет 30 попыток чтения - я их услышу.

И, повторяю:
a) свапа нет.
б) оно именно что после ночной спячки не просыпается (устойчиво, вот уже с неделю - почти каждую ночь). Днем никаких проблем нет.

Можно еще посмотреть systat -vmstat - может interrupt shtorm какой случается.
netstat 1 можно запустить заранее в screen/tmux - если так же не будет ничего писать - посмотреть Ctrl+t.
До cvsup была тоже 9-ка? Если 8-ка, то можно попробовать сделать sysctl kern.eventtimer.periodic=1

Ну меня вот удивляет, что там по cpu мало прерываний:

# vmstat -i | grep cpu
cpu0:timer 1745115 236
cpu1:timer 2630281 356
cpu2:timer 1499821 203
cpu3:timer 1514906 205

(вроде бы должно быть побольше и одинаково)

periodic попробую (до того тоже была 9.1, но боюсь я что сдаунгрейдиться до 9.1-релиз уже не смогу

А может оно перегревается из за того, что останавливается совсем кулер (если он с авторегулировкой). Из за перегрева умная мамка начинает снижать частоту.

Полезно будет загрузить модуль coretemp и сравнить вывод sysctl dev.cpu при нормальной работе и в моменты замерзания (там же будет видно не уходит ли оно спать в C3, хотя его вроде надо явно разрешать).

Ну вряд-ли ночью перегреется.

Я на это место не смотрел внимательно, отрегулировано оно так, чтобы кулер полностью не останавливался.
Типичная температура процессора - 39 на дневном idle.

BTW, а чем плохо C3? Оно же оттуда должно нормально проснуться?

некоторое железо не возвращается из C3 совсем, или возвращается с большой задержкой. Сам правда сталкивался с таким только на мамке 5-и летней давности.
Тут: https://wiki.freebsd.org/TuningPowerConsumption что в 9-ке добавлены проверки на безопасность использования Cx и их таких проблем быть в теории не должно.

date +%s; sleep 10; date +%s

может какие-то буфера кончаются?

Ночью?
Ну я вот натурально все повыключал из из cron, и вообще. И почту оно ночью забирает не раз в 5 минут, а раз в час.
Утром прихожу к нему - а оно не просыпается, как мертвая царевна. Опять целовал ресетом.

Пока вот убрал powerd, пусть на полной скорости хреначит.

не ночью, а через сутки.
текло текло и вытекло

А, ну да, может быть.
Если таймеры/выключение powerd не поможет - буду и туда посмотреть.

Я, на самом деле, с очень похожим по внешним признакам (ну не по таймеру) сталкивался на макбуке: я туда сунул 8GB, а кэшируются там (в этой модели) только 6. И как только используемая память приезжала в эту область (например, можно было попробовать побэкапиться), тут то и наступали вилы.

Но я слово MTRR знаю, как и что смотреть - не знаю.

pmcstat. это если на результаты смотреть.

Ой. Это я не умею. И очень не хотел бы учиться

это ж тоже самое, что у интеловых тулз

Да. Но у интела - гуй и там все собирается само, а при просмотре - есть всплывающий хелп.

Я все это осилю, конечно, но только если реально припрет.

Вот powerd что-то вроде чинили в CURRENT не так давно, может в 9-ке поломали наоборот? Хотя у меня работает на сервере...

Я посмотрел в -stable, powerd очень давно не менялся.

Если что и пролюбили, то в ядре.

BTW, interrupt rate от таймеров какой должен быть? И должен ли быть одинаковым?
Мне вот это не нравится, маловато как-то:
# vmstat -i | grep cpu
cpu0:timer 2197753 219
cpu1:timer 3099078 310
cpu2:timer 1824095 182
cpu3:timer 1847104 184

С другой стороны, на 9-ке на виртуальной машине (а еще девяток - нету, увы) на cpu0 - 53, а на остальных и вовсе по 12

а там вроде как уже (в смысле в -current -- точно, а ушло ли в 9 -- не помню) перешли от таймеров к eventам. т.е. таймер сгенерит прерыване в тот момент, когда оно кому-то будет надо. а не 1000Гц. 1000Гц это теперь просто точность.

eventtimer - имеется, да. Т.е. вот этот вот low rate - не показатель. Хорошо.

Ну это как раз похоже на баг в eventtimer, на мой взгляд.

Да нет, вроде.

Я включил там periodic=1 и стало 2000 прерываний/сек.

Баг в eventtimer или не в нём, станет известно теперь через сутки или пару - если проблема не воспроизведётся с periodic=1

Не, я его пока обратно выключил.

Т.е. ближайшая гипотеза, что TSC-low таймер нехорош, а HPET - ничего так.

Он как бы раз, и внезапно нехорош стал?

Получается что да. Ну система поапдейтилась (где-то за месяц-два), но каких-то серьезных правок в этом месте я не углядел (смотрел не очень внимательно).

Тем не менее - вот уже 11-е число, т.е. три дня как подземного стука нет.

У меня, кстати, похожее было на каких-то древних E5320. На одном решилось заменой памяти, до другого руки пока не дошли. Но там в обоих случаях он сам выходил из такой комы и довольно быстро.

Память - интересная мысль.
В этой машине всегда было 8G, потом я доставил 16 и она стала болеть - перезагружаться раз 2-3 дня. Память - нормальная, до того стояла в моей рабочей машине и не болела.

Вынул из 16-ти половину, пока не перезагружается, но вот хочет спать.

Что за фраза "От тайка они пухли, а от украдки - дохли" вынесена в название темы? Откуда? Что означает?

И действительно, в этой формулировке не гуглится.

Штирлиц кормил детей тайком и украдкой. От тайка они пухли....

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

И что в итоге?

В итоге, судя по всему, USB-шный WiFi. (Asus UBB-N13).

Начало проблем совпало с попыткой его использования. Вынул - все как рукой сняло.

Вот тут продолжение (в каментах), где меня на мысль про USB навели: http://blog.lexa.ru/2013/05/25/podzemnyi_stuk_vozvrashchaetsya.html