Mag Gam put forth on 11/27/2010 11:06 AM:
> Stan,
> 
> Correct. On my severs I too have sound cards and USB. I don't really
> need them so I would rather unload them. I suppose I can do a macro
> benchmark and state if it helped or not but I would like to know on a
> micro level to see if it helped. I think one possibility is to do
> "lat_pipe" from lmbench to measure transaction latency of a UNIX pipe.
> 
> My goal is to have the most optimal kernel/tuning since our
> application is very latency sensitive.

In that case modules aren't your worry--the kernel interrupt timer is,
along with scheduled tasks.  For latency sensitive apps, you need a
kernel with something like CONFIG_HZ=1000 or greater, which IIRC used to
be the "workstation" default.  The "server" default is 250Hz.  Also,
IIRC, the current Debian kernels implement tickless timers to allow
better integration as virtual machine guests.  For latency sensitive
apps, you'd don't want a tickless timer.

If you have a latency sensitive app:

1.  Use a kernel with CONFIG_HZ=1000 (or greater)

2.  Eliminate all possible cron jobs or schedule them to run at times
when it won't impact the latency of your application.  I.e. make sure no
processes fire unexpectedly which may impact the latency of you
application.  On today's multicore systems this is less of a problem
than it once was as your application can continue to run on the core
which is executing it while a new process will be fired up on another
core.  When/if in doubt, minimize unexpected process execution.

3.  If the application is disk I/O bound, make sure you have plenty of
write cache, and a stripe (RAID6/10) of a sufficient number of spindles.
 RAID10 is optimal for low latency.  RAID6 can suffer read-modify-write
cycles which will increase latency.  If you have large write cache, and
your app never bursts an amount of data larger than the cache, then
RAID6 may be fine.  Testing is your friend here.  Also note that the XFS
filesystem offers the "realtime" sub volume which can decrease latency.
 It was originally developed for streaming media applications such as
digital broadcast systems that replaced teh traditional tape systems:
http://xfs.org/docs/xfsdocs-xml-dev/XFS_User_Guide//tmp/en-US/html/ch04s09.html

4.  If the application is sensitive to network latency, use a NIC and
driver that supports TCP offload processing.  If the application needs
DNS name resolution of remote systems, consider installing a local
caching resolver such as pdns-recursor, which can reduce lookup latency
considerably for cached results.

-- 
Stan


-- 
To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org 
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4cf1df5b.6030...@hardwarefreak.com

Reply via email to