[<prev] [next>] [day] [month] [year] [list]
Message-ID: <4ff1c39e-2825-ff3d-35a0-299e18feb021@profitbricks.com>
Date: Mon, 19 Dec 2016 15:19:14 +0100
From: Gioh Kim <gi-oh.kim@...fitbricks.com>
To: Arnaldo Carvalho de Melo <acme@...hat.com>,
Wang Nan <wangnan0@...wei.com>, namhyung@...nel.org
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: [RFC] Too low cache-misses ratio
Hi,
Some of my AMD servers often reported "L3 ECC error and L2 cache error".
I thought I could generated the errors if I set the machines on the heavy load.
So I ran stress-ng tool with various options but system did not generate any error.
I wanted to check the stress-ng tool really generate heavy load on physical memory, not only CPU-internal cache.
So I checked the "cache-misses" event like following and found "cache-misses" ratio is very low (0.02%).
I ran the same test many times with other vm-method options.
But the result was the same.
The total memory size I tested was almost 100G.
And the "Page Faults Minor" showed that stress-ng loaded 100G memory (25,000,000 faults = 4K X 25,000,000 = 100G)
So I'm sure the stress-ng tool really allocated 100G memory and did RW on the memory.
I don't understand why the "cache-misses" ratio is so low.
I thanks you for any comment.
------------------------------------- 8< -----------------------------------------------------
$ ./stress-ng --version
stress-ng, version 0.07.04
$ free -m
total used free shared buffers cached
Mem: 128405 2455 125950 919 0 919
-/+ buffers/cache: 1535 126870
Swap: 0 0 0
$ cat /proc/cpuinfo | head
processor : 0
vendor_id : AuthenticAMD
cpu family : 21
model : 2
model name : AMD Opteron(tm) Processor 6386 SE
stepping : 0
microcode : 0x600084f
cpu MHz : 1400.000
cache size : 2048 KB
physical id : 0
$ sudo ./stress-ng --perf --vm 64 --vm-bytes $(awk '/MemFree/{printf "%d\n", $2 * 0.80 / 64 ;}' < /proc/meminfo)k --vm-keep --vm-method all --timeout 300
stress-ng: info: [20968] dispatching hogs: 64 vm
stress-ng: info: [20968] cache allocate: default cache size: 6144K
stress-ng: info: [20968] successful run completed in 302.50s (5 mins, 2.50 secs)
stress-ng: info: [20968] vm:
stress-ng: info: [20968] 59.625.548.465.728 CPU Cycles 0,20 T/sec
stress-ng: info: [20968] 30.106.848.579.392 Instructions 99,53 B/sec (0,505 instr. per cycle)
stress-ng: info: [20968] 4.800.220.379.264 Cache References 15,87 B/sec
stress-ng: info: [20968] 982.117.952 Cache Misses 3,25 M/sec ( 0,02%)
stress-ng: info: [20968] 2.755.103.880.192 Stalled Cycles Frontend 9,11 B/sec
stress-ng: info: [20968] 17.182.333.136.704 Stalled Cycles Backend 56,80 B/sec
stress-ng: info: [20968] 4.817.817.144.960 Branch Instructions 15,93 B/sec
stress-ng: info: [20968] 5.185.048.384 Branch Misses 17,14 M/sec ( 0,11%)
stress-ng: info: [20968] 25.898.048 Page Faults Minor 85,61 K/sec
stress-ng: info: [20968] 0 Page Faults Major 0,00 /sec
stress-ng: info: [20968] 100.224 Context Switches 331,32 /sec
stress-ng: info: [20968] 448 CPU Migrations 1,48 /sec
stress-ng: info: [20968] 0 Alignment Faults 0,00 /sec
stress-ng: info: [20968] 25.897.920 Page Faults User 85,61 K/sec
stress-ng: info: [20968] 128 Page Faults Kernel 0,42 /sec
stress-ng: info: [20968] 5.696 System Call Enter 18,83 /sec
stress-ng: info: [20968] 5.696 System Call Exit 18,83 /sec
stress-ng: info: [20968] 5.632 TLB Flushes 18,62 /sec
stress-ng: info: [20968] 3.200 Kmalloc 10,58 /sec
stress-ng: info: [20968] 0 Kmalloc Node 0,00 /sec
stress-ng: info: [20968] 1.024 Kfree 3,39 /sec
stress-ng: info: [20968] 420.800 Kmem Cache Alloc 1,39 K/sec
stress-ng: info: [20968] 64 Kmem Cache Alloc Node 0,21 /sec
stress-ng: info: [20968] 24.448 Kmem Cache Free 80,82 /sec
stress-ng: info: [20968] 25.901.504 MM Page Alloc 85,63 K/sec
stress-ng: info: [20968] 25.895.168 MM Page Free 85,60 K/sec
stress-ng: info: [20968] 5.839.360 RCU Utilization 19,30 K/sec
stress-ng: info: [20968] 1.280 Sched Migrate Task 4,23 /sec
stress-ng: info: [20968] 0 Sched Move NUMA 0,00 /sec
stress-ng: info: [20968] 100.480 Sched Wakeup 332,17 /sec
stress-ng: info: [20968] 320 Signal Generate 1,06 /sec
stress-ng: info: [20968] 128 Signal Deliver 0,42 /sec
stress-ng: info: [20968] 0 IRQ Entry 0,00 /sec
stress-ng: info: [20968] 0 IRQ Exit 0,00 /sec
stress-ng: info: [20968] 2.970.624 Soft IRQ Entry 9,82 K/sec
stress-ng: info: [20968] 2.970.624 Soft IRQ Exit 9,82 K/sec
stress-ng: info: [20968] 20.928 Writeback Dirty Inode 69,18 /sec
stress-ng: info: [20968] 0 Writeback Dirty Page 0,00 /sec
$ sudo perf stat -e cache-misses,cache-references -a ./stress-ng --vm 64 --vm-bytes $(awk '/MemFree/{printf "%d\n", $2 * 0.80 / 64 ;}' < /proc/meminfo)k --vm-keep --vm-method all --timeout 300
stress-ng: info: [22150] dispatching hogs: 64 vm
stress-ng: info: [22150] cache allocate: default cache size: 6144K
stress-ng: info: [22150] successful run completed in 300.59s (5 mins, 0.59 secs)
Performance counter stats for 'system wide':
1.044.067.793 cache-misses # 0,016 % of all cache refs (100,00%)
6.532.742.696.151 cache-references
300,648153378 seconds time elapsed
Powered by blists - more mailing lists