Hi, I'm trying to understand how to load balancing works and testing it's benefits, and I'm in a trouble: in my tests (using ab command) I got better performance without the load balancer.I try to describe my environment...I created three VM on Virtualbox with the same hardware and software configuration and redirected ports using NAT:CPU: 1RAM: 1024MBNetwork: NATApache version: 2.4.41Kernel: Linux node1 5.4.0-73-generic #82-Ubuntu SMP Wed Apr 14 17:39:42 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
OS: Ubuntu server 20.04.2The machines:central: only acts as a load balancer (not a balancer member), otherwise used as 'normal' apache server for results comparison. NAT from 8010 to 80node1: when load balancer is configured in the central machine, acts as balancer member. NAT from 8011 to 80node2: when load balancer is configured in the central machine, acts as balancer member. NAT from 8012 to 80Here a list of apache loaded module.spoiler!!! node1 and node2 have the same modules. central have the same modules as nod1 and node2 plus lbmethod_byrequests_module (shared)...Apache loaded modules in central:Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
lbmethod_byrequests_module (shared)
mime_module (shared)
mpm_event_module (shared)
negotiation_module (shared)
proxy_module (shared)
proxy_balancer_module (shared)
proxy_http_module (shared)
reqtimeout_module (shared)
setenvif_module (shared)
slotmem_shm_module (shared)
status_module (shared)
Apache loaded modules in node1:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
mime_module (shared)
mpm_event_module (shared)
negotiation_module (shared)
proxy_module (shared)
proxy_balancer_module (shared)
proxy_http_module (shared)
reqtimeout_module (shared)
setenvif_module (shared)
slotmem_shm_module (shared)
status_module (shared)
Apache loaded modules in node2:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
mime_module (shared)
mpm_event_module (shared)
negotiation_module (shared)
proxy_module (shared)
proxy_balancer_module (shared)
proxy_http_module (shared)
reqtimeout_module (shared)
setenvif_module (shared)
slotmem_shm_module (shared)
status_module (shared)Results when I run 'ab -k -n 10000 -c 1000 http://vm_host_ip_address:8010/' with no balancer...Finished 10000 requestsServer Software: Apache/2.4.41
Server Hostname: 192.168.68.210
Server Port: 8010
Document Path: /
Document Length: 97098 bytes
Concurrency Level: 1000
Time taken for tests: 24.029 seconds
Complete requests: 10000
Failed requests: 5526
(Connect: 0, Receive: 0, Length: 5526, Exceptions: 0)
Keep-Alive requests: 8938
Total transferred: 870844342 bytes
HTML transferred: 868062523 bytes
Requests per second: 416.16 [#/sec] (mean)
Time per request: 2402.908 [ms] (mean)
Time per request: 2.403 [ms] (mean, across all concurrent requests)
Transfer rate: 35391.87 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 22 144.2 0 1039
Processing: 0 1087 2291.1 451 18504
Waiting: 0 1207 2615.1 426 18470
Total: 0 1109 2372.3 451 19514
Percentage of the requests served within a certain time (ms)
50% 451
66% 585
75% 678
80% 764
90% 1868
95% 7315
98% 10098
99% 11156
100% 19514 (longest request)
Finished 10000 requests
No changes on vhost configuration file...<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/htmlErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>Results when I run 'ab -k -n 10000 -c 1000 http://vm_host_ip_address:8010/' with balancer configured...Finished 10000 requestsServer Software: Apache/2.4.41
Server Hostname: 192.168.68.210
Server Port: 8010
Document Path: /
Document Length: 97098 bytes
Concurrency Level: 1000
Time taken for tests: 15.527 seconds
Complete requests: 10000
Failed requests: 834
(Connect: 0, Receive: 0, Length: 834, Exceptions: 0)
Keep-Alive requests: 9166
Total transferred: 892851836 bytes
HTML transferred: 890000268 bytes
Requests per second: 644.04 [#/sec] (mean)
Time per request: 1552.701 [ms] (mean)
Time per request: 1.553 [ms] (mean, across all concurrent requests)
Transfer rate: 56155.42 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 22 146.6 0 1038
Processing: 0 657 1668.1 122 13453
Waiting: 0 752 1883.8 121 13453
Total: 0 679 1763.1 122 14476
Percentage of the requests served within a certain time (ms)
50% 122
66% 234
75% 330
80% 402
90% 1657
95% 4987
98% 7221
99% 8733
100% 14476 (longest request)Finished 10000 requestsI replaced the apache vhost config file with...
<Proxy balancer://mycluster>
BalancerMember http://vm_host_ip_address:8011
BalancerMember http://vm_host_ip_address:8012
</Proxy>
ProxyPreserveHost On
ProxyPass / balancer://mycluster/
ProxyPassReverse / balancer://mycluster/The index.html file is a 90KB plain text file for both node1 and node2I'm missing something?The problem is the way virtualbox handles this network configuration and in a real world the results would be different?--Marc Serra
Manxa 1876, S.L.
Ctra. Les Tries, 85. 17800 Olot (Girona)Tel. 972 27 45 30 Fax 972 27 45 32Manxa Industrial | Coneix més aquí
Manxa Ferros | Coneix més aquí
Manxa Ferreteria i Parament de la Llar | Coneix més aquí
El contingut d’aquest correu electrònic i els seus annexos és estrictament confidencial. En el cas que no siguis el destinatari i hagis rebut aquest missatge per error, preguem que ho comuniquis al remitent i procedeixis a la seva eliminació, sense difondre, emmagatzemar o copiar el seu contingut. Imprimeix aquest correu només si és necessari.
El contenido de este correo electrónico y sus anexos es estrictamente confidencial. En el caso de que no seas el destinatario y hayas recibido este mensaje por error, rogamos lo comuniques al remitente y procedas a su eliminación, sin difundir, almacenar o copiar su contenido. Imprimir este correo solo si es necesario.
The content of this email and its attachments is strictly confidential. If you are not the recipient and you have received this message by mistake, please notify the sender and proceed to its elimination, without spreading, storing or copying its content. Print this email only if necessary.
Le contenu de cet e-mail et de ses pièces jointes est strictement confidentiel. Dans le cas où vous n'êtes pas le destinataire et avez reçu ce message par erreur, veuillez en informer l'expéditeur et procéder à sa suppression, sans diffuser, stocker ou copier son contenu. Imprimez cet e-mail uniquement si nécessaire.