Tôi đã thấy điều này http://kaasxxx.wordpress.com/2008/01/22/linux-hz-checker/ Nhưng tập lệnh có vẻ không hoạt động. Dù sao thì cũng biết một cách dễ dàng để chech "HZ" trong terminal trong Linux?Cách kiểm tra HZ trong thiết bị đầu cuối?
Cảm ơn,:>
Tôi đã thấy điều này http://kaasxxx.wordpress.com/2008/01/22/linux-hz-checker/ Nhưng tập lệnh có vẻ không hoạt động. Dù sao thì cũng biết một cách dễ dàng để chech "HZ" trong terminal trong Linux?Cách kiểm tra HZ trong thiết bị đầu cuối?
Cảm ơn,:>
Không có câu trả lời thống nhất cho câu hỏi này, như trong một số trường hợp kernel của bạn có thể được biên dịch "tickless" và không sử dụng một bộ đếm thời gian thường xuyên ngắt ở tất cả. Nhưng nếu bạn đang ở trên một hạt nhân truyền thống và một bản phân phối truyền thống, bạn có thể tìm tập tin .config
của hạt nhân hiện tại dưới/khởi động với một cái gì đó như grep 'CONFIG_HZ=' /boot/config-$(uname -r)
.
Có nhiều cách tiếp cận khác nhau để nhận được gợi ý về cài đặt của bạn. Trên một số hệ thống đơn lõi lừa này là tiện dụng:
/ # cat /proc/interrupts | grep -i time; sleep 10; cat /proc/interrupts | grep time
16: 10404858 INTC 68 Level gp_timer
16: 10514798 INTC 68 Level gp_timer
Nó cho bạn thấy số lượng bọ ve có trong vòng 10 giây. ngủ. Ở đây khoảng 100'000. Chia cho 10 cho khoảng 10'000 HZ.
Điều này có thể gây nhầm lẫn trên hệ thống đa lõi vì đây sẽ là danh sách lõi.
Một tùy chọn khác sẽ là kiểm tra xem bạn có thể lấy một tay trên cấu hình hạt nhân gốc hay không. Nó sẽ được lưu trữ trong
/proc/config.gz
Mở gói và mở tệp. Tìm kiếm các bộ phận trông giống như
CONFIG_HZ_FIXED=0
# CONFIG_HZ_100 is not set
# CONFIG_HZ_200 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_500 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ_10000=y
CONFIG_HZ=10000
CONFIG_SCHED_HRTICK=y
Chỉ để cảnh báo bạn; 10'000 là cách tắt cài đặt thông thường. Thiết lập thử nghiệm.
Trong các chương trình C của tôi, tôi sử dụng thời gian bắt đầu của một quá trình và thời gian hoạt động và nhiều hơn nữa cho một số tính toán giá trị khi chạy.
Trong Bash, phép tính HZ trông giống như ví dụ:
$ awk '{print$22/'$(tail -n 1 /proc/uptime|cut -d. -f1)"}" /proc/self/stat
100
Có nghĩa là: Lấy giá trị 22 của thời gian hoạt động và chia cho thời gian bắt đầu của quy trình "tự".
EDIT:
Có, user1530335, điều này là chính xác. Thông tin bổ sung về tệp stat có thể được lấy từ trang man page (5). Ở đây trường "starttime" được mô tả là "thời gian trong jiffies quá trình bắt đầu sau khi khởi động hệ thống".
Có, và chủ yếu là (vòm Intel), nó sẽ là 100. Các hạt "hiếm" hiếm hơn cũ thậm chí còn có 1000 ngay cả trên Intel. Các giá trị khác có thể là:
/**
* 10 S/390 (sometimes)
* 20 User-mode Linux
* 32 ia64 emulator
* 64 StrongARM /Shark
* 100 normal Linux
* 128 MIPS, ARM
* 1000 ARM
* 1024 Alpha, ia64
* 1200 Alpha
*/
Dòng 22 là thời gian bắt đầu của quá trình trong đồng hồ ve. [Cuộn xuống /proc/(pid)/stat](http://man7.org/linux/man-pages/man5/proc.5.html) – user1530335
/proc/uptime có thông tin về thời gian hoạt động của hệ thống. [Số đầu tiên là tổng số giây mà hệ thống đã lên.] (Https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-uptime.html) Trong reichhart bản chất là nói CONFIG_HZ sẽ là 'Clock Ticks kể từ khi bắt đầu (ticks)/Thời gian từ khi bắt đầu (giây)' đơn vị là 'ticks/seconds' Trong hầu hết các trường hợp này nên được 100 bọ ve mỗi giây. – user1530335
Có lẽ điều này có thể giúp: http://www.advenage.com/topics/linux-timer-interrupt-frequency.php –
@Shawin Chin Cảm ơn, –