Joachim Vanheuverzwijn aka Zoa ([email protected]) Davy Van De Moere ([email protected]) Asterisk...

77
Joachim Vanheuverzwijn aka Zoa ([email protected]) Asterisk Performance Asterisk Performance building your system for performance building your system for performance and scalability and scalability

Transcript of Joachim Vanheuverzwijn aka Zoa ([email protected]) Davy Van De Moere ([email protected]) Asterisk...

Page 1: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Joachim Vanheuverzwijn aka Zoa ([email protected])Davy Van De Moere ([email protected])

Asterisk PerformanceAsterisk Performance building your system for performance building your system for performance

and scalabilityand scalability

Page 2: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Asterisk PerformanceAsterisk Performance

Performance tests Boosting performance Benchmarks * Loadbalance * Hardware, BIOS & kernel

“building your system for performance and scalability”

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 2

Page 3: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Performance TestsPerformance Tests

Objective Different parameters Tools Used Tests

Performance TestsObjectiveDifferent ParametersTools UsedTests

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 3

Page 4: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

ObjectiveObjective

Generate a lot of calls, see what happens to: load, cpu% and memory.

Measure quality of the calls: Monitor using 2 phones (MOS-score) Use app_milliwatt RTP timestamps

Find a correlation between quality and load, cpu% and memory.

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 4

Performance Tests Objective Different

Parameters Tools Used Tests

Page 5: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Call Quality - app_milliwattCall Quality - app_milliwatt

Sends constant 1000Hz tone at 0dbm Save the stream with openphone /

app_record. Analysing with spectrum Laboratory or

audacity spectrum analyser

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 5

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 6: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Audacity Spectrum AnalyserAudacity Spectrum Analyser

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 6

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 7: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Call-Quality : timestampsCall-Quality : timestamps

Some packet decoders / callgenerators / softphones provide statistics for jitter and delay.

E.g.: Openphone

Touchstone suite

Ethereal

Does not seem to be good enough to measure the quality.

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 7

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 8: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

OpenphoneOpenphone

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 8

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 9: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Ethereal – RTP statisticsEthereal – RTP statistics

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 9

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 10: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Voip Quality tests: resultsVoip Quality tests: results

CPU load has nothing to do with it Soft- and IP-phones are insufficient for

testing (jitter buffer) Idle cpu% seems useful for testing

don't go under 50%

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 10

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 11: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Different ParametersDifferent Parameters

Protocols (SIP / H323 / IAX2) Codecs (u/A-law, ilbc, speex, g729,…) Applications (meetme, AGI, ...) Zaptel hardware (te410p, t100p, ...) +

echo cancellers PC hardware (intel, via, amd, ...) Kernels (2.4, 2.6) IAX2 Jitter buffer Gcc / icc

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 11

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 12: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Tools usedTools used

Open Source callgenerators:- SIPP- H323ac- Ohphone- CallGen323- Sipsack- Sipstone

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 12

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 13: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

SIPPSIPP

Can send and receive simultaneous calls. Signalling traffic generator Can only mirror RTP streams (echo), not

send RTP itself. -> can handle all codecs! SIP only. http://sipp.sourceforge.net

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 13

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 14: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

SIPPSIPP

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 14

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 15: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

h323ach323ac

http://www.peternixon.net/h323ac.shtml Not a real callgenerator, just a console

softphone capable of sending prerecorded RTP streams. (not answering calls)

- Alaw or ulaw only ?

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 15

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 16: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

ohphoneohphone

Console h323 softphone Able to auto answer/auto dial Support for a lot of codecs.

g723.1 gsm g711-ulaw/alaw g728 g729 speex & ilbc can be added very easilyhttp://www.openh323.org

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 16

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 17: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

ohphoneohphone

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 17

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 18: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

CallGen323 CallGen323

Can make and answer calls Support for multiple codecs Can play and ENCODE RTP streams. H323 only Alaw onlyhttp://callgen323.sourceforge.net/

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 18

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 19: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

SipsakSipsak

More a stresstest tool than a call generator

