Load testing
From ISPWiki
BILLmanager load testing
Server configuration:
- CPU Intel Core2 Quad Q9400
- RAM 8GB
- HDD 2 x Seagate ST3500320NS
Installed software:
- FreeBSD 8.1-RELEASE (amd64)
- MySQL 5.1.54
- BILLmanager-Corporate 4.0.49.7
MySQL configuration: we took MySQL my-huge.cnf
[mysqld] skip-locking key_buffer_size = 384M max_allowed_packet = 1M table_open_cache = 1024 sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 8M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size = 128M tmp_table_size = 32M thread_concurrency = 8 #log-bin=mysql-bin innodb_data_home_dir = /var/db/mysql (logs and databases are located on different hdd) innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend innodb_log_group_home_dir = /var/db/mysql-logs innodb_buffer_pool_size = 5GB innodb_log_file_size = 100M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 innodb_flush_method=O_DIRECT innodb_thread_concurrency=8 [myisamchk] key_buffer_size = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M
http://en.ispdoc.com/index.php?title=Load_testing&action=edit Testing was performed on two concurrent flows from two separate computers:
Step 1: Registering customers
Number Total time Average time Computer #1 250000 01:49:06 38.19 clients/sec. Computer #2 250000 01:48:58 38.24 clients/sec.
Final value - 76.38 customers/sec.
Step 2: Crediting account
This procedure includes:
- applying user's payment;
- confirmation by administrator.
Number Total time Average time Computer #1 250000 10:05:57 6.89 payments/sec. Computer #2 250000 10:06:29 6.87 payments/sec.
Final value: 13.74 payments/sec.
Step 3: Ordering a service
You can order a service if you have the package with manual processing. This procedure includes:
- a user orders a service;
- the administrator processes it.
Number Total time Average time Computer #1 250000 39:11:18 1.77 services/sec. Computer #2 250000 39:11:48 1.77 services/sec.
Final value: 3.54 services/sec.
Step 4: Submitting a trouble ticket
This step includes:
- a customer submits a ticket;
- the administrator processes it.
Number Total time Average time Computer #1 250000 06:03:15 11.47 tickets/sec. Computer #2 250000 06:04:57 11.41 tickets/sec.
Final value: 22.83 tickets/sec.
Step 5: Allying payment for the second time
Number Total time Average time Computer #1 250000 09:58:55 6.95 payments/sec. Computer #2 250000 10:02:12 6.91 payments/sec.
Final value: 13.83 payments/sec. Difference from Step 2 is +0,65%.
Step 6: Automatic renewal (daily billing)
You need to start the command "/usr/local/ispmgr/sbin/billmaintain billdaily" for automatic renewal on the servers being tested. This command will renew the service and charge the customer.
Number Total time Average time Server 500000 00:58:36 142.17 renewal/sec.
Final value: 142.17 renewal/sec.
Step 7: Registering additional customers
Number Total time Average time Computer #1 250000 00:10:35 39.37 customers/sec. Computer #2 250000 00:10:28 39.81 customers/sec.
Final value: 78.74 customers/sec. Difference between Step 7 anв Step 1+3,09%.
Step 8: Crediting account of additional customers
Number Total time Average time Computer #1 250000 01:10:58 5.87 payments/sec. Computer #2 250000 01:11:00 5.86 payments/sec.
Final value: 11.73 payments/sec. Difference between Step 8 and Step 2 is -14.62%.
Step 9: Ordering services for additional customers
Number Total time Average time Computer #1 250000 05:22:05 1.30 services/sec. Computer #2 250000 05:06:15 1.36 services/sec.
Final value: 2.59 services/sec. Difference between Step 9 and Step 3 is -26.83%.
Step #10: Generating invoices
We generated invoices on one server using a single command for all customer accounts.
Number Total time Average time Computer 550000 02:51:25 53.47 invoices/sec.
Final value: 53.47 invoices/sec.
Results
We created 550 000 accounts and performed operations such as ordering, renewing, and paying for services, submitting a trouble ticket. Total testing time is 84 hours. After the tests have been completed, the billing database reaches 5 Gb.
