Điều gì có thể khiến đồng hồ nhảy 5 phút?


8

Tôi có một hộp (vật lý) đang chạy Ubuntu bị tước; cứ sau 3 lần (6 lần trong 3 tháng), đồng hồ lại nhảy lùi chính xác 300 giây (+ - 0,01 giây; luôn luôn chính xác 300 giây). Nó xảy ra từ phút này sang phút khác (tôi có một máy bên ngoài bỏ phiếu một lần mỗi phút).

Hộp này đang chạy 2.6,26 (kernel được biên dịch tùy chỉnh), Ubuntu 9.04 (Tôi biết, tôi đang cố gắng cập nhật nó, nhưng nó được bán nhúng). Không có gì trong nhật ký chỉ ra điều gì đã xảy ra và tôi có một lựa chọn lớn các máy chủ ntp pool.ntp.org, sẽ khắc phục sự cố sau một thời gian.

Có ai biết những gì có thể gây ra điều này?

Bổ sung 1:

Tôi cũng có một số hộp khác chạy cùng kernel (nhị phân giống hệt nhau) và các biến thể nhỏ của cùng một phần mềm, không có vấn đề này. Tôi cũng đã trao đổi phần cứng.

Bổ sung 2 (tóm tắt ý kiến ​​cá nhân của tôi):

  • Tôi biết 9.04 đã hết hạn, tôi đồng ý nên cập nhật và quyết định này nằm ngoài tầm kiểm soát của tôi. Vì quản lý.
  • Tôi đã thử một số lượng lớn máy chủ ntp và một số lượng nhỏ. Nó vẫn xảy ra trong cả hai trường hợp; nếu tôi có một số lượng lớn máy chủ ntp, thì nó sẽ tự sửa nhanh hơn.
  • Tôi đã trao đổi phần cứng
  • Tôi đang sử dụng cùng một kernel / hệ điều hành trên một hộp khác (có phần cứng giống hệt nhau), không hiển thị vấn đề.
  • Khởi động lại không giúp được gì. (vấn đề này đã diễn ra trong khoảng 6 tháng)
  • Thời gian hoạt động khoảng 3 tháng. Hộp "luôn bật", chạy PBX (dấu hoa thị).
  • Ngay bây giờ, hwclock khớp chính xác với đồng hồ phần mềm - 0,000000 giây
  • Tôi đã không thể tìm thấy bất kỳ công việc định kỳ đọc đồng hồ phần cứng.
  • Không có mẫu liên quan đến tải (mặc dù tải khá thấp).
  • Nó xảy ra vào ban ngày và ban đêm.
  • Nó không xảy ra đều đặn. Trong số những người trong 3 tháng qua, một nửa đã xảy ra trong 9 ngày qua.
  • Đây không phải là "trôi" - 99% thời gian, nó chỉ trong một phần rất nhỏ của giây, sau đó từ phút này sang phút tiếp theo, nó nhảy CHÍNH XÁC 300 giây, ngược lại. Vì vậy, một phút nó có thể nói là 3:07:03, khớp với máy tính khác của tôi trong vòng 1 micro giây, 60 giây sau, nó báo 3:04:03.
  • Tôi không thể tìm thấy gì trong nhật ký.

1
Ubuntu 9.04 vượt quá vòng đời và nếu bạn đang chạy kernel tùy chỉnh, thì hỗ trợ sẽ bị hạn chế tối đa. Một hệ thống bán nhúng thêm một lớp phức tạp.
Panther

1
này, nếu đó là một câu hỏi dễ, bây giờ tôi đã sửa nó rồi :)
AMADANON Inc.

Hãy thử giảm số lượng máy chủ ntp của bạn xuống còn 3, sử dụng những máy chủ gần gũi về mặt địa lý với khả năng kết nối tốt.
Panther

Ý kiến ​​hay - Tôi đã thử nó. Sự khác biệt duy nhất là, với ít nguồn ntp hơn, ntpd đã thực hiện ít truy vấn hơn và mất nhiều thời gian hơn để trở lại bình thường.
AMADANON Inc.