Not the purpose of our testshttp://sipsak.berlios.de/

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 19

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 20: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

SipsakSipsak

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 20

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 21: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

SipStoneSipStone

http://www.sipstone.org/

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 21

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 22: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Tools used Tools used

Closed Source Call generators: Winsip / Win323 NetIQ 323Sim …

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 22

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 23: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

One King to rule them allOne King to rule them all

Asterisk: does all protocols does most of the codecs is opensource is scriptable just works

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 23

bkwbkw

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 24: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

TestsTests

1. Protocol vs CPU2. Codec vs CPU3. Protocol vs Bandwidth4. Codec vs Bandwidth5. Application Tests6. Zaptel Tests7. Round Up

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 24

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 25: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Protocol vs. CPU - test01Protocol vs. CPU - test01

Max amount of calls, no RTP sent or received.

Both ends:Exten => s,1,Answer();Exten => s,2,Wait(1000);

1) * (ALAW) -> Sip -> * (ALAW) 2) * (ALAW) -> H323 -> * (ALAW) 3) * (ALAW) -> IAX2 -> * (ALAW)4) * (ALAW) -> Trunked IAX2 -> * (ALAW)

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 25

Page 26: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Test01: ResultsTest01: Results

Untweaked os:NOT ENOUGH OPEN FILES!

IAX2: max 494 channels SIP: max 246 channels H323: max 141 channels

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 26

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 27: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

OS tweaksOS tweaks

echo "65535" > /proc/sys/fs/file-max (add it also to /etc/sysctl.conf)

/usr/include/bits/types.h /usr/include/linux/posix_types.h: #define __FD_SETSIZE 1024

-> /usr/src/asterisk/include/…

*http://bbcr.uwaterloo.ca/~brecht/servers/openfiles.html

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 27

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 28: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Test01: Results – tweaked ulimitTest01: Results – tweaked ulimit

0

10

20

30

40

50

60

70

80

90

100

1 92 183 274 365 456 547 638 729 820 911

sip

iax2

h323

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 28

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 29: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Test 1: ConclusionsTest 1: Conclusions

IAX2 uses 4 times less open files than h323 and two times less than SIP.

There is a hard limit of +/- 984 connections for sip and iax2, 490 for h323.

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 29

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 30: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Encoding Test:Encoding Test:

alaw * -> SIP -> * (codec X)

(no audio is sent in the other direction)

We have to repeat this for all codecs

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 30

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 31: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Decoding testDecoding test

(codec X) -> protocol Y ->* (ulaw) (no audio is sent in the other direction)

Exten => s,1,record(‘/dev/null/blabla.raw’)

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 31

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 32: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Encoding vs decodingEncoding vs decoding

The purpose was to test both encoding and decoding seperately, but * might always decode even if it doesn’t need the stream decodes.

In practice both are used together, we decided to test them together.

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 32

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 33: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Encoding + Decoding test (test02)Encoding + Decoding test (test02)

SIP(codec X) ↔ * (ulaw)

Sending server:Exten => 1,1,echo;

Accepting (tested) server:Exten => 1,1,Playfile(test.pcm)

5 seconds between 2 calls.

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 33

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 34: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Encoding – decoding : MovieEncoding – decoding : Movie

Belgian Movie Day

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 34

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 35: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Battle of the TitansBattle of the Titans

ROUND 1: Presented by twisted

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 35

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 36: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Test02: Protocol ResultsTest02: Protocol Results

protocol comparison

0

20

40

60

80

100

1 19 37 55 73 91 109 127 145 163 181 199

# encodings

idle

CP

U %

iax2 / g729A

sip / g729A

sip / alaw

iax2 / alaw

h323 / g729

h323 / alaw

iax2 trunking / g729

iax2 trunking / alaw

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 36

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 37: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Test02: Protocol ResultsTest02: Protocol Results

protocol comparison

0

20

40

60

80

100

1 3 5 7 9 11 13

# encodings

idle

CP

U %

iax2 / g729A

sip / g729A

h323 / g729

iax2 trunking /g729a

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 37

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 38: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Round up: CPU vs Protocol Round up: CPU vs Protocol

