LinuxSystemLatencyTest

From My Notepad
Jump to: navigation, search

Requirements:

  • Base development packages
  • Install the libnuma-dev package (on Debian-based systems)
  • Install the numactl-devel package (on RHEL/CentOS systems)
cd /usr/src/
git clone git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git
cd rt-tests
make

Method:

  • In the first SSH or console session, run: chrt -f 99 ./cyclictest -t1 -p 80 -i 10000 -n -l 100000
  • In the second SSH or console session, run: hdparm -t <HDD Dev>
  • Observe the output of cyclictest in the first SSH/console session when hdparm is executed (futher information provided below)
  • If the latency is within the acceptable range, there is nothing more to do here
  • If the latency is higher than the acceptable amount, then steps will need to be taken to attempt to reduce the amount of load on the system (halting extraneous processes, disabling unneccessary devices, updating the BIOS, removing unused devices from the PCI bus, etc.)


Information about the output of cyclictest and hdparm

When running cyclictest:

  • The AVG Represents the average latency is being measured on the system.
  • The MAX Represents the maximum latency detected on the system.
  • (Note: The vaules showed in cyclictest are represented in microseconds (1/1000 ms))

Asterisk is a real-time application, therefore when we run this test, we need to base our conclusion on the worse case scenario. We want to make sure that even with the highest latency reported, Asterisk/DAHDI will run just fine.

Max Latency Range (in microseconds)

  • ~0 to 3000: Excellent Lower Latency than the default latency of our Drivers
  • 3000 to 8000: Good Low Latency, Require to change the default latency of our Drivers
  • 8000 to 15000: Fair Mid Latency, Require to change the default latency of our Driver
  • 15000 to 25000: Problematic High Latency, Need to determine why the system has that latency
  • 25000 to ∞: Bad Our Drivers won't be able to work

Original Source

Source

Fix for old kernels

https://github.com/sysstat/sysstat/commit/40046f9846ece5f01cf53451e95d0f7f84d53989