Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INSTALAR EN UBUNTU
sudo apt-get install apache2-utils
LANZAR TEST
Los parámetros más habituales a la hora de lanzar un test con Apache Benchmark son: el número
de peticiones y la concurrencia de las peticiones. En el siguiente ejemplo, se puede ver que se
realizarán un total de 1000 peticiones en bloques de 50 en 50 a la web https://www.meneame.net.
Al ser una web con HTTPs, debemos poner el parámetro -f ALL. Recordad también poner la / al
final de la URL.
ab -n 1000 -c 50 -f ALL https://www.meneame.net/ (para https)
http://50.116.42.40/aulavirtual/login/index.php
valores a leer
1. Datos del servidor que estamos probando, así como la URL en cuestión.
Server Software: nginx
Server Hostname: gutl.jovenclub.cu
Server Port: 80
Document Path: /
3. Cuantos milisegundos demoró el servidor en atender la petición que más demoró, o sea, la que
más tardó en ser atendida.
Percentage of the requests served within a certain time (ms)
50% 5
66% 6
75% 22
80% 41
90% 62
95% 80
98% 87
99% 87
100% 87 (longest request)
https://www.raulprietofernandez.net/blog/gnu-linux/como-medir-el-rendimiento-de-
un-servidor-web-con-apache-benchmark
OTROS PARA CPU Y APACHE
# ps aux
USER PID %CPU%MEM VSZ RSS TTY STAT START TIME COMMAND
apache 4416 0.0 0.4 232392 8920 ? S Apr11 0:01 /usr/sbin/httpd
apache 5938 0.2 2.5 387628 52980 ? S Apr13 3:46 /usr/sbin/httpd
apache 8553 0.2 2.5 388860 53208 ? S Apr13 3:43 /usr/sbin/httpd
Como puedes observar, la columna %CPU te va a indicar que procesos son los que están
consumiendo cpu.
Si lo que quieres saber es el consumo de apache (y por extensión de moodle), el comando sería
Por otra parte, y en relación a la respuesta de Xavier, las peticiones php consumen casi 40 MB de
RAM (Es el valor que se observa en la columna VSZ)
- buscar
find / -name '10-opcache.ini'
- cambiamos lo valores
opcache.enable = 1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
Ya que Moodle 3.6 contiene casi 10.000 archivos PHP, arriba se recomienda que
opcache.max_accelerated_files debería de ajustarse a 10000 ´para acomodar esto
(16229 de hecho se usará para la explicación de arriba). Si Usted tiene varias
instancias de Modlle Usted debrá multiplicar ese valor por el número de
instancias.
reiniciamos
systemctl restart nginx
CONFIGURAR PHP.INI
Extraido de https://docs.moodle.org/all/es/PHP
Revise estas configuraciones en el archivo php.ini o .htaccess (si está usando Apache). Para las
configuraciones que usan SI/NO (ON/OFF) como sus valores, Usted puede sustituir 1 por ON y 0
por OFF si así lo prefiere. Si Usted cambia php.ini, no se olvide de reiniciar el servidor.
• memory_limit necesita ser al menos 96M (aunque algunas funcionalidades podrían no
funcionar con tan poco). Moodle se rehusará a instalarse si es más baja. Se recomienda
128M. Las instalaciones más grandes podrían necesitar una configuración aun mayor.
• session.save_handler necesita configurarse a FILES.
• file_uploads necesita ser ON.
• session.auto_start necesita ser OFF.
• La carpeta temp debe estar definida y tener permisos de escritura para su usuario webserver
• Compruebe la sección que muestra/registra (en Bitácoras) los errores. Asegurese de que las
configuraciones estén de acuerdo con el servidor utiilizado
• post_max_size y upload_max_filesize limitan el tamaño máximo de archivos que pueden
ser subidos.
• Compruebe [mail function] y la sección de la base de datos elegida, para asegurar que
coincidan con la configuración de su servidor.
• max_input_vars=10000
• max_execution_time = 120
• output_buffering = Off
– or –
output_buffering = 16384
• Otras extensiones pueden ser requeridas de manera opcional para el correcto funcionamiento
de todas las utilidades de su Moodle. En particular la Autenticación externa y matriculación
(Inscripción) (ej. LDAP y la extensión de sockets para el servidor de Chat).
INSTALAR MEMCACHED
yum install memcached
nano /etc/sysconfig/memcached
- agregar
PORT="11211"
USER="memcached"
MAXCONN="2000"
CACHESIZE="4096"
OPTIONS="-l 127.0.0.1 -U 0"
- reiniciamos y activamos
systemctl restart memcached
systemctl enable memcached
Una vez iniciado, podemos confirnar que el servicio está funcionando sobre la
interfaz local y escucha solo conexiones
netstat -plunt
También podemos verificar las estadísticas del servidor utilizando la herramienta “memcached-
tool”, como sigue:
-habilitamos el puerto
firewall-cmd –reload
-reiniciamos
otros: https://www.rubenortiz.es/2008/05/13/apache-maxclients-y-mas/
nano /etc/httpd/conf/httpd.conf
MaxKeepAliveRequests 500
KeepAliveTimeout 5
KeepAlive On
mpm_prefork_module (shared)
volvemos a editar
nano /etc/httpd/conf/httpd.conf
<IfModule mpm_prefork_module>
StartServers 4
MinSpareServers 20
MaxSpareServers 40
MaxRequestWorkers 300
MaxConnectionsPerChild 4500
ServerLimit 300
</IfModule>
CONFIGURACIÓN MYSQL
Extraido de https://docs.moodle.org/all/es/Recomendaciones_sobre_desempe%C3%B1o
- buscar archivo mysql para configurar
- editar
nano /etc/my.cnf
table_cache=4000 (un buen valor es 64, aunque con MySQLTuner podremos ver si
necesitamos más o menos)
wait_timeout=15 (Es el tiempo de espera que tarda MySQL en cerrar una conexión.)
- reiniciar mysql
ejecutar
mysqltuner
ejecutar
sh archivo.sh
ajustar los sgtes. Valores:
innodbbufferpoolsize
sortbuffersize
readbuffersize
tmptablesize
maxconnections
editamos el php.ini
mysql.allow_persistent = Off
mysql.max_persistent = 15
nano /root/.mytop
host=localhost
db=mysql
delay=5
port=3306
socket=
batchmode=0
color=1
idle=1
Luego nos conectamos a todas las base de datos para hacer seguimiento
mytop --prompt
CONFIGURAR NGINX
en nano /etc/nginx/nginx.conf
worker_processes 2;
worker_connections 1024
quedando:
worker_processes 2;
events {
worker_connections 2048;
multi_accept on; //agregar
use epoll; //agregar
}
# reduce the data that needs to be sent over network -- for testing
environment
gzip on;
# gzip_static on;
gzip_min_length 10240;
gzip_comp_level 1;
gzip_vary on;
gzip_disable msie6;
gzip_proxied expired no-cache no-store private auth;
gzip_types
# text/html is always compressed by HttpGzipModule
text/css
text/javascript
text/xml
text/plain
text/x-component
application/javascript
application/x-javascript
application/json
application/xml
application/rss+xml
application/atom+xml
font/truetype
font/opentype
application/vnd.ms-fontobject
image/svg+xml;
#cache
open_file_cache_valid 60s;
open_file_cache_min_uses 5;
open_file_cache_errors off;
# allow the server to close connection on non responding client, this will
free up memory
reset_timedout_connection on;
client_max_body_size 100M;
client_body_timeout 10;
send_timeout 2;
keepalive_requests 100000;
server{
...
#cache de archivos
location ~* \.(jpg|jpeg|png|gif|ico)$ {
access_log off;
log_not_found off;
expires 30d;
location ~* \.(css|js)$ {
access_log off;
log_not_found off;
expires 30d;
- ACCESS_LOG cambiar a:
access_log off;
otros
https://docs.bluehosting.cl/tutoriales/servidores/como-configurar-nginx-para-obtener-un-
rendimiento-optimo.html
https://gist.github.com/denji/8359866