Bản cập nhật phần cứng lớn nhất mà nhân Linux chế độ 11 phút có thể làm là gì?


18

Khi các chương trình liên quan đến thời gian nhất định (như ntpd) đang chạy trên hệ thống Linux, hạt nhân sẽ chuyển sang cái gọi là "chế độ mười một phút" (xem hwclocktrang hướng dẫn), theo đó, nó sẽ tự động cập nhật đồng hồ phần cứng từ đồng hồ hệ thống cứ sau mười một phút .

Trên SLES11 tôi đã xác định theo kinh nghiệm rằng nếu tôi đặt đồng hồ phần cứng ở mức thấp hơn 10 giờ so với đồng hồ hệ thống, chế độ 11 phút dường như không thể làm cho đồng hồ phần cứng khớp với đồng hồ hệ thống. Nhưng nếu tôi đặt đồng hồ phần cứng sau đồng hồ hệ thống 5 phút, chế độ 11 phút sẽ tạo ra một kết hợp hoàn hảo.

Vì vậy, rõ ràng có một số cập nhật tối đa mà chế độ 11 phút có thể xử lý và tôi tự hỏi nó là gì.


Cập nhật:

Điều này thật kỳ lạ ...

Thử nghiệm nhiều hơn cho thấy rằng khi tôi có đồng hồ CT khoảng 20 phút sau đồng hồ hệ thống, chế độ 11 phút sẽ đặt đồng hồ CTNH chính xác hơn 30 phút so với đồng hồ hệ thống (!):

# date
Tue Dec  6 10:16:52 EST 2011
# hwclock --set --date "12/6/11 09:56"
#
# date
Tue Dec  6 10:17:16 EST 2011
# hwclock --show
Tue Dec  6 09:56:06 2011  -0.156551 seconds
#
# date
Tue Dec  6 10:23:09 EST 2011
# hwclock --show
Tue Dec  6 10:01:58 2011  -0.535772 seconds
#
# date
Tue Dec  6 10:34:28 EST 2011
# hwclock --show
Tue Dec  6 10:04:27 2011  -0.192025 seconds

Cập nhật:

Tôi đã chạy qua cái này: https://bugs.archlinux.org/task/27408 có nghĩa là hạt nhân tốt hay xấu sẽ không cập nhật đồng hồ phần cứng khi thời gian của đồng hồ phần cứng quá xa so với thời gian của đồng hồ hệ thống.


Tôi không biết điều gì có thể gây ra điều này, nhưng tôi sẽ hỏi câu hỏi đồng hồ tiêu chuẩn: Đồng hồ phần cứng của bạn có được đặt thành UTC không? (Nếu không nó có lẽ nên được - Tôi không nghĩ rằng các tài khoản này cho hành vi mà bạn đề cập đến, nhưng nó có thể gây ra khác lạ ...)
voretaq7

Bạn đang ở Ấn Độ hay đặt đồng hồ theo Giờ chuẩn Ấn Độ? ITS là GMT +05: 30 để có thể chiếm khoảng 30 phút. Ngoài ra (nhưng không chắc), một máy chủ ntp được cấu hình kém ở Ấn Độ có thể là nguyên nhân.
Justin Dearing

Không. Tôi đang ở Hoa Kỳ / Đông và máy chủ NTP ở trong văn phòng của chúng tôi và cũng là Hoa Kỳ / Đông.
QuantumMechanic

Đây có phải trên VPS không? NTP và môi trường ảo không chơi tốt với nhau.
Scrivener

Tôi không thể tìm thấy bất kỳ thông tin tham khảo nào về chế độ 11 phút trong kernel và những hạn chế nào có thể có. Tuy nhiên, ntpd kiểm tra xem thời gian hệ thống và thời gian máy chủ ntp có trong vòng 1000 giây không. Nếu không, nó thậm chí sẽ không cố gắng sửa thời gian hệ thống. Nó nghĩ rằng nó có thể là xa mục đích. Bạn có thể nghĩ ra một số cách để xác minh rằng chế độ kernel này đang giới hạn bạn chứ không phải ntpd không?
JakePaulus

Câu trả lời:


5

Từ hwclocktrang người đàn ông trên RHEL 4.6:

This mode (we'll call it "11 minute mode") is off until something turns it on.  The ntp
daemon  xntpd  is  one thing  that  turns  it on.  You can turn it off by running
anything, including hwclock --hctosys, that sets the System Time the old fashioned way.

To see if it is on or off, use the command adjtimex --print and look at the value of
"status".  If the "64" bit of this number (expressed in binary) equal to 0, 11 minute mode 
is on.  Otherwise, it is off.

Vì vậy, nhờ vào việc bạn chạy, hwclock --setbạn có khả năng đã tắt nó. Với cùng một mã thông báo, bạn có thể kiểm tra đầu ra của adjtimex --printxác nhận.


Những gì tắt nó là một cái gì đó thiết lập thời gian hệ thống . hwclock --setkhông chạm vào thời gian hệ thống. Và khi tôi làm adjtimex --printđiều đó xác nhận rằng chế độ 11-min ở trên kể từ khi "64" chút thực sự là tắt.
QuantumMechanic

"Nếu bit" 64 "của số này (được biểu thị dưới dạng nhị phân) bằng 0, chế độ 11 phút được bật." - điều đó có nghĩa là nếu trạng thái là số lẻ thì chế độ 11 phút sẽ tắt (giả sử trạng thái là 64 bit và thứ tự bit cuối lớn)?
jfs

Nếu bit "64" của số này (được biểu thị bằng nhị phân) bằng 0 ---> Tôi thấy điều này có nghĩa là bit thứ 7, hoặc if((status & (1<<6)) == 0)sau đó chế độ 11 phút được bật.
BMiner

Có triển khai chế độ 11 phút: lxr.free-electrons.com/source/kernel/time/ntp.c?v=4.4#L509 sync_cmos_clock chức năng
osgx

4

Trong thực tế, điều này không có gì để làm với chế độ mười một phút trong kernel. Điều này có liên quan đến một tính năng trong ntpd.

Bạn có biết về cái gọi là giới hạn vệ sinh của ntp không? Nếu thời gian quá xa (ví dụ 10 giờ), ntpd bỏ cuộc và không làm lệch đồng hồ. Trong những trường hợp đó, ntpd hoặc ntpdate nên được chạy thủ công. Tùy chọn Ntpd -gnên làm điều đó. Kiểm tra thông tin từ trang người đàn ông:

http://doc.ntp.org/4.1.0/ntpd.htm


1
Trên máy ntpdnày đã được chạy với -gtùy chọn.
QuantumMechanic

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.