Как найти размер виртуальной памяти и размер кэша системы Linux?

82012
pineapple

Есть ли какая-нибудь команда для получения размера виртуальной памяти, размера кэша и скорости шины на передней панели системы Linux? Своп в linux такой же, как виртуальная память?

9
своп == виртуальная память Joakim Elofsson 14 лет назад 2
Нет, своп и виртуальная память совершенно разные. Например, при отображении памяти в файле объемом 1 ГБ используется 1 ГБ виртуальной памяти, но при этом не происходит никаких изменений в использовании подкачки. Своп является формой бэк-магазина. Многие виды использования виртуальной памяти не имеют ничего общего с резервным хранилищем. (И были системы с виртуальной памятью и без подкачки, а также системы с подкачкой, но без виртуальной памяти.) David Schwartz 11 лет назад 4
Пожалуйста, дайте характеристики вашего процессора. Откройте BIOS при запуске вашей системы, чтобы определить частоту FSB вашего процессора. Или просто Google модель вашего процессора. Если у вас есть настольный ПК, вы можете открыть корпус и посмотреть на процессор непосредственно, чтобы найти модель. Jonno_FTW 14 лет назад 0
Виртуальная память = физическая память + пространство подкачки Pratik Khadloya 6 лет назад 0

9 ответов на вопрос

10
nagul

Да, своп это виртуальная память.

Размер виртуальной памяти Используйте swapon -s или бесплатно

$ swapon -s Filename Type Size Used Priority /dev/sda6 partition 1004020 39620 -1  $ free total used free shared buffers cached Mem: 3087892 2879036 208856 0 394288 835052 -/+ buffers/cache: 1649696 1438196 Swap: 1004020 39620 964400 

Размер кэша Получите это из / proc / cpuinfo . Поле « Размер кэша » дает вам кэш на процессоре. На многоядерных машинах вы увидите одну запись на процессор с собственным значением кэша.

$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 14 model name : Genuine Intel(R) CPU T2300 @ 1.66GHz stepping : 8 cpu MHz : 1000.000 cache size : 2048 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon bts pni monitor est tm2 xtpr pdcm bogomips : 3324.64 clflush size : 64 power management: 

Лицевая сторона шины (FSB) скорость Вы можете получить это от dmidecode утилиты, с --type процессора аргумента. Вам нужно разрешение sudo для запуска этой команды. FSB указывается скоростью, сообщенной для « Внешних часов ». Фактическая скорость обычно в 4 раза превышает заявленную скорость, так как эти многочисленные инструкции выполняются за такт.

$ sudo dmidecode --type processor # dmidecode 2.9 SMBIOS 2.4 present.  Handle 0x0400, DMI type 4, 32 bytes Processor Information  Socket Designation: Microprocessor Type: Central Processor Family: Pentium M Manufacturer: Intel ID: E8 06 00 00 FF FB E9 BF Signature: Type 0, Family 6, Model 14, Stepping 8 Flags: FPU (Floating-point unit on-chip) VME (Virtual mode extension) DE (Debugging extension) PSE (Page size extension) TSC (Time stamp counter) MSR (Model specific registers) PAE (Physical address extension) MCE (Machine check exception) CX8 (CMPXCHG8 instruction supported) APIC (On-chip APIC hardware supported) SEP (Fast system call) MTRR (Memory type range registers) PGE (Page global enable) MCA (Machine check architecture) CMOV (Conditional move instruction supported) PAT (Page attribute table) CLFSH (CLFLUSH instruction supported) DS (Debug store) ACPI (ACPI supported) MMX (MMX technology supported) FXSR (Fast floating-point save and restore) SSE (Streaming SIMD extensions) SSE2 (Streaming SIMD extensions 2) SS (Self-snoop) HTT (Hyper-threading technology) TM (Thermal monitor supported) PBE (Pending break enabled) Version: Not Specified Voltage: 3.3 V External Clock: 133 MHz Max Speed: 1800 MHz Current Speed: 1000 MHz Status: Populated, Enabled Upgrade: None L1 Cache Handle: 0x0700 L2 Cache Handle: 0x0701 L3 Cache Handle: Not Provided 
У меня есть Linux, у него нет команды dmidecode / lshw pineapple 14 лет назад 0
В каком дистрибутиве вы работаете? nagul 14 лет назад 0
Кроме того, у вас есть доступ sudo для запуска этих команд на компьютере? nagul 14 лет назад 0
выходной формат swapon -s устарел. Вместо этого используйте swapon --show Waruna Ranasinghe 6 лет назад 0
10
nagul

Этот вопрос полностью содержится в вашем предыдущем вопросе Как найти размер виртуальной памяти и размер кэша системы Linux? , Как указано в моем ответе на этот вопрос, sudo dmidecode --type processorкоманда дает вам скорость «Внешние часы», а скорость FSB кратна (обычно 2 или 4 раза) этой скорости.

Если это не помогло вам, вам следует отредактировать исходный вопрос и сообщить нам, какой вывод вы получили или в чем была ошибка. Чем конкретнее вы, тем лучше другие могут вам помочь.

Как указал специалист The Journeyman, вы можете получить ту же меру «Внешние часы» из lshwзначения, сообщенного для «часов» в выходных данных, связанных с процессором.

 *-cpu description: CPU product: Genuine Intel(R) CPU T2300 @ 1.66GHz vendor: Intel Corp. physical id: 400 bus info: cpu@0 version: 6.14.8 serial: 0000-06E8-0000-0000-0000-0000 slot: Microprocessor size: 1GHz capacity: 1800MHz width: 32 bits clock: 133MHz capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon bts pni monitor est tm2 xtpr pdcm cpufreq configuration: id=0 

