Linuxシステムの仮想メモリサイズとキャッシュサイズを見つける方法は?


11

Linuxシステムの仮想メモリサイズ、キャッシュサイズ、フロントサイドバス速度を取得するコマンドはありますか?Linuxのスワップは仮想メモリと同じですか?


2
swap ==仮想メモリ
Joakim Elofsson

お使いのCPUのスペックを教えてください。システムの起動時にBIOSを開いて、CPUのFSBを確認します。または単にあなたのCPUのモデルをグーグル。デスクトップPCをお持ちの場合は、ケースを開いてCPUを直接確認し、モデルを見つけることができます。
Jonno_FTW 2009

5
いいえ、スワップと仮想メモリは完全に異なります。たとえば、1 GBのファイルをメモリマッピングすると、追加の1 GBの仮想メモリが使用されますが、スワップの使用に変更はありません。スワップは、バッキングストアの形式です。仮想メモリの多くの用途は、バッキングストアとは何の関係もありません。(そして、仮想メモリとスワップのないシステムと、スワップはあるが仮想メモリのないシステムがありました。)
David Schwartz

仮想メモリ=物理メモリ+スワップスペース
Pratik Khadloya 2017

回答:


11

この質問は、前の質問に完全に含まれています。Linuxシステムの仮想メモリサイズとキャッシュサイズを見つける方法は?。その質問に対する私の回答で指摘したように、sudo dmidecode --type processorコマンドは「外部クロック」速度を提供し、FSB速度はこの速度の倍数(通常は2または4倍)です。

これでうまくいかなかった場合は、元の質問を編集して、得られた出力またはエラーを教えてください。あなたがより具体的であるほど、他の人があなたを助けることができます。

The Journeymanオタクが指摘したように、通常lshw、CPUに関連する出力の「クロック」について報告された値で、同じ「外部クロック」測定値をから取得できます。

 *-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 2016

1
これがどのように受け入れられたかについて、私は少し混乱しています。それは質問の一部にのみ答えるように見えます
Gi0rgi0s 2018年

なぜこれが受け入れられた答えなのですか?仮想メモリサイズの決定方法は記載されていません。
JWW

10

はい、スワップは仮想メモリです。

仮想メモリサイズswapon -sまたはfreeを 使用

$ 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上のキャッシュが表示されます。マルチコアマシンでは、独自のキャッシュ値を持つプロセッサごとに1つのエントリが表示されます。

$ 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プロセッサ引数を指定して 、dmidecodeユーティリティから取得できます。このコマンドを実行するには、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コマンドを使用していません
パイナップル

どのディストリビューションを実行していますか?

また、マシンでこれらのコマンドを実行するためのsudoアクセス権がありますか?

swapon -s出力形式は廃止されました。代わりにswapon --showを使用してください
Waruna Ranasinghe

3

lshwにはその情報があると思います。ただし、すべてのディストリビューションにあるわけではありません(ヒント-次に使用するディストリビューションとバージョンについて言及してください。これは非常に役立ちます。また、これまでに行ったことを具体的に説明するのにも役立ちます。「あるコマンド」では不十分です)。


3

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

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.