RHEL 6.3
Мы только что перезагрузились вчера вечером, и у меня есть много процессов, показывающих, что они работают НАВСЕГДА. Примеры:
root 11 2 99 Feb23 ? 212429-04:31:07 [kworker/0:1]
root 1 0 99 Feb23 ? 216-01:38:15 /sbin/init
NTP выглядит вменяемым:
Feb 23 18:13:58 hostA ntpd[7539]: ntpd 4.2.4p8@1.1612-o Tue Jul 6 21:50:26 UTC 2010 (1)
Feb 23 18:13:58 hostA ntpd[7540]: precision = 0.126 usec
Feb 23 18:13:58 hostA ntpd[7540]: ntp_io: estimated max descriptors: 1024, initial socket boundary: 16
Feb 23 18:13:58 hostA ntpd[7540]: Listening on interface #0 wildcard, 0.0.0.0#123 Disabled
Feb 23 18:13:58 hostA ntpd[7540]: Listening on interface #1 lo, 127.0.0.1#123 Enabled
Feb 23 18:13:58 hostA ntpd[7540]: Listening on interface #2 em1, 192.168.1.9#123 Enabled
Feb 23 18:13:58 hostA ntpd[7540]: Listening on interface #3 em2, <ip.addr.scrubbed>#123 Enabled
Feb 23 18:13:58 hostA ntpd[7540]: Listening on routing socket on fd #20 for interface updates
Feb 23 18:13:58 hostA ntpd[7540]: kernel time sync status 2040
Feb 23 18:13:58 hostA ntpd[7540]: getaddrinfo: "::1" invalid host address, ignored
Feb 23 18:13:58 hostA ntpd[7540]: frequency initialized 27.053 PPM from /var/lib/ntp/drift
Feb 23 18:17:08 hostA ntpd[7540]: synchronized to LOCAL(0), stratum 10
Feb 23 18:17:08 hostA ntpd[7540]: kernel time sync status change 2001
Feb 23 18:17:18 hostA ntpd[7540]: synchronized to <ip.addr.scrubbed>, stratum 1
Feb 23 18:22:43 hostA ntpd[7540]: synchronized to <ip.addr.scrubbed>, stratum 1
Feb 23 18:25:57 hostA ntpd[7540]: synchronized to <ip.addr.scrubbed> stratum 1
Feb 23 18:32:21 hostA ntpd[7540]: time reset -0.192626 s
Файлы PID в процессе выглядят с нормальными отметками времени (все с сегодняшнего дня или вчера).
Откуда ps / htop берет свое поле времени?
Кто-нибудь сталкивался с этим раньше?
У него нет такой же проблемы, но в моем случае, если размер / proc / stat увеличился с 64 КБ, он начал показывать странный вывод STIME. Причина этого зашита внутри кода
procps-3.2.8/ps/global.c
359 void reset_global(void){
360 static proc_t p;
361 reset_selection_list();
362 look_up_our_self(&p);
363 set_screen_size();
364 set_personality();
365 int fd;
366 char *buf[BUFFSIZE];
367 const char *b;
368
369 /* get boot time from /proc/stat */
370 fd = open("/proc/stat", O_RDONLY, 0);
371 if (fd != -1) {
372 buf[BUFFSIZE-1] = 0;
373 read(fd, buf, BUFFSIZE-1);
374 b = strstr(buf, "btime ");
375 if (b) {
376 sscanf(b, "btime %lu", &time_of_boot);
RedHat уже имеет внутреннюю ошибку, связанную с этой проблемой https://bugzilla.redhat.com/show_bug.cgi?id=867906
Проверьте BIOS вашего сервера и аппаратные часы.
Если это физический сервер, убедитесь, что время правильно установлено в BIOS или что вы синхронизируете время, полученное с помощью NTP, с аппаратными часами.
Это виртуальная машина, проверьте временное состояние хоста / гипервизора.