Наконец, вы можете найти внешнюю тактовую частоту на выходе dmesg, хотя это ни в коем случае не является стандартным способом доступа к этой информации. Вы можете узнать скорость FSB через настройки BIOS или поиск спецификации процессора, хотя они не относятся к Linux.

`dmidecode` работает только на x86. У процессоров ARM нет команды, и они часто возвращают бесполезные значения, например, некорректные BogMIPS. jww 7 лет назад 0
Я немного смущен тем, как это было принято. Похоже, это только отвечает на часть вопроса Gi0rgi0s 6 лет назад 0
3
Tom

Попробуйте это на Linux-машине: cat /proc/pal/cpu0/cache_info

Это покажет что-то вроде:

Cache levels : 3 Unique caches : 5  Data Cache level 1: Size : 16384 bytes Attributes : WriteThrough Associativity : 4 Line size : 64 bytes Stride : 128 bytes Store latency : 0 cycle(s) Load latency : 1 cycle(s) Store hints : Load hints : [Temporal, level 1] Alias boundary : 4096 byte(s) Tag LSB : 12 Tag MSB : 49 Instruction Cache level 1: Size : 16384 bytes Attributes : Associativity : 4 Line size : 64 bytes Stride : 128 bytes Store latency : N/A Load latency : 1 cycle(s) Store hints : Load hints : [Temporal, level 1] Alias boundary : 4096 byte(s) Tag LSB : 12 Tag MSB : 49 Data Cache level 2: Size : 262144 bytes Attributes : WriteBack Associativity : 8 Line size : 128 bytes Stride : 128 bytes Store latency : 7 cycle(s) Load latency : 5 cycle(s) Store hints : [Temporal, level 1][Non-temporal, all levels] Load hints : [Temporal, level 1][Non-temporal, level 1][Non-temporal, all levels] Alias boundary : 4096 byte(s) Tag LSB : 15 Tag MSB : 49 Instruction Cache level 2: Size : 524288 bytes Attributes : Associativity : 8 Line size : 128 bytes Stride : 128 bytes Store latency : N/A Load latency : 7 cycle(s) Store hints : Load hints : [Temporal, level 1][Non-temporal, level 1][Non-temporal, all levels] Alias boundary : 4096 byte(s) Tag LSB : 16 Tag MSB : 49 Data/Instruction Cache level 3: Size : 4194304 bytes Attributes : Unified WriteBack Associativity : 8 Line size : 128 bytes Stride : 128 bytes Store latency : 7 cycle(s) Load latency : 14 cycle(s) Store hints : [Temporal, level 1] Load hints : [Temporal, level 1][Non-temporal, level 1] Alias boundary : 4096 byte(s) Tag LSB : 19 Tag MSB : 49 
2
Journeyman Geek

Я верю, что у lshw есть эта информация. Однако не во всех дистрибутивах есть (подсказка - в следующий раз, ПОЖАЛУЙСТА, укажите, какой дистрибутив и версию вы используете. Это очень помогает. Также помогает быть точным в том, что вы делали до сих пор. «Какая-то команда как» не достаточно хороша)

2
sunpy

Try ulimit -a, on my machine it will show something like:

core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 31321 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 31321 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited 

Run free, on my machine the result is like this:

 total used free shared buffers cached Mem: 4024900 606472 3418428 0 85768 366980 -/+ buffers/cache: 153724 3871176 Swap: 3998716 0 3998716 

I wrote this code to test how many threads a process can create:

#include<iostream> #include<pthread.h> #include<unistd.h> #include<stdio.h> using namespace std; #define MAX_THREAD_NUM 1100 void * threadTest(void* arg){ while(true){ sleep(5); } pthread_exit(NULL); } int main(){ for(int i = 0;i< MAX_THREAD_NUM;i++){ pthread_t tid; cout<<"create thread "<< i <<"... "<<endl; int ret = pthread_create(&tid,NULL,&threadTest,NULL); if(ret !=0){ perror("pthread_create error"); } pthread_detach(tid); } while(true){ sleep(5); } return 0; } 

The result is like this:

create thread 378... create thread 379... create thread 380... create thread 381... create thread 382... pthread_create error: Cannot allocate memory create thread 383... pthread_create error: Cannot allocate memory create thread 384... pthread_create error: Cannot allocate memory create thread 385... pthread_create error: Cannot allocate memory create thread 386... pthread_create error: Cannot allocate memory 
1
joe

vmstat

Отчеты vmstat сообщают статистику виртуальной памяти, которая содержит информацию о процессах, подкачке, освобождении, буфере и кэш-памяти, пространстве подкачки, активности дискового ввода-вывода, прерываниях, прерываниях, переключениях контекста и активности процессора. С помощью команды vmstat администраторы могут получать мгновенные отчеты об использовании памяти.

Синтаксис vmstat

vmstat -[options] [delay count] 

Пример использования vmstat

vmstat 

Нашел здесь

1, лучше, чем мое решение: D, дает больше информации monkey_p 14 лет назад 0
1
perlguy9

Команда «free» покажет вам использование памяти, включая то, что на самом деле используется против того, что находится в буферах / кэше.

 # free total used free shared buffers cached Mem: 3896252 3779044 117208 0 65788 1363972 -/+ buffers/cache: 2349284 1546968 Swap: 2097144 886836 1210308 

Команда "dmidecode" может дать вам некоторое представление о скорости FSB.

0
joe

Размер страницы :

$ getconf PAGESIZE 

(или же)

$ getconf PAGE_SIZE 

Пытаться

swapinfo or swapinfo -a 
0
monkey_p
swapon -s 

В используемом поле будет указана сумма, используемая в данный момент.

Filename Type Size Used Priority /dev/sda5 partition 859436 0 -1