Protocol influence on CPU is minimal using an CPU intense codec.

When low cpu codec is used, SIP/H323 is 50% ‘faster’ than IAX2.

IAX2 trunking is more than twice as fast as non trunking IAX2.

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 38

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 39: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

We have a winnerWe have a winner

Trunked IAX2 wherever possible SIP is your alternative H323 IS EVIL!

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 39

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 40: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Some thoughts – On protocol testsSome thoughts – On protocol tests

Most codecs are floating point, 64 bit processors are faster with floating point.“Floating point and SIMD operations (SSE, SSE2) profit from 64-bit processing. A 64-bit processor can natively calculate the important 64-bit floating point format ("double precision" - precise up to 15 decimal places) and is therefore faster - this is the main reason why 64-bit processors take the lead in the

floating point benchmarks.”* Asterisk “show translations” table gets build

while starting asterisk, results are variable and incorrect for smp systems.

*http://www6.tomshardware.com/cpu/20030422/opteron-15.html

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 40

Performance TestsObjectiveDifferent ParametersTools UsedTests – Prot vs CPU

Page 41: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Test 2: All codec resultsTest 2: All codec results

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 41

codec vs idle cpu%

0

20

40

60

80

100

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88

# encodings

idle

CP

U %

g729A

iLBC

speex

g726

lpc10

gsm

alaw

none

Performance TestsObjectiveDifferent ParametersTools UsedTests – Codec vs CPU

Page 42: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Test 2: detail high cpu codecTest 2: detail high cpu codec

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 42

codec vs idle cpu%

0

20

40

60

80

100

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

# encodings

idle

CP

U %

g729A

iLBC

speex

g726

lpc10

gsm

Performance TestsObjectiveDifferent ParametersTools UsedTests – Codec vs CPU

Page 43: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

IAX2 vs SIP / h323 RTPIAX2 vs SIP / h323 RTP

IAX2 is not using seperate ports for RTP

Advantage: - NAT

- QOS

Disadvantage: - (QOS)

- No signalling control

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 43

Performance TestsObjectiveDifferent ParametersTools UsedTests – Codec vs CPU

Page 44: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Codec Bandwidth – IAX2Codec Bandwidth – IAX2

g711: n.(150.0)kbps / n.100pps GSM: n.(50.78)kbps / n.100pps lpc10: n.(29.88)kbps / n.90pps g726: n.(87.50)kbps / n.100pps g729A: n.(40,62)kbps / n.100pps iLBC: n.(44.84)kbps / n.70pps Speex: n.(55.47)kbps / n.100pps

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 44

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 45: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Codec Bandwidth – trunked IAX2 Codec Bandwidth – trunked IAX2

g711: n.2+14,84 + (n.2.8.1000.rate/1024)+(64*n) kbit/s

GSM: n.2+14,84 + (n.2.8.1000.rate/1024)+(13*n) kbit/s

lpc10: n.2+14,84 + (n.2.8.1000.rate/1024)+(2,5*n) kbit/s

g726: n.2+14,84 + (n.2.8.1000.rate/1024)+(16*n) kbit/s

g729A: n.2+14,84 + (n.2.8.1000.rate/1024)+(8*n) kbit/s

iLBC: n.2+14,84 + (n.2.8.1000.rate/1024)+(9*n) kbit/s

g723.1: n.2+14,84 + (n.2.8.1000.rate/1024)+(6,1*n) kbit/s

Speex: n.2+14,84 + (n.2.8.1000.rate/1024)+(?*n) kbit/s

* http://www.convergence.com.pk/iax2/trunked.html

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 45

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 46: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Codec Bandwidth – trunked IAX2 Codec Bandwidth – trunked IAX2

iax2 bandwidth usage - Trunked

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

1 9 17 25 33 41 49 57 65 73 81 89 97 105 113 121 129 137 145 153 161 169 177 185 193

# calls

kbit

/s

alaw

g729

gsm

ilbc

g726

lpc10

speex

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 46

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 47: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Codec Bandwidth – SIPCodec Bandwidth – SIP

