2007年3月13日 星期二

PostgreSQL 的測試

因為 S 廠商的需求, 做了一些關於 Radius/PostgreSQL 的測試.

測試程式:
1. rtls.py - 將預先產生的 1,000,000 筆記錄以 radius 的方式送出.
(每一筆記錄會產生 3 個 radius packets, 分別是 ringing, answer, release)
(收到 rad.py 的 ack 後才會送下一個 radisu packet)
2. rad.py - 將收到的 radius 資料轉發給 rtbsvr.py, 並回 radius 的 ack 給 rtls.py.
(只有 release packet 中的資料會轉發)
3. rtbsvr.py - 將收到的資料加入資料庫中.
以上程式, 都只跑在同一台機器. (與網路 stack 無關)

測試環境及結果:

pc26
nb27
pc34
OS
2.6.9-34.EL 2.6.9-34.ELsmp 2.6.20-rc6 #1 SMP
python
2.3.4
2.3.4
2.3.4
postgresql
8.1.8
8.1.4
8.1.8
pygresql
3.8.1
3.8.1
3.8.1
cpu
Intel(R) Pentium(R) 4 CPU 2.80GHz
512 KB Cache (5605.85)
Genuine Intel(R) CPU T2400 @ 1.83GHz
2048 KB Cache (1998.36)
(DualCore)
Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
4096 KB Cache (4819.82)
(DualCore)
memory
1GB
1GB
2GB
duration
5:32:36
(22:39:05 - 04:11:41)
2:28:11
(16:33:14 - 19:01:25)
4:20:45
(22:40:28 - 03:01:13)
handling average/call
19.956 ms
8.891 ms
15.605 ms
1000筆的 min dur.
11.29 sec
7.23 sec
4.54 sec
1000筆的 max dur. 57.45 sec
20.25 sec
33.39 sec
1000筆的 mean
19.956 sec
8.891 sec
15.605 sec
1000筆的 std var.
8.35 sec
2.58 sec
6.22 sec

軟體上的不同點 (下次測試時可以調整的):
1. postgresql 版本. 應該都調到 8.1.8 或 8.2.*
2. OS 版本. 應該都用 2.6.9-34.ELsmp. (但 pc34 是 修明的工作 設備, 舊版沒有 對應的 driver) 或都採用 2.6.20 系列.

沒有留言: