Số lượng bộ xử lý trong / Proc / cpuinfo


26

Trong khi tôi đang tìm hiểu về tải cpu, tôi đã biết rằng nó phụ thuộc vào số lượng lõi. Nếu tôi có 2 lõi thì tải 2 sẽ cho sử dụng 100% cpu.

Vì vậy, tôi đã cố gắng tìm ra các lõi. (Tôi đã biết rằng hệ thống có 2 lõi, 4 luồng nên 2 lõi ảo Kiểm tra ở đây về bộ xử lý ). Vì vậy, tôi đã chạy cat /proc/cpuinfo Tôi đã cho tôi

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 774.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 1600.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 1
initial apicid  : 1
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 2
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 800.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 2
apicid      : 2
initial apicid  : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 774.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 2
apicid      : 3
initial apicid  : 3
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

Bây giờ tôi hoàn toàn bối rối. Nó cho thấy 4 bộ xử lý, với 2 lõi cpu. Bất cứ ai có thể giải thích đầu ra này?

Khi tải cpu của tôi là 3,70, đây có phải là tải tối đa không? Tuy nhiên, tại thời điểm đó, cpu vẫn ở mức <50%.

Điều gì về turbo boost? Có phải tất cả các lõi được tăng cường hoặc chỉ vật lý?

Bất kỳ phương pháp nào trong Ubuntu để có được tần số cpu hiện tại để xem bộ xử lý có đang tăng tốc hay không?

Tải là 3,70 khoảng 100%. Nhưng việc sử dụng CPU không phải là 100% vì thời gian phản hồi IO. Điều này không có nghĩa là thiết bị IO sẽ ở tốc độ tối đa, nhưng thiết bị io sẽ bận 100%, đôi khi ảnh hưởng đến các ứng dụng sử dụng IO ex: âm nhạc có thể bị hỏng.


2
Siêu phân luồng là lý do tại sao bạn nhìn thấy 4 thay vì 2.
derobert

1
Cả tài liệu và cpuinfo đều cho bạn biết rằng bạn có hai lõi cpu. Bộ xử lý 0 và 1 nằm trên lõi 0 trong khi bộ xử lý 2 và 3 nằm trên lõi 1 (nhìn vào dòng core id). Việc physical idcung cấp cho bạn chip (tôi đoán). Ở đây, nó là 0 cho tất cả các bộ xử lý, vì vậy bạn chỉ có một chip.
lgeorget

Vậy bộ xử lý tải đến 100% ... 2 hay 4 là gì?
Madhurendra Sachan

Bộ xử lý ở đây là gì?
Madhurendra Sachan

Xin lưu ý rằng định nghĩa về luồng của Intel ("Một luồng hoặc luồng thực hiện, là một thuật ngữ phần mềm cho chuỗi hướng dẫn được sắp xếp cơ bản có thể được truyền qua hoặc xử lý bởi một lõi CPU ") có thể khiến người ta nghĩ rằng với 2 lõi và 4 luồng, như đã nêu trong thông số kỹ thuật, 2x4 = 8 luồng đang chạy. Trên thực tế, bạn có tổng cộng 4 luồng và 2 lõi trông giống như 4. Định nghĩa của Công nghệ siêu phân luồng Intel® rõ ràng hơn: nó "cung cấp hai luồng xử lý cho mỗi lõi vật lý " và giải thích rõ hơn rằng hệ thống của bạn nhìn thấy 4 bộ xử lý / anh chị em trong số 2 lõi cpu được gắn một chip
XavierStuvw 18/12/18

Câu trả lời:


35

Các từ, CPU CPU, bộ xử lý và các bộ xử lý lõi cứng được sử dụng theo những cách hơi khó hiểu. Họ đề cập đến kiến ​​trúc bộ xử lý. Lõi là đơn vị độc lập nhỏ nhất thực hiện bộ xử lý đa năng; bộ xử lý là tập hợp các lõi (trên một số hệ thống ARM, bộ xử lý là tập hợp các cụm mà chính chúng là tập hợp các lõi). Một chip có thể chứa một hoặc nhiều bộ xử lý (chip x86 chứa một bộ xử lý, theo nghĩa này của bộ xử lý văn bản ).

