PHP FPM
PHP PPM
Nginx Unit
React PHP
Road-runner
cd docker/php-fpm && docker-compose up
cd docker/php-ppm && docker-compose up
cd docker/nginx-unit && docker-compose up
cd docker/react-php && docker-compose up --scale php=2
cd docker/road-runner && docker-compose up
curl ' http://127.0.0.1:8000/' | python -m json.tool
{
" env" : " prod" ,
" type" : " php-fpm" ,
" pid" : 8,
" random_num" : 37264,
" php" : {
" version" : " 7.2.12" ,
" date.timezone" : " Europe/Paris" ,
" display_errors" : " " ,
" error_log" : " /proc/self/fd/2" ,
" error_reporting" : " 32767" ,
" log_errors" : " 1" ,
" memory_limit" : " 256M" ,
" opcache.enable" : " 1" ,
" opcache.max_accelerated_files" : " 20000" ,
" opcache.memory_consumption" : " 256" ,
" opcache.validate_timestamps" : " 0" ,
" realpath_cache_size" : " 4096K" ,
" realpath_cache_ttl" : " 600" ,
" short_open_tag" : " "
}
}
copy tests/load.yaml from tests/load.yaml.example
and replace $SERVER and $PORT variables in tests/load.yaml
copy tests/monitoring.xml from tests/monitoring.xml.example
and replace $SERVER and $USERNAME variables in tests/monitoring.xml
get token from https://overload.yandex.net and put it to file tests/overload_token.txt
put ssh public key to target server
run yandex-tank:
cd tests && docker run -v $( pwd) :/var/loadtest -v $HOME /.ssh:/root/.ssh --net host -it direvius/yandex-tank
phantom :
load_profile :
load_type : rps
schedule : line(1, 100, 60s) const(100, 540s)
Cumulative quantiles (ms)
95%(ms)
90%(ms)
80%(ms)
50%(ms)
HTTP OK(%)
HTTP OK(count)
php-fpm
9.9
6.3
4.35
3.59
100
57030
php-ppm
9.4
6
3.88
3.16
100
57030
nginx-unit
11
6.6
4.43
3.69
100
57030
road-runner
8.1
5.1
3.53
2.92
100
57030
road-runner-reboot
12
8.6
5.3
3.85
100
57030
react-php
8.5
4.91
3.29
2.74
100
57030
react-php-reboot
13
8.5
5.5
3.95
100
57030
cpu median(%)
cpu max(%)
memory median(MB)
memory max(MB)
php-fpm
9.15
12.58
880.32
907.97
php-ppm
7.08
13.68
901.72
913.80
nginx-unit
9.56
12.54
923.02
943.90
road-runner
5.57
8.61
992.71
1,001.46
road-runner-reboot
9.18
12.67
848.43
870.26
react-php
4.53
6.58
1,004.68
1,009.91
react-php-reboot
9.61
12.67
885.92
892.52
phantom :
load_profile :
load_type : rps
schedule : line(1, 500, 60s) const(500, 540s)
Cumulative quantiles (ms)
95%(ms)
90%(ms)
80%(ms)
50%(ms)
HTTP OK(%)
HTTP OK(count)
php-fpm
13
8.4
5.3
3.69
100
285030
php-ppm
15
9
4.72
3.24
100
285030
nginx-unit
12
8
5.5
3.93
100
285030
road-runner
9.6
6
3.71
2.83
100
285030
road-runner-reboot
14
11
7.1
4.45
100
285030
react-php
9.3
5.8
3.57
2.68
100
285030
react-php-reboot
15
12
7.2
4.21
100
285030
cpu median(%)
cpu max(%)
memory median(MB)
memory max(MB)
php-fpm
41.68
48.33
1,006.06
1,015.09
php-ppm
33.90
48.90
1,046.32
1,055.00
nginx-unit
42.13
47.92
1,006.67
1,015.73
road-runner
24.08
28.06
1,035.86
1,044.58
road-runner-reboot
46.23
52.04
939.63
948.08
react-php
19.57
23.42
1,049.83
1,060.26
react-php-reboot
41.30
47.89
957.01
958.56
phantom :
load_profile :
load_type : rps
schedule : line(1, 1000, 60s) const(1000, 60s)
Cumulative quantiles (ms)
95%(ms)
90%(ms)
80%(ms)
50%(ms)
HTTP OK(%)
HTTP OK(count)
php-fpm
11050
11050
9040
195
80.67
72627
php-fpm-80
3150
1375
1165
152
99.85
89895
php-ppm
2785
2740
2685
2545
100
90030
nginx-unit
98
80
60
21
100
90030
road-runner
27
15
7.1
3.21
100
90030
road-runner-reboot
1110
1100
1085
1060
100
90030
react-php
23
13
5.6
2.86
100
90030
react-php-reboot
28
24
19
11
100
90030
cpu median(%)
cpu max(%)
memory median(MB)
memory max(MB)
php-fpm
12.66
78.25
990.16
1,006.56
php-fpm-80
83.78
91.28
746.01
937.24
php-ppm
66.16
91.20
1,088.74
1,102.92
nginx-unit
78.11
88.77
1,010.15
1,062.01
road-runner
42.93
54.23
1,010.89
1,068.48
road-runner-reboot
77.64
85.66
976.44
1,044.05
react-php
36.39
46.31
1,018.03
1,088.23
react-php-reboot
72.11
81.81
911.28
961.62
phantom :
load_profile :
load_type : rps
schedule : line(1, 10000, 30s) const(10000, 30s)
Cumulative quantiles (ms)
95%(ms)
90%(ms)
80%(ms)
50%(ms)
HTTP OK(%)
HTTP OK(count)
php-fpm
11050
11050
11050
1880
70.466
317107
php-fpm-80
3260
3140
1360
1145
99.619
448301
php-ppm
2755
2730
2695
2605
100
450015
nginx-unit
1020
1010
1000
980
100
450015
road-runner
640
630
615
580
100
450015
road-runner-reboot
1130
1120
1110
1085
100
450015
react-php
1890
1090
1045
58
99.996
449996
react-php-reboot
3480
3070
1255
91
99.72
448753
cpu median(%)
cpu max(%)
memory median(MB)
memory max(MB)
php-fpm
5.57
79.35
984.47
998.78
php-fpm-80
85.05
92.19
936.64
943.93
php-ppm
66.86
82.41
1,089.31
1,097.41
nginx-unit
86.14
93.94
1,067.71
1,069.52
road-runner
73.41
82.72
1,129.48
1,134.00
road-runner-reboot
80.32
86.29
982.69
984.80
react-php
73.76
82.18
1,101.71
1,105.06
react-php-reboot
85.77
91.92
975.85
978.42
test_logs
/php-fpm
/php-ppm
/nginx-unit
/road-runner
/react-php
php tests/charts/generate.php /path/to/test_logs /path/to/output/file.html
Input dir: /path/to/test_logs
Output file: tank_100.html
Handling /path/to/test_logs/nginx-unit/monitoring.log...
Handling /path/to/test_logs/nginx-unit/phout_DIv_wS.log...
Handling /path/to/test_logs/php-fpm/monitoring.log...
Handling /path/to/test_logs/php-fpm/phout_j5yRj3.log...
Handling /path/to/test_logs/php-ppm/monitoring.log...
Handling /path/to/test_logs/php-ppm/phout_aEAoEM.log...
Handling /path/to/test_logs/react-php/monitoring.log...
Handling /path/to/test_logs/react-php/phout_u50Gwi.log...
Handling /path/to/test_logs/road-runner/monitoring.log...
Handling /path/to/test_logs/road-runner/phout_RSKT30.log...
Done!