Hi all
We are using Dummynet on FreeBSD to emulate networks delay. We are running a high traffic and we have detected some problems. Even with any delay, packet loss etc in the pipes we reach a high use in our cpus.
We have this HW:
When we run our traffic, we can see this info in top :
Like you can see, we have 4 CPUs but we are using only 2. An these two cpus (cpu0 and cpu3) have a very high value for interrupt cpu level(84.0% interrupt).
We have tried with these commands, but situation ( only 2 cpu's in use) remains:
Another option is improve system behavior to avoid this high level of interruptions.
Any support will be wellcome:
1- How to force to use 4 cpu's
2- How to improve system behavior to reduce interruptions.
thanks in advances.
We are using Dummynet on FreeBSD to emulate networks delay. We are running a high traffic and we have detected some problems. Even with any delay, packet loss etc in the pipes we reach a high use in our cpus.
We have this HW:
Code:
sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu'
hw.machine: i386
hw.model: Dual-Core AMD Opteron(tm) Processor 2218
hw.ncpu: 4
hw.machine_arch: i386
Code:
top -aSCHIP
last pid: 13150; load averages: 0.00, 0.00, 0.00 up 3+17:39:16 10:50:25
80 processes: 7 running, 57 sleeping, 16 waiting
CPU 0: 0.0% user, 0.0% nice, 0.0% system, 80.1% interrupt, 19.9% idle
CPU 1: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle
CPU 2: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle
CPU 3: 0.0% user, 0.0% nice, 0.0% system, 84.0% interrupt, 16.0% idle
Mem: 14M Active, 145M Inact, 135M Wired, 112M Buf, 2961M Free
Swap: 16G Total, 16G Free
PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND
13 root 171 ki31 0K 8K CPU1 1 88.5H 100.00% [idle: cpu1]
12 root 171 ki31 0K 8K RUN 2 87.7H 100.00% [idle: cpu2]
38 root -68 - 0K 8K CPU3 3 98:36 86.47% [irq258: bce0]
39 root -68 - 0K 8K CPU0 0 55:41 83.01% [irq259: bce1]
14 root 171 ki31 0K 8K RUN 0 86.9H 22.90% [idle: cpu0]
11 root 171 ki31 0K 8K CPU3 3 87.7H 18.95% [idle: cpu3]
top -aSP
last pid: 13170; load averages: 0.00, 0.00, 0.00 up 3+17:45:06 10:56:15
80 processes: 8 running, 57 sleeping, 15 waiting
CPU 0: 0.0% user, 0.0% nice, 0.0% system, 73.8% interrupt, 26.2% idle
CPU 1: 0.0% user, 0.0% nice, 0.4% system, 0.0% interrupt, 99.6% idle
CPU 2: 0.0% user, 0.0% nice, 0.4% system, 0.0% interrupt, 99.6% idle
CPU 3: 0.0% user, 0.0% nice, 0.0% system, 74.6% interrupt, 25.4% idle
Mem: 14M Active, 145M Inact, 135M Wired, 112M Buf, 2961M Free
Swap: 16G Total, 16G Free
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
13 root 1 171 ki31 0K 8K RUN 1 88.6H 100.00% [idle: cpu1]
12 root 1 171 ki31 0K 8K RUN 2 87.8H 100.00% [idle: cpu2]
38 root 1 -68 - 0K 8K CPU3 3 103:13 83.59% [irq258: bce0]
39 root 1 -68 - 0K 8K CPU0 0 60:07 79.44% [irq259: bce1]
14 root 1 171 ki31 0K 8K RUN 0 86.9H 27.00% [idle: cpu0]
11 root 1 171 ki31 0K 8K RUN 3 87.7H 22.02% [idle: cpu3]
Like you can see, we have 4 CPUs but we are using only 2. An these two cpus (cpu0 and cpu3) have a very high value for interrupt cpu level(84.0% interrupt).
We have tried with these commands, but situation ( only 2 cpu's in use) remains:
Code:
cpuset -g
pid -1 mask: 0, 1, 2, 3
cpuset -l 0-3 -s 1
cpuset -g
pid -1 mask: 0, 1, 2, 3
Another option is improve system behavior to avoid this high level of interruptions.
Any support will be wellcome:
1- How to force to use 4 cpu's
2- How to improve system behavior to reduce interruptions.
thanks in advances.