리눅스 시스템의 가상 메모리 크기와 캐시 크기를 찾는 방법은 무엇입니까?


11

리눅스 시스템의 가상 메모리 크기, 캐시 크기 및 프론트 사이드 버스 속도를 얻는 명령이 있습니까? 리눅스에서의 스왑은 가상 메모리와 동일합니까?


2
swap == 가상 메모리
Joakim Elofsson

CPU의 사양을 알려주십시오. 시스템 시작시 BIOS를 열어 CPU의 FSB를 확인하십시오. 또는 Google의 CPU 모델을 Google에 표시하십시오. 데스크탑 PC가있는 경우 케이스를 열고 CPU를 직접보고 모델을 찾을 수 있습니다.
Jonno_FTW

5
아니요, 스왑과 가상 메모리는 완전히 다릅니다. 예를 들어, 1GB 파일의 메모리 매핑은 추가 1GB의 가상 메모리를 사용하지만 스왑 사용에는 변경이 없습니다. 스왑은 일종의 백업 저장소입니다. 가상 메모리의 많은 용도는 백업 저장소와 관련이 없습니다. (그리고 가상 메모리가 있고 스왑이없는 시스템과 스왑이 있지만 가상 메모리가없는 시스템이 있습니다.)
David Schwartz

가상 메모리 = 실제 메모리 + 스왑 공간
Pratik Khadloya

답변:


11

이 질문은 이전 질문에 완전히 포함되어 있습니다 . 리눅스 시스템의 가상 메모리 크기와 캐시 크기를 찾는 방법은 무엇입니까? . 그 질문에 대한 나의 대답 에서 지적했듯이 , sudo dmidecode --type processor명령은 "외부 클럭"속도를 제공하며 FSB 속도는이 속도의 배수 (일반적으로 2 또는 4 배)입니다.

그래도 문제가 해결되지 않으면 원래 질문을 편집하여 어떤 결과를 얻었는지 또는 오류가 무엇인지 알려주십시오. 더 구체적 일수록 다른 사람들이 더 잘 도울 수 있습니다.

Journeyman 괴짜가 지적한 것처럼 일반적으로 lshwCPU 관련 출력에서 ​​"clock"에 대해보고 된 값 에서 동일한 "외부 클록"측정 값을 얻을 수 있습니다 .

 *-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 설정을 통하거나 CPU 사양을 검색하여 찾을 수 있습니다 (Linux 전용은 아님).


dmidecodex86에서만 작동합니다. ARM 프로세서에는 명령이 없으며 종종 잘못된 BogMIPS와 같이 쓸모없는 값을 반환합니다.
jww

1
이것이 어떻게 받아 들여 졌는지 조금 혼란 스럽습니다. 그것은 질문의 일부에 대해서만 답하는 것 같습니다
Gi0rgi0s

이것이 왜 대답입니까? 가상 메모리 크기를 결정하는 방법은 나와 있지 않습니다.
jww

10

예, 스왑은 가상 메모리입니다.

가상 메모리 크기 를 사용하여 -s swapon 명령 또는 무료

$ 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 에서 가져옵니다 . " 캐시 크기 "필드는 CPU의 캐시를 제공합니다. 멀티 코어 머신에서는 자체 캐시 값을 가진 프로세서 당 하나의 항목이 표시됩니다.

$ 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) 속도 --type processor 인수 를 사용하여 dmidecode 유틸리티 에서이를 얻을 수 있습니다 . 이 명령을 실행하려면 sudo 권한이 필요합니다. FSB는 " External Clock "에 대해보고 된 속도로 표시됩니다 . 실제 속도는 클럭주기마다 많은 명령이 실행되므로 일반적으로 보고 된 속도의 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

나는 리눅스를 가지고 있고, 그것은 dmidecode / lshw 명령을 가지고 있지 않다
파인애플

어떤 배포판을 사용하고 있습니까?

또한 머신에서 이러한 명령을 실행하기위한 sudo 액세스 권한이 있습니까?

swapon -s 출력 형식은 더 이상 사용되지 않습니다. 대신 swapon --show를 사용하십시오
Waruna Ranasinghe

3

나는 lshw가 그 정보를 가지고 있다고 믿는다. 그러나 모든 배포판에 해당되는 것은 아닙니다. (다음에는 사용중인 배포판과 버전을 언급하십시오. 많은 도움이됩니다. 지금까지 수행 한 작업에 대해 구체적으로 설명하는 데 도움이됩니다.


3

리눅스 머신에서 이것을 시도하십시오 : 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

3

시도 ulimit -a는 같은 표시됩니다 내 컴퓨터에 :

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

실행 free, 내 컴퓨터의 결과는 다음과 같다 :

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

프로세스가 만들 수있는 스레드 수를 테스트하기 위해이 코드를 작성했습니다.

#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;

}

결과는 다음과 같습니다.

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

2

vmstat

vmstat 보고서는 프로세스, 스왑, 사용 가능, 버퍼 및 캐시 메모리, 페이징 공간, 디스크 IO 활동, 트랩, 인터럽트, 컨텍스트 스위치 및 CPU 활동에 대한 정보가있는 가상 메모리 통계를보고합니다. vmstat 명령을 사용하면 관리자는 메모리 사용량에 대한 즉각적인 보고서를 가질 수 있습니다.

vmstat의 구문

vmstat -[options] [delay count]

vmstat 사용법 예

vmstat

여기 에서 발견


1 : 내 솔루션보다 낫다 : D, 더 많은 정보 제공
monkey_p

2

"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
swapon -s

사용 된 필드는 현재 사용중인 양을 나타냅니다

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

-1

페이지 크기 :

$ getconf PAGESIZE

(또는)

$ getconf PAGE_SIZE

시험

swapinfo or swapinfo -a 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.