Siêu phân luồng có nghĩa là một số phần của lõi được nhân đôi. Một lõi với siêu phân luồng đôi khi được trình bày dưới dạng tập hợp của hai lõi ảo của Google - có nghĩa là không phải mỗi lõi là ảo, mà số nhiều là ảo vì chúng không thực sự tách rời lõi và đôi khi chúng sẽ phải chờ trong khi lõi kia là sử dụng một phần được chia sẻ.

Đối với phần mềm có liên quan, chỉ có một khái niệm hữu ích ở hầu hết mọi nơi: khái niệm về các luồng thực thi song song. Vì vậy, trong hầu hết các hướng dẫn sử dụng phần mềm, thuật ngữ CPUbộ xử lý được sử dụng để chỉ bất kỳ một phần cứng nào thực thi mã chương trình. Về mặt phần cứng, điều này có nghĩa là một lõi hoặc một lõi ảo với siêu phân luồng.

Do đó tophiển thị cho bạn 4 CPU, bởi vì bạn có thể có 4 luồng thực thi cùng một lúc. /proc/cpuinfocó 4 mục, một mục cho mỗi CPU (theo nghĩa đó). Các processorsố (là số lượng các mục trong ) tương ứng với 4 chủ đề này.cpuNUMBER/sys/devices/system/cpu

/proc/cpuinfo là một trong số ít nơi bạn nhận được thông tin về phần cứng nào thực hiện các luồng thực thi này:

physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2

có nghĩa cpu0là một trong 4 luồng bên trong thành phần vật lý (bộ xử lý) số 0 và đó là lõi 0 trong số 2 trong bộ xử lý này.


Lời giải thích tuyệt vời bạn đã để lại 3 câu hỏi Once my cpu load was 3.70, Is this maximum load? Still at that time cpu was at <50%., What about turbo boost ? Are all cores are turbo boosted or only physical ?&How to check frequency.
Madhurendra Sachan

@MADTerry Chương trình nào báo cáo rằng tải cpu của Youtube là 3,70, trong điều khoản nào chính xác? Bạn có nghĩa là trung bình tải? Bạn có ý nghĩa gì với cpu của Cpu ở mức <50%? Về Turbo Boost, tôi không quen với điều đó, nhưng tôi không hiểu tại sao tất cả chúng sẽ không được tăng cường. Tất cả các lõi đều là vật lý, trừ khi bạn đang chạy trong một máy ảo: như tôi đã giải thích trong câu trả lời của mình, trong các lõi ảo của Cameron, đó không phải là các lõi ảo, đó là sự tách biệt của chúng.
Gilles 'SO- đừng trở nên xấu xa'

tải trung bình. uptime.by cpu tôi có nghĩa là sử dụng cpu. Tôi hiểu tại sao. Nhưng làm thế nào để kiểm tra tần số hoặc kiểm tra xem cpu có được tăng tốc không?
Madhurendra Sachan

Tôi cũng sẽ tranh luận rằng, về phần mềm cấp cao, bạn khá quan tâm đến các quy trình (xem top, uptime). Đơn vị phần cứng nào xử lý các quy trình cuối cùng là vấn đề của phần mềm cấp thấp (biên dịch, hệ điều hành). Báo cáo cpuinfo trừu tượng hóa thực tế rằng mỗi bộ xử lý vật lý (một trong số nhiều cpu đang chết) có thể mở rộng khả năng tính toán của nó bằng các chiến công công nghệ như đa luồng. Nó sẽ coi "mọi thứ" có thể xử lý một tiến trình tại một thời điểm như một bộ xử lý. Trong con mắt kế toán của cpuinfo, các khả năng của thiết bị sẽ dẫn đến tổng số "bộ xử lý"
XavierStuvw 18/12/18

13

Chỉ cần trả lời câu hỏi đầu tiên của bạn. Trong đầu ra của cat /proc/cpuinfobạn có thể thấy các thông tin sau: -

physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2

Bạn có thể thấy số lượng siblings is 4cpu cores is 2. cpu coreslà 2 là tổng số lõi trong bộ xử lý có thể được kiểm tra từ thông số kỹ thuật được cung cấp trong URL của intel mà bạn đã cung cấp. Tương tự siblingslà một được xác định bởi số lượng chủ đề được cung cấp bởi HTT của intel.

