tsung
проведемо тестування сайту навантаженням
за допомогою програми tsung , яка написана на erlang,
та вміє додавати віртуальних "нових користувачів сайту" щосекунди,
іншими словами -- відправляти запити та "ходити" по сайту
erlang (v 22) у мене уже встановлений,
тому я одразу переходжу до встановлення tsung:
скачати, розархівувати, встановити
$ wget http://tsung.erlang-projects.org/dist/tsung-1.7.0.tar.gz
$ tar -zxvf tsung-1.7.0.tar.gz
$ cd tsung-1.7.0
$ ./configure
$ make
$ sudo make install
далі нам потрібен конфіг
$ cp /home/user/tsung-1.7.0/examples/simple_http.xml /home/user/tsung.xml
$ cd /home/user
$ vim tsung.xml
поправимо конфіг до наступного вигляду,
для простого нагрузочного тестування сайту з https
<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">
<tsung loglevel="notice" version="1.0">
<clients>
<client host="localhost" cpu="1" use_controller_vm="true"/>
</clients>
<servers>
<server host="yourwebsite.com" port="443" type="ssl"></server>
</servers>
<load>
<arrivalphase phase="1" duration="5" unit="minute">
<users arrivalrate="15" unit="second"></users>
</arrivalphase>
</load>
<sessions>
<session name="https-example" probability="100" type="ts_http">
<set_option name="certificate">
<certificate keyfile="/home/user/tsungkeys/key.pem" certfile="/home/user/tsungkeys/certificate.pem"></certificate>
</set_option>
<request> <http url="https://yourwebsite.com/page/2" method="GET" version="1.1"></http> </request>
<thinktime value="10" random="true"></thinktime>
<request> <http url="https://yourwebsite.com/page/2" method="GET" version="1.1"></http> </request>
</session>
</sessions>
</tsung>
налаштування тут говорить
"тестуємо 5 хвилин, щосекунди приходить 15 нових користувачів,
які роблять по 2 запити, між якими до 10 секунд рандом пауза"
отже, маємо 5 * 60 * 15 = 4500 користувачів * 2 = 9000 запитів
згенеруємо сертифікат, шлях до якого прописали в налаштуваннях
$ openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
залишилось скопіювати конфіг і можемо запускати
$ mkdir /home/user/.tsung
$ cp tsung.xml /home/user/.tsung/tsung.xml
$ cd /home/user/.tsung
$ tsung -f tsung.xml start
далі ми можемо спостерігати, як поводиться наш сайт та сервер під навантаженням :)
Посилання
http://tsung.erlang-projects.org/
http://tsung.erlang-projects.org/user_manual/conf-load.html#randomly-generated-users
https://github.com/processone/tsung/issues/213
https://www.ibm.com/support/knowledgecenter/en/SSMNED_5.0.0/com.ibm.apic.cmc.doc/task_apionprem_gernerate_self_signed_openSSL.html
https://habr.com/ru/post/132459/