32
One Server Per City: One Server Per City: Using TCP for Very Large SIP Using TCP for Very Large SIP Servers Servers Kumiko Ono Henning Schulzrinne {kumiko, hgs}@cs.columbia.edu

One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

One Server Per City: One Server Per City: Using TCP for Very Large SIP Using TCP for Very Large SIP ServersServers

Kumiko OnoHenning Schulzrinne

{kumiko, hgs}@cs.columbia.edu

Page 2: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

2

GoalGoalAnswer the following question:

How does using TCP affect the scalability and performance of a SIP server? Impact on the number of sustainable

connections Impact of establishing/maintaining

connections on data latency Impact on request throughput

Page 3: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

3

OutlineOutline

• Motivation• Related work• Measurements on Linux• Measurement results

1. Number of sustainable connections2. Setup time and transaction time3. Sustainable request rate

• Suggestions

Page 4: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

4

MotivationMotivation A scalable SIP edge

server to support 300k users* Handling connections

seems costly. Our question:

How does the choice of TCP affect the scalability of a SIP server?

SIP proxy servers

SIP user clients

SIP edge servers  (proxy + registrar)

* Lucent’s 5E-XCTM, a high capacity 5ESS, supports 250,000 users

Page 5: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

5

SIP server: Proxy and SIP server: Proxy and registrarregistrarComparison with HTTP serverComparison with HTTP server

Signaling (vs. data) bound No File I/O except scripts or logging No caching; DB read and write

frequency are comparable Transactions and dialogs

Stateful waiting for human responses Transport protocols

UDP, TCP or SCTP

Page 6: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

6

Related workRelated work

A scalable HTTP server I/O system to support 10K clients [1]

Use epoll()[2] to scale instead of select() or poll()

We built on this work. An architecture for a highly concurrent

server Staged Event-Driven Architecture [3]

A scalable SIP server using UDP Process-pool architecture [4]

Page 7: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

7

[Ref.] Comparison of system calls [Ref.] Comparison of system calls to wait eventsto wait events

Upper limit on file descriptor (fd) set size select(): 1,024 poll(), epoll(): user can specify

Polling/retrieving fd set select(), poll(): the same set both in

kernel and user space Events are set corresponding to the prepared fd

set. epoll():

Different fd set in each by separate I/F Optimal retrieving fd set in user space depending

on APL Events are set always from the top of the

retrieving fd set.

Page 8: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

8

OutlineOutline

• Motivation• Related work• Measurements on Linux• Measurement results

1. Number of sustainable connections2. Setup time and transaction time3. Sustainable request rate

• Suggestions

Page 9: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

9

Measurement environmentMeasurement environment System

configuration Increased the number

of file descriptors per shell

1,000,000 at server 60,000 at clients

Increased the number of file descriptors per system

1,000,000 at server Expanded the

ephemeral port range [10000:65535] at

clients

Server:Pentium IV, 3GHz (dual core), 4GB memoryLinux 2.6.23

55,000 /host

Clients: 8 hostsPentium IV, 3GHz, 1GB memoryRedhat Linux 2.6.9

Page 10: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

10

Measurements in two stepsMeasurements in two steps

Using an echo server Number of sustainable connections. Impact of establishing/maintaining

connection on the setup and transaction response time

Using a SIP server Sustainable request rate

Page 11: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

11

Measurement toolsMeasurement tools Number of sockets/connections

/proc/net/sockstat Memory usage

/proc/meminfo /proc/slabinfo /proc/net/sockstat for TCP socket buffers free command for the system top command for RSS and VMZ per process

CPU usage top command

Setup and transaction times timestamps added at the client program tcpdump program

Page 12: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

12

OutlineOutline

• Motivation• Related work• Measurements on Linux• Measurement results

• Number of sustainable connections• Setup time and transaction time• Sustainable request rate

• Suggestions

Page 13: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

13

Echo server measurement:Echo server measurement:Number of sustainable connections Number of sustainable connections for TCPfor TCP

Upper limit 419,000 connections

with 1G/3G split 520,000 connections

with 2G/2G split Ends by out-of-

memory-> The bottleneck is

kernel memory for TCP sockets, not for socket buffers.

memory/connections

1G/3G 2G/2G split

Page 14: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

14

Echo server measurement:Echo server measurement:Slab cache usage for TCPSlab cache usage for TCP

memory/connections

Slab cache usage for 520k TCP connections

Static allocation: 2.3 KB slab cache per TCP connection

Dynamic allocation: only 12MB under 14,800 requests/sec. rate

2G/2G split

Page 15: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

15

Summary: Number of sustainable Summary: Number of sustainable connectionsconnections

419,000 connections w/default VM split

2.3 KB of kernel memory/connection

Bottleneck Kernel memory space More physical does not help for a 32-

bit kernel. Switch to a 64-bit kernel.

Page 16: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

16

OutlineOutline

• Motivation• Related work• Measurements on Linux• Measurement results

• Number of sustainable connections• Setup time and transaction time• Sustainable request rate

• Suggestions

Page 17: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

17

Echo server measurement:Echo server measurement:Setup and transaction timesSetup and transaction times Objectives:

Impact of establishing a connection Setup delay Additional CPU time

Impact of maintaining a huge number of connections

Memory footprint in kernel space Setup and transaction delay?

Page 18: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

18

Echo server measurement Echo server measurement scenarios: Setup and transaction scenarios: Setup and transaction timestimes

Test sequences Transaction-based Persistent w/ TCP-open Persistent (reuse connection)

Traffic conditions 512 byte message Sending request rate

2,500 requests/second 14,800 requests/second

Server configuration No delay option

Page 19: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

19

Echo server measurement: Echo server measurement: Impact of establishing TCP Impact of establishing TCP connectionsconnections

CPU time: 15% more under high loads, while no difference under

mid loads Response time

Setup delay of 0.2 ms. in our environment Similar time for Persistent TCP to that for UDP

Page 20: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

20

Echo server measurement: Impact Echo server measurement: Impact of maintaining TCP connectionsof maintaining TCP connections

Remains constant independently of the number of connections

response times/connections

Page 21: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

21

Summary: Summary: Impact on setup and transaction Impact on setup and transaction timestimes

Impact of establishing a connection Setup delay

0.2 ms in our measurement Additional CPU time

No cost at low request rate 15% at high request rate

Impact of maintaining a huge number of connections Memory footprint in kernel space Setup and transaction delay

No significant impact for TCP Persistent TCP has a similar response time to

UDP.

Page 22: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

22

OutlineOutline

• Motivation• Related work• Measurements on Linux• Measurement results

• Number of sustainable connections/associations

• Setup time and transaction time• Sustainable request rate

• Suggestions

Page 23: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

23

Measurements in two stepsMeasurements in two steps

Echo server for simplicity Number of sustainable connections Impact of establishing/maintaining

connection on the setup and transaction response time

SIP server Sustainable request rate (Impact of establishing/maintaining

connection on the setup and transaction response time)

Page 24: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

24

SIP server measurement: SIP server measurement: The environmentThe environment SUT

SIP server: sipd registrar and proxy Transaction stateful Thread-pool model

the same host as the echo server

Clients sipstone Registration:

TCP connection lifetime Transaction Persistent w/open Persistent

8 hosts of the echo clients

sipd

SQLdatabase

REGISTER

200

Page 25: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

25

SIP server measurement: SIP server measurement: Sustainable req. rate for Sustainable req. rate for registrationregistration

The less number of messages delivered to application, the more sustainable request rate. Better for UDP, although persistent TCP has the

same number of messages with UDPresponse time/request rate

Page 26: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

26

What is the bottleneck of What is the bottleneck of sustainable request rate ?sustainable request rate ? No bottleneck in CPU time and memory usage Graceful failure by the overload control for

UDP, not for TCP

Success rate, CPU time and memory usage: persistent TCP

Success rate, CPU time and memory usage: UDP

Page 27: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

27

Software architecture of sipd: Software architecture of sipd: Overload control in thread-pool Overload control in thread-pool modelmodel

Overload detection by the number of waiting tasks for thread allocation

Sorting and favoring specific messages Response over

requests BYE requests

Sorting messages is easier for UDP than TCP Message-oriented

protocol enables to parse only the first line.

Byte-stream protocol requires to parse Content-Length header to find the first line.

IncomingRequestsR1-4

Fixed number of threads

Page 28: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

28

Component test: Message Component test: Message processing testprocessing test Longer elapsed time for reading and parsing

REGISTER message using TCP than that for UDP

Page 29: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

29

SuggestionsSuggestions

Accelerate parsing message for sorting By reading the first-line of buffered

message without determining the exact message boundary

Not 100% accurate, but works mostly at edge server

Perform overload control at the base thread in thread-pool model No need to wait for another thread

Use persistent connections as HTTP/1.1

Page 30: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

30

ConclusionsConclusions

Impact of using TCP on a SIP server Scalable well Memory footprint

2.3 KB/connection in kernel memory Setup delay

Better to use persistent connections Parsing messages

Need to accelerate for overload control

Page 31: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

31

ReferencesReferences[1] D. Kegel. The C10K problem.

http://www.kegel.com/c10k.html.[2] D. Libenzi. Improving (network) I/O

performance. http://www.xmailserver.org/linux-patches/nio-improve.html.

[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable Internet Services. In the Eighteenth Symposium on Operating Systems Principles (SOSP-18), October 2001.

[4] K. Singh and H. Schulzrinne. Failover and Load Sharing in SIP Telephony. In International Symposium on Performance Evaluation of Computer and Telecommunication Systems (SPECTS), July 2005.

Page 32: One Server Per City: Using TCP for Very Large SIP Serverskumiko/publish/IPTComm08_TCP.pdf[3] M.Welsh, D. Culler, and E. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable

32

Thank you!Any questions?

mailto: [email protected]