Tương tự, đối với id vật lý 0, chỉ ra rằng chỉ có một chip xử lý và đối với id lõi, bạn có thể thấy 0 and 1đó là 2 lõi trong bộ xử lý.

Cập nhật: Thêm câu trả lời cho các câu hỏi khác.

Điều gì về turbo boost? Có phải tất cả các lõi được tăng cường hoặc chỉ vật lý?

Vâng, tôi sẽ nói, tất cả các lõi hoạt động đều được tăng cường. Này anh bạn, đáng lẽ bạn nên xem các ví dụ của Wikipedia yêu quý của chúng tôi . Giải thích với tính toán quá.

Any method in ubuntu to get current cpu freq. if processor is on turbo boost or not.

Turbo boost hay không bạn có thể các chi tiết freq trong đầu ra của lscpu. Và cho một đầu ra tinh chế: -

lscpu | grep Hz

Câu trả lời ngắn & nhanh nhưng bạn có thể giải thích 3 còn lại không?
Madhurendra Sachan

@MADTerry cảm ơn nhưng những người khác tôi không rõ, sẽ làm một số nghiên cứu và chỉnh sửa câu trả lời của tôi. Trong khi đó hãy xem nếu có người khác xuất hiện.
beginer

1
+1 cho lscpulệnh.
Arda

8

Bạn có thể thử điều này trong thiết bị đầu cuối:

sudo lscpu

Điều này sẽ cung cấp cho bạn một cái nhìn tổng quan về đặc điểm vật lý cpu của bạn. Về việc tăng tốc hay không, đây hoàn toàn là kiểm soát phần cứng so với hệ điều hành, vì vậy trừ khi Intel có trình điều khiển cụ thể cho Linux có thể điều chỉnh tốc độ bộ xử lý của bạn, không có sự kiểm soát chắc chắn nào để kiểm tra trạng thái tăng tốc của turbo (trừ khi có mã lệnh cho Kiểm tra các diễn đàn khác nếu có bất kỳ manh mối nào liên quan đến câu hỏi của bạn).

Đối với tôi, đây là những gì tôi nhận được khi tôi gõ lệnh trên. AMD của tôi cho biết đây là lõi tứ, nhưng lõi vật lý của tôi được liệt kê ở đây chỉ có 2, với 2 luồng trên mỗi lõi (thêm tối đa 4 lõi). Tôi đang sử dụng bộ xử lý AMD A10 APU 5750m.

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            21
Model:                 19
Stepping:              1
CPU MHz:               2500.000
BogoMIPS:              4990.51
Virtualization:        AMD-V
L1d cache:             16K
L1i cache:             64K
L2 cache:              2048K
NUMA node0 CPU(s):     0-3

0

Tải hệ thống và% cpu là hai cách khác nhau để đo mức độ sử dụng năng lượng cpu của bạn.

  • tải hệ thống: có bao nhiêu tiến trình trên mỗi cpu đã ở trạng thái "sẵn sàng" - tính trung bình trong một thời gian. Lên đến 1 * cpu (trong trường hợp của bạn lên đến 4), hệ thống được coi là gần như không hoạt động (so với siêu thị nơi trung bình chỉ có một khách hàng đang chờ ở mỗi lần thanh toán). Bạn có thể sẽ không nhận thấy bất kỳ độ trễ nào lên tới 2 * cpu (trong trường hợp 8).
  • cpu%: bao nhiêu thời gian các cpus làm công việc thực tế bằng cách chạy một quy trình. Nó giống như quan điểm của nhân viên thu ngân - hay đúng hơn là người giám sát của họ - họ muốn họ luôn bận rộn.

Cả hai biện pháp đều liên quan nhưng không có cách nào giống hệt nhau.


tôi đã không hỏi khác nhau. Tôi đã đọc nó trong các bài viết. Dù sao câu trả lời của bạn mâu thuẫn với câu trả lời của Gilles.
Madhurendra Sachan

Bạn thấy mâu thuẫn ở đâu?
guntbert
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.