g711: n.(156.2)kbps / n.100pps GSM: n.(156.2)kbps / n.100pps Lpc10: Not compatible g726: n.(93.75)kbps / n.100pps g729A: n.(46,88)kbps / n.100pps iLBC: n.(42-49)kbps / n.60-70pps Speex: n.(61.72)kbps / n.100pps

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 47

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 48: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Codec BW: h323Codec BW: h323

g711: I gave up GSM: I couldn't take it anymore Lpc10: Gave up, I did g726: Didn't feel well g729A: n.(46.88)kbps / n.100pps iLBC: There is no god Speex: My laptop learned to fly

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 48

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 49: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Codec ChoiceCodec Choice

Choose sitting on that couch watching mind-numbing, spirit-crushing game shows, stuffing fucking junk food into your mouth. Choose rotting away at the end of it all, pissing your last in a miserable home, nothing more than an embarrassment to the selfish, fucked up brats you spawned to replace yourselves. Choose your future. Choose life... Choose GSM.

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 49

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 50: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Codec Choices: ResultsCodec Choices: Results

Choose g711, GSM or g729. (based on bandwidth and your bankaccount.)

All other codecs have either bad quality or are too cpu expensive.

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 50

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 51: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Protocol RecommendationsProtocol Recommendations

Use :

- SIP on your LAN network.

- IAX2 for Inter asterisk (expensive) internet connections

- IAX2 when using NAT.

- H323 IS EVIL!

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 51

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 52: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Codec Choice:Codec Choice:

Compatibility uLAW or ALAW CPU Bandwidth

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 52

Performance TestsObjectiveDifferent ParametersTools UsedTests

Page 53: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Performance tricksPerformance tricks

Extensions.conf optimizations

- avoid unneeded transcodings (playback / moh etc)

- avoid perl / php agi’s

- res_perl

- res_sqlite

- compress extensions.conf

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 53

Page 54: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Avoid transcodingAvoid transcoding

make sure your sound files exist in every format. (sox & app_record are your friends).

try not to use mp3 for music on hold

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 54

Page 55: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Avoid Transcoding Avoid Transcoding

SLINR sln|raw ILBC ilbc G726 g726-16 G726 g726-24 G726 g726-32 G726 g726-40 ALAW alaw|al G729A g729 ULAW pcm|ulaw|ul|mu ADPCM vox vox GSM WAV|wav49 SLINR wav GSM gsm G723.1 g723 *CLI> show file formats

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 55

Page 56: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Performance tricksPerformance tricks

Optimize your dialplan Make sure no swap memory is used Use nice(r) when running other applications Don’t use hyperthreading on 2.4 kernels +

use hyperthreading on 2.6 kernels.

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 56

Page 57: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Performance tricksPerformance tricks

Avoid swapping Get plenty of memory

Avoid mysql on the same server

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 57

Page 58: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Performance tricksPerformance tricks

Nice –n 19 “application” E.g. when doing compression of .wav

to .mp3 with the hangup extension. Make sure no updatedb or similar scripts are

in your cron server. E100 uses less cpu than via rhine. No firewall or traffic shaper on the * machine AVOID ALL DISK ACTIVITY !

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 58

Page 59: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Perl / php agi’sPerl / php agi’s

Although very nice and very helpfull, its not recommended to use it when doing a lot of simultaneous calls.

Perl gets loaded every time it gets called.

Try to use C programs, res_perl or extension logic instead.

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 59

Page 60: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Performance tricksPerformance tricks

Embedded SQL server.

Although the extensions file is quite fast, when you have thousands of extensions, a reload might kill your box.

SQLite (anthm) should be a lot faster.http://bugs.digium.com/bug_view_page.php?bug_id=0002384

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 60

Page 61: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Quality TricksQuality Tricks

Don’t use wget or ftp or anything else using up max bandwidth without the traffic being shaped. (Even if its taken another route, it might hog your networkcard).

Avoid big data movements on your harddisk due to backups etc.

Don’t go over 50% cpu usage.

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 61

