# High interrupt rate!



## shahzaib (Feb 12, 2016)

Hi,

We've been using FreeBSD-10 for video streaming website where FreeBSD serves static content (mp4, jpg) over Nginx+php-fpm & performs FFmpeg encoding for users uploaded videos. Server is utilizing 2Gbps realtime port (2 x 1Gbps LACP) and under load we examined bit high percentage of 'interrupt'. Here is the screenshot :

http://prntscr.com/a2d884

Is there a way we can reduce these interrupts and optimize server throughput for smooth streaming ? Lot of users complaining slow streaming during high load. We do not see high I/O due to 69GB ARC cache. Here is our servers specs :

#Supermicro
2 x X5675 (12 cores, 24threads)
96GB Ram
12 x 3TB HDDs Stripping+Mirroring (Lsi-9211 HBA Controller)

Here are the loader.conf and sysctl tweaks :

http://pastebin.com/CpALLwKp

-------------------------------------------------------------

If some FreeBSD expert can look into this and help us with some important tweak to increase server throughput, we'll be really thankful.

Thanks in advance!


----------



## SirDice (Feb 12, 2016)

Not guaranteed to help in your situation but have a look at polling(4).

And there's also an issue of the FreeBSD Journal which has an article from one of the Netflix engineers talking about performance tuning and measurements. Netflix uses pretty much the same setup as you have 

https://openconnect.netflix.com/software/


----------



## kpa (Feb 12, 2016)

I would not recommend polling on modern hardware. It used to be a rather good stopgap measure on older hardware where the cost of handling of high rate of interrupts was too much to handle for the system.

https://lists.freebsd.org/pipermail/freebsd-net/2012-November/033895.html


----------



## adri (Feb 15, 2016)

Are you sure a high interrupt rate is slowing things down?
From the top display, each CPU still has some idle time left and 33% of your CPU's are not serving any interrupts.
The other 67% are only spending about 10% of their time serving interrupts.

You could also use `vmstat -i` to see which interrupts are having a higher rate than normal.


----------

