2012-09-18 27 views

Trả lời

19

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).

2

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.

2

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 
*/ 
+0

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

+0

/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