Page 62: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Kernel 2.4 vs 2.6Kernel 2.4 vs 2.6

0

10

20

30

40

50

60

70

80

90

100

1 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191

iLBC - 2.6 single

iLBC - 2.6 smp HT

iLBC - 2.4 SMP

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 62

Page 63: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Kernel 2.4 vs 2.6Kernel 2.4 vs 2.6

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 63

Page 64: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Kernel 2.4 vs 2.6Kernel 2.4 vs 2.6

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 64

Page 65: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Kernel 2.4 – 2.6 ?Kernel 2.4 – 2.6 ?

I think kernel 2.6 is faster, and has already proven its stability. (zaptel is stable, ztdummy doesnt even need usb).

If you need HT, go for 2.6

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 65

Page 66: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

HT or No HT: Problems testingHT or No HT: Problems testing

all three servers with HT capabilities we did test on, were dual xeons.

If I disable HT in the bios, only 1 CPU is found instead of 2.

Kernel 2.4 does not allow disabling HT Kernel 2.6 setting doesn't deactivate it,

just uses a different scheduler for it.

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 66

Page 67: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

HT or no HTHT or no HT

We tested: Dual xeon on 2.4 / 2.6 with ht disabled / (1

cpu) / enabled in bios (1|4 cpu's) Dual xeon with smp disabled in 2.4 and 2.6

(1 cpu)

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 67

Page 68: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

SMP ?SMP ?

A dual Xeon will always be less fast than 2 single Xeons, but will cost more.

Therefore I recommend to use a single PIV or Xeon unless doing cpu intense codec translations for a 4 span pri board.

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 68

Page 69: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Kernel vs Arch vs SMP vs HTKernel vs Arch vs SMP vs HT

Personal opinion: use single or dual Xeons (no quad boards) use kernel 2.6 use HyperThreading on 1 cpu, disable on 2

cpu's use preemptive kernel don't use 64 bit yet

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 69

Page 70: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Load BalancingLoad Balancing

SIP -> SER IAX2 -> native bridging / transfers H323 -> gnugk

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 70

Page 71: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Asterisk Load Balancing - SIPAsterisk Load Balancing - SIP

[SIP to SIP] SER

[SIP to POTS] SER dns round robin

[POTS to SIP] SER

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 71

Page 72: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Asterisk Load Balancing – iax2Asterisk Load Balancing – iax2

[IAX2 to IAX2] Where is that guy registered ??? Use one/several registration only server(s) On the registration server, know on what other server the

other guy is registered. (enforce it) [IAX2 to POTS]

Use another IAX2 server to distribute the calls over your te410p farm. Think random, think app_random.

[POTS to IAX2] Where is that guy registered ??? Use one/several registration only server(s) (enforce it)

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 72

Page 73: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Asterisk Load Balancing – h323Asterisk Load Balancing – h323

Think again !

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 73

Page 74: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

What we didn’t test (yet)What we didn’t test (yet)

Registration rates Jitter buffer Call setup rates Zaptel + echo cancelling AGI Large extensions.conf reloading 64bit vs 32bit Memory / HD Speed Opteron vs Xeon vs Pentium IV

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 74

Page 75: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Suggestions for the futureSuggestions for the future

Inter Asterisk management interface.

(to allow easier clustering) Extensions.conf reloading: load the

extensions in a new memory block, then change pointers

Iax2 optimization

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 75

Page 76: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

DISCLAIMERDISCLAIMER

Don't try this at home. These stunts are performed by professionals, under the strict supervision of a h323 psychiatrist.

No Animals were harmed while testing

Be sure to check out:‘Using Asterisk in a Large Scale Carrier Environment’ [email protected]

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 76

Page 77: Joachim Vanheuverzwijn aka Zoa (joachim@securax.be) Davy Van De Moere (davy@securax.be) Asterisk Performance building your system for performance and.

Bye !Bye !

NEXT!

PS: CU next year, and more presentation info coming up on http://www.securax.be/astricon/

* © BKW

22 september 2004 – Asterisk Performance by Joachim Vanheuverzwijn & Davy Van De Moere - Slide 77