Нагрузочное тестирование

Материал из ISPWiki

Перейти к: навигация, поиск

Нагрузочного тестирование BILLmanager

Конфигурация сервера:

  • CPU Intel Core2 Quad Q9400
  • RAM 8GB
  • HDD 2 x Seagate ST3500320NS


Установленное ПО:

  • FreeBSD 8.1-RELEASE (amd64)
  • MySQL 5.1.54
  • BILLmanager-Corporate 4.0.49.7


Настройки MySQL: за основу взят конфигурационный файл 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 (логи и БД разнесены по разным 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

Тестирование проводилось в два параллельных потока с двух разных компьютеров.

Шаг №1: Регистрация клиентов

           Кол-во    Общее время       Среднее время
Комп. №1   250000     01:49:06        38.19 клиентов/сек.
Комп. №2   250000     01:48:58        38.24 клиентов/сек.

Итоговое значение: 76.38 клиентов/сек.

Шаг №2: Зачисление платежа

Зачисление платежа включает в себя:

  • выполнение платежа пользователей;
  • подтверждение его администратором.
           Кол-во    Общее время       Среднее время
Комп. №1   250000     10:05:57        6.89 платежей/сек.
Комп. №2   250000     10:06:29        6.87 платежей/сек.

Итоговое значение: 13.74 платежей/сек.

Шаг №3: Заказ услуги

Заказ услуги производился на тарифном плане с ручной обработкой вследствие чего включает в себя:

  • заказ услуги пользователем;
  • обработка её администратором.
           Кол-во    Общее время       Среднее время
Комп. №1   250000     39:11:18        1.77 услуг/сек.
Комп. №2   250000     39:11:48        1.77 услуг/сек.

Итоговое значение: 3.54 услуг/сек.

Шаг №4: Создание тикета

Данный шаг включает:

  • создание тикета клиентов;
  • ответ на него администратором.
           Кол-во    Общее время       Среднее время
Комп. №1   250000     06:03:15        11.47 тикетов/сек.
Комп. №2   250000     06:04:57        11.41 тикетов/сек.

Итоговое значение: 22.83 тикетов/сек.

Шаг №5: Повторное зачисление платежа

          Кол-во    Общее время       Среднее время
Комп. №1   250000     09:58:55        6.95 платежей/сек.
Комп. №2   250000     10:02:12        6.91 платежей/сек.

Итоговое значение: 13.83 платежей/сек. Изменение производительности относительно шага №2: +0,65%.

Шаг №6: Автопродление услуг (ежедневный биллинг)

Автопродление выполнялось запуском команды "/usr/local/ispmgr/sbin/billmaintain billdaily" на тестируемом сервере которая для каждой заказанной услуги выполняла продление и списание денежных средств.

          Кол-во    Общее время       Среднее время
Сервер    500000     00:58:36        142.17 продлений/сек.

Итоговое значение: 142.17 продлений/сек.

Шаг №7: Регистрация дополнительных клиентов

           Кол-во    Общее время       Среднее время
Комп. №1   25000      00:10:35        39.37 клиентов/сек.
Комп. №2   25000      00:10:28        39.81 клиентов/сек.

Итоговое значение: 78.74 клиентов/сек. Изменение производительности относительно шага №1: +3,09%.

Шаг №8: Зачисление платежа для дополнительных клиентов

           Кол-во    Общее время       Среднее время
Комп. №1   25000      01:10:58        5.87 платежей/сек.
Комп. №2   25000      01:11:00        5.86 платежей/сек.

Итоговое значение: 11.73 платежей/сек. Изменение производительности относительно шага №2: -14.62%.

Шаг №9: Заказ услуги для дополнительных клиентов

           Кол-во    Общее время       Среднее время
Комп. №1   25000      05:22:05        1.30 услуг/сек.
Комп. №2   25000      05:06:15        1.36 услуг/сек.

Итоговое значение: 2.59 услуг/сек. Изменение производительности относительно шага №3: -26.83%.

Шаг №10: Генерирование актов выполненных работ

Генерирование актов производилось на сервере одной командой для всех клиентов

          Кол-во    Общее время       Среднее время
Сервер    550000     02:51:25         53.47 актов/сек.

Итоговое значение: 53.47 актов/сек.


Выводы

В результате тестирования было создано 550 тысяч клиентов и для каждого из них произведены основные операции с которыми встречается пользователь (оплата, заказ и продление услуги, создание тикета). Суммарное время проведение теста составило около 3,5 суток. По завершению всех операций размер базы данных биллинга составил порядка 5 ГБ. Следует отметить что тестирование производилось на рядовом сервере и существует потенциал роста в плане повышения производительности самого сервера. В первую очередь это дисковая подсистема и размер ОЗУ в совокупности с тюнингом настроек MySQL на оптимальное их использование. Кроме того возможно вынесение MySQL сервера на отдельный сервер.

Была ли эта информация полезной? Да | Нет
Личные инструменты