Vâng, nó không phải là ntp, mà để lại hạt nhân hoặc phần cứng tùy chỉnh của bạn theo quá trình loại bỏ.
Panther

Câu trả lời:


1

Điều này nghe có vẻ như một đồng hồ thời gian thực (RTC) thất bại. Nếu đây là phần cứng dự phòng, bạn có thể xác nhận sự cố bằng cách chạy một hệ điều hành khác, chẳng hạn như khởi động đĩa CD linux hoặc khởi động PXE, và xem liệu bạn có thể sao chép lỗi không. Nếu độ lệch đồng thời chính xác xảy ra trên một HĐH khác, thì bạn đã xác nhận rằng sự cố là lỗi phần cứng.

Giả sử đó là RTC, bạn có thể thử các giải pháp sau theo thứ tự mức độ nghiêm trọng.

  • Thay pin CMOS. Bạn có thể thử xác nhận xem đó có phải là pin hỏng hay không bằng cách kiểm tra điện áp của máy đập cũ bằng đồng hồ vạn năng.
  • Thay đổi RTC. Nếu bạn may mắn và có một bo mạch chủ ưa thích, nó có thể có hai RTC. Đồng hồ có độ chính xác cao được sử dụng theo mặc định và RTC tiêu chuẩn. Kiểm tra cài đặt BIOS / EFI và xem liệu bạn có thể thay đổi thành RTC thay thế để tránh sử dụng lỗi không.
  • Cố gắng thay thế RTC. Tùy thuộc vào tuổi của bo mạch chủ của bạn, RTC của bạn có thể là một hộp kim loại hoặc chip trên bảng. Bạn có thể cố gắng tự thay thế thành phần này nếu bạn có một số kỹ năng điện tử.
  • Thay thế bo mạch chủ, vì RTC hoặc một số thành phần điện hoặc dẫn giao diện với RTC đều bị lỗi.

1

Bạn có thể chạy một tập lệnh trên hộp theo dõi các quá trình đang chạy và đồng thời theo dõi đồng hồ. Nếu đồng hồ nhảy ngược lại đột ngột, nó sẽ ghi lại danh sách các quá trình đang hoạt động tại thời điểm đó. Có lẽ điều đó cho một gợi ý mà quá trình thay đổi đồng hồ.

Tất nhiên, điều này giả định rằng bạn có vấn đề về phần mềm. Bạn sẽ không tìm thấy bất cứ điều gì theo cách này nếu chỉ phần cứng của bạn bị lỗi.

/bin/bash

oldTime=$(date +%s)
oldPsOutput=$(ps faux)
while sleep 1
do
  currentTime=$(date +%s)
  currentPsOutput=$(ps faux)
  if [ "$currentTime" -lt "$oldTime" ]  # clock change detected?
  then
    echo '========='
    echo "$currentTime < $oldTime"
    echo "$oldPsOutput"
    echo ':::::::::'
    echo "$currentPsOutput"
  fi >> /tmp/clockChangeDetector.log
  oldPsOutput=$currentPsOutput
  oldTime=$currentTime
done

0

Câu trả lời của Michael Yasumoto dường như bao gồm tất cả các cơ sở - Tôi đồng ý rằng có lẽ bạn đang xem phần cứng mạnh mẽ - nhưng đây là một ý tưởng thực tế: sử dụng một máy đáng tin cậy có kết nối bên trong rất tốt, có một số chu kỳ để dự phòng để chạy Máy chủ NTP và sau đó làm " bất cứ điều gì " để làm cho máy khách NTP chạy trên hộp tổng đài nhúng spam máy chủ NTP cục bộ này để yêu cầu thời gian thường xuyên nhất có thể (ví dụ: cứ sau 30 giây).

Sau đó, khi chiếc hộp cuối cùng được nâng cấp, hãy đặt nó sang một bên và tìm ra điều gì không ổn với nó Tại một số điểm (TM). : P

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.