Linux. Информация о процессоре
Простейший способ посмотреть характеристики процессора — открыть автоматически обновляемый системой файл /proc/cpuinfo
. Так можно узнать количество ядер и потоков процессора, тактовую частоту, модель, размер кэша и т.п. Утилита lscpu
отображает содержимое /proc/cpuinfo
в более удобном для пользователя виде.
$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 55 model name : Intel(R) Celeron(R) CPU N2830 @ 2.16GHz stepping : 8 microcode : 0x838 cpu MHz : 499.800 cache size : 1024 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 11 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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer rdrand lahf_lm 3dnowprefetch epb pti ibrs ibpb stibp tsc_adjust smep erms dtherm arat md_clear bugs : cpu_meltdown spectre_v1 spectre_v2 mds msbds_only mmio_unknown bogomips : 4333.33 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 55 model name : Intel(R) Celeron(R) CPU N2830 @ 2.16GHz stepping : 8 microcode : 0x838 cpu MHz : 512.573 cache size : 1024 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 2 initial apicid : 2 fpu : yes fpu_exception : yes cpuid level : 11 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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer rdrand lahf_lm 3dnowprefetch epb pti ibrs ibpb stibp tsc_adjust smep erms dtherm arat md_clear bugs : cpu_meltdown spectre_v1 spectre_v2 mds msbds_only mmio_unknown bogomips : 4333.33 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:
Каждый процессор или ядро перечислены отдельно, а различные подробности о скорости, размере кэша и названии модели включены в описание.
Количество процессоров, показанное в /proc/cpuinfo
, может не соответствовать реальному количеству ядер процессора. Например, процессор с 2 ядрами и гиперпоточностью будет показан как процессор с 4 ядрами.
Процессор с технологией Hyper-Threading состоит из двух логических процессоров на физическое ядро. Каждый логический процессор может работать независимо — может быть остановлен, прерван и направлен на выполнение определенного потока. Это позволяет назначать ресурсы физического ядра одновременно двум отдельным потокам.
Традиционная многоядерная система состоит из отдельных физических процессоров и имеет отдельные ресурсы. Но, в случае логических процессоров, они разделяют ресурсы одного ядра. Эти ресурсы включают интерфейс системной шины, кэши и механизм выполнения.
Такое совместное использование позволяет логическомим процессорам более эффективно взаимодействовать друг с другом. Логический процессор также может заимствовать системные ресурсы у другого логического процессора (когда он не используется), но оба логических процессора должны быть на одном физическом ядре.
Утилита lscpu
выводит информацию об аппаратном обеспечении CPU в удобном для пользователя формате.
$ lscpu Архитектура: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 36 bits physical, 48 bits virtual Порядок байт: Little Endian CPU(s): 2 On-line CPU(s) list: 0,1 ID прроизводителя: GenuineIntel Имя модели: Intel(R) Celeron(R) CPU N2830 @ 2.16GHz Семейство ЦПУ: 6 Модель: 55 Потоков на ядро: 1 Ядер на сокет: 2 Сокетов: 1 Степпинг: 8 CPU max MHz: 2165,8000 CPU min MHz: 499,8000 BogoMIPS: 4333.33 Флаги: 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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer rdrand lahf_lm 3dnowprefetch epb pti ibrs ibpb stibp tsc_adjust smep erms dtherm arat md_clear Caches (sum of all): L1d: 48 KiB (2 instances) L1i: 64 KiB (2 instances) L2: 1 MiB (1 instance) NUMA: NUMA node(s): 1 NUMA node0 CPU(s): 0,1 Vulnerabilities: Gather data sampling: Not affected Itlb multihit: Not affected L1tf: Not affected Mds: Mitigation; Clear CPU buffers; SMT disabled Meltdown: Mitigation; PTI Mmio stale data: Unknown: No mitigations Retbleed: Not affected Spec store bypass: Not affected Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization Spectre v2: Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP disabled, RSB filling, PBRSB-eIBRS... Srbds: Not affected Tsx async abort: Not affected
Здесь видно, что у процессора два ядра (ядер на сокет: 2), без гиперпоточности (потоков на ядро: 1).