Linuxシステムの仮想メモリサイズ、キャッシュサイズ、フロントサイドバス速度を取得するコマンドはありますか? Linuxのスワップは仮想メモリと同じですか?
この質問は、前の質問に完全に含まれています 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
の出力で外部クロック速度を確認できますが、これはこの情報にアクセスするための標準的な方法ではありません。これらはLinux固有ではありませんが、FSB BIOS設定を介して、またはCPU仕様を調べることによって速度を見つけることができます。
はい、スワップは仮想メモリです。
仮想メモリサイズ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から取得します。 「cache size」フィールドは、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)速度これはdmidecodeユーティリティから-type processor引数。このコマンドを実行するには、Sudo権限が必要です。 FSBは、「External Clock」について報告された速度で示されます。実際の速度はtypical報告された速度の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マシンでこれを試してください: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
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
Lshwにはその情報があると思います。ただし、すべてのディストリビューションにあるわけではありません(ヒント-次に使用するディストリビューションとバージョンに言及してください。これは非常に役立ちます。また、これまでに行ったことを具体的に説明するのに役立ちます。「あるコマンド」では不十分です)。
vmstat
vmstatレポートは、プロセス、スワップ、空き、バッファーおよびキャッシュメモリ、ページングスペース、ディスクIOアクティビティ、トラップ、割り込み、コンテキストスイッチ、およびCPUアクティビティに関する情報を含む、仮想メモリ統計を報告します。コマンドを使用すると、管理者はメモリ使用量に関する即時レポートを作成できます。
Vmstatの構文
vmstat -[options] [delay count]
Vmstatの使用例
vmstat
見つかりました ここ
「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速度についての洞察を与えるかもしれません。
ページサイズ :
$ getconf PAGESIZE
(または)
$ getconf PAGE_SIZE
試す
swapinfo or swapinfo -a
swapon -s
使用済みフィールドは、現在使用中の量を示します
Filename Type Size Used Priority
/dev/sda5 partition 859436 0 -1