Skip to content

Instantly share code, notes, and snippets.

@kevinz
Created July 19, 2012 07:21
Show Gist options
  • Save kevinz/3141313 to your computer and use it in GitHub Desktop.
Save kevinz/3141313 to your computer and use it in GitHub Desktop.
orgmode example
#+AUTHOR: Kevin Zeng
#+Email: kevin.zeng@ericsson.com
#+TODO: TODO(t) IN-PROGRESS(p) WAIT(r) SUSPEND(s) | DONE(d)
#+TAGS: Kevin(k) Tom(o) Laurence(l) Gavin(g)
LVS performance test environment overview
* Purpose
- Make a simple overview page for performance test.
- For better communication.
* Deployment
** LVS in NAT mode
#+BEGIN_DITAA nat.png -o -r -S -E
+--------------+------+ +-------------+-----------------+ +------------+--------+
|pureload1 cRED| db1 | tcp_bw 5Gb | | | tcp_bw 5Gb |nginx1 cBLU | ts1 |
+--------------+------+----------------->+ LVS cGRE | ai server +-------------------->+------------+--------+
|192.168.1.187 | +-------------+-----------------+ | 192.168.0.104(H) |
+---------------------+<-------=---------+ cpu E5620 (4c/16t) +<---------=----------+---------------------+
|cpu E5645 (6c/24t) | tcp_bw 5Gb +-------------------------------+ tcp_bw 6.5Gb | 192.168.1.189 |
+---------------------+ | | +---------------------+
+-------------------------------+
+--------------+------+ | o ip1 192.168.1.111 |
|pureload2 cRED|db2 | tcp_bw 5Gb | o ip2 192.168.0.103(H) | tcp_bw 5Gb +------------+-------+
+--------------+------+----------------->+ +-------------------->|nginx2 cBLU | ts2 |
|192.168.1.188 | +-------------------------------+ +------------+-------+
+---------------------+<-------=---------+ o service 192.168.1.254:80 rr +<---------=----------| 192.168.1.190 |
| cpu E5645 (6c/24t) | tcp_bw 5Gb +-------------------------------+ tcp_bw 6.5Gb +--------------------+
+---------------------+ | o service | | 192.168.0.105(H) |
+-------------------------------+ +--------------------+
| cpu E5645 (6c/24t) |
------http req------ +--------------------+
---=--http resp--=--
Figure 1.NAT Deployment
#+END_DITAA
#+CAPTION: Figure 2.Sequence of lvs nat
[[./lvs_nat.png]]
*** Without any optimization
- Configuration
#+ATTR_HTML: border="3" rules="all" frame="all"
| Node | Conf item | Detail |
| ts1 | route back through gw | route add -host 192.168.1.187 gw 192.168.0.103 |
| ts1 | route back through gw | route add -host 192.168.1.188 gw 192.168.0.103 |
| ts2 | route back through gw | route add -host 192.168.1.187 gw 192.168.0.103 |
| ts2 | route back through gw | route add -host 192.168.1.188 gw 192.168.0.103 |
| lvs | lvs nat service | [[./nat.sh.txt][nat.sh]] |
| lvs | connection table size | 2^12=4096 |
| load1 | concurrent level | 48 |
- Test result
#+ATTR_HTML: border="3" rules="all" frame="all"
#+CAPTION: 60KB page with http keep-alive
| Tool | apache ab2 |
| Installation | zypper in apache2-utils |
| command | ab2 -n 400000 -c 48 -k |
| Server Software: | nginx/1.2.2 |
| Server Hostname: | 192.168.1.254 |
| Server Port: | 80 |
| Document Path: | /60k.htm |
| Document Length: | 60379 bytes |
| Concurrency Level: | 48 |
| Time taken for tests: | 43.559 seconds |
| Complete requests: | 400000 |
| Failed requests: | 0 |
| Write errors: | 0 |
| Keep-Alive requests: | 396021 |
| Total transferred: | 24239487613 bytes |
| HTML transferred: | 24152701215 bytes |
| Requests per second: | 9182.94 [#/sec] (mean) |
| Time per request: | 5.227 [ms] (mean) |
| Transfer rate: | 543431.95 [Kbytes/sec] received |
#+ATTR_HTML: border="3" rules="all" frame="all"
#+CAPTION: 60KB page without http keep-alive
| Tool | apache ab2 |
| Installation | zypper in apache2-utils |
| command | ab2 -n 400000 -c 48 |
| Server Software: | nginx/1.2.2 |
| Server Hostname: | 192.168.1.254 |
| Server Port: | 80 |
| Document Path: | /60k.htm |
| Document Length: | 60379 bytes |
| Concurrency Level: | 48 |
| Time taken for tests: | 51.564 seconds |
| Complete requests: | 400000 |
| Failed requests: | 0 |
| Write errors: | 0 |
| Total transferred: | 24237034070 bytes |
| HTML transferred: | 24152231738 bytes |
| Requests per second: | 7757.41 [#/sec] (mean) |
| Time per request: | 6.188 [ms] (mean) |
| Transfer rate: | 459025.14 [Kbytes/sec] received |
*** With optimization
** LVS in DR mode
#+BEGIN_DITAA dr.png -o -r -S -E
+--------------------------------------------=---------------------------------------------------+
| |
| |
| +------------+--------+
v | cpu E5645 2.40G |
+----------+---+------+ +-------------+-----------------+ +------------+-------++
|pureload1 cRED|db1 | tcp_bw 5Gb | | | tcp_bw 5G |nginx1 cBLU | ts1 |
+--------------+------+----------------->+ LVS cGRE | ai server +-------------------->+------------+--------+
|192.168.1.187 | +-------------+-----------------+ | 192.168.1.189 |
+---------------------+ + cpu E5620 + +---------------------+
+-------------------------------+ | 192.168.0.104(H) |
| | +---------------------+
+-------------------------------+
+--------------+------+ | o ip1 192.168.1.111 | +------------+-------+
|pureload2 cRED|db2 | tcp_bw 5g | o ip2 192.168.0.103(H) + tcp_bw 5G |nginx2 cBLU | ts2 |
+--------------+------+----------------->+ o persistent +-------------------->+------------+-------+
|192.168.1.188 | +-------------------------------+ | 192.168.1.190 |
+----------+----------+ + o service + +--------------------+
^ +-------------------------------+ | 192.168.0.105(H) |
| | o service | +--------------------+
| +-------------------------------+ | cpu E5645 |
+---------------------------------------------=--------------------------------+ +------------+-------+
| |
------http req------ | |
---=--http resp--=-- | |
Figure 3.DR Deployment +-----------------+
#+END_DITAA
#+CAPTION: Figure 4.Sequnce of LVS DR
[[./lvs_dr.png]]
*** Without any optimization
#+ATTR_HTML: border="3" rules="all" frame="all"
| Node | Conf item | Detail |
| ts1 | hide arp | [[./dr_real.sh.txt][dr-real.sh]] |
| ts2 | hide arp | [[./dr_real.sh.txt][dr-real.sh]] |
| lvs | lvs dr | |
| lvs | connection table size | 2^12=4096 |
*** With optimization
* Working Progress
** IN-PROGRESS Network environment :Laurence:
- [X] NIC bandwidth
- almost 5Gb/s for every physical connection
- [ ] Increase bandwidth to 9G
** IN-PROGRESS Software installation :Kevin:
- [X] nginx
- [X] ipvs
- [X] apache ab2
- [X] qperf
- [ ] netperf
- [ ] tcpcopy
- [X] iftop
*** TODO Commercial test tool
- [ ] pureload
*** TODO HA extension suite :Laurence:
- [ ] ldirectord
** IN-PROGRESS Configuration :Kevin:Tom:
- [X] LVS in NAT mode
- [X] TS in NAT mode
- [ ] LVS in DR mode
- [ ] TS in DR mode
- [ ] HA configuration
** IN-PROGRESS Performance Test :Kevin:Tom:
- [X] ab2+nginx in NAT mode
- [ ] ab2+nginx in DR mode
- [ ] pureload+nginx in NAT mode
- [ ] pureload+nginx in DR mode
- [ ] msp as backend
- [ ] with iptables
- [X] with http keep alive
- [ ] without http keep alive
- [ ] with persistent
- [ ] 1k page
- [ ] 5k page
- [ ] 10k page
- [ ] 30k page
- [X] 60k page
** TODO Optimization
- [ ] NIC Interrupts and cpu affinity
- [ ] size of lvs connection table
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment