Hi Baptiste, sorry my late return for your issue.

I suggest some environment and software settings, considering 4GB of RAM and 4 
CPU threads:

1- check if ATS is linked with libhwloc library (ldd bin/traffic_server | grep 
libhwloc) if not, recompile using it

2- remove irqbalance (for Ubuntu distro: sudo apt-get purge irqbalance)

3- reserve the last core (CPU3) to disk IRQs. In this case, distribute network 
IRQs among all cores and set ATS threads to use the first 3 cores (CPU0, CPU1, 
CPU2).

# set disk IRQs to CPU3
for DEV in vmw_pvscsi ata_piix; do
    for IRQ in $(grep $DEV /proc/interrupts | cut -d:  -f1 | sed "s/ //g"); do
        echo 08 > /proc/irq/$IRQ/smp_affinity
    done
done

# distribute network IRQs among CPU0-CPU3
IRQ_NET_1=$(grep eth0-rxtx-1 /proc/interrupts | cut -d:  -f1 | sed "s/ //g")
IRQ_NET_2=$(grep eth0-rxtx-2 /proc/interrupts | cut -d:  -f1 | sed "s/ //g")
IRQ_NET_3=$(grep eth0-rxtx-3 /proc/interrupts | cut -d:  -f1 | sed "s/ //g")
echo 02 > /proc/irq/$IRQ_NET_1/smp_affinity
echo 04 > /proc/irq/$IRQ_NET_2/smp_affinity
echo 08 > /proc/irq/$IRQ_NET_3/smp_affinity

4- set these values at records.config :
CONFIG proxy.config.cache.ram_cache.size INT 3G
CONFIG proxy.config.cache.ram_cache_cutoff INT 4M
CONFIG proxy.config.exec_thread.limit INT 3
CONFIG proxy.config.cache.threads_per_disk INT 12
CONFIG proxy.config.task_threads INT 6

5- also consider set these disk tweaks :

# set noop scheduler for storage disks
for DEV in sdb sdc sdd; do
    echo 1024 > /sys/block/$DEV/queue/nr_requests
    echo noop > /sys/block/$DEV/queue/scheduler
    echo 8192 > /sys/block/$DEV/queue/read_ahead_kb
done

Feel free to post here your iostats -x 1 results after set these changes 

Cheers
Jay Tomolek

Reply via email to