Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Taller de tunning de Apache y MySQL
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Taller de la la Moodle Moot Madrid 09 titulado \"Taller de tunning de Apache y MySQL\" realizado por Carlos Salamanca.
Como no sé muy bien el nivel que tenemos cada uno, pues voy a empezar un poco
00:00:00
incrementando desde un nivel básico a poco a poco llegar hasta un punto
00:00:04
importante. Cualquier duda que vayas teniendo pues vamos a decidirlo y lo
00:00:09
vamos resolviendo sobre la marcha.
00:00:14
¿Puedo dar aquí? Sí, que bien está esto.
00:00:18
Vale. Nosotros cuando tenemos
00:00:24
voy a poner un dibujo para que lo entendáis bien.
00:00:30
Juegos.
00:00:34
Perdón. Gráficos, Toothpaint.
00:00:37
Cuando nosotros hacemos una petición desde nuestro ordenador hasta una
00:00:50
dirección de Moodle, hasta un web server,
00:00:55
lo que realmente está haciendo es, el ordenador pide la página web,
00:01:01
la página web, hablando así en términos
00:01:08
de poco conocimiento, la página web hace sus procesos y se la
00:01:13
manda otra vez al ordenador para que nosotros la veamos en la pantalla.
00:01:20
Esos procesos que para nosotros son un camuflaje, que no sabemos muy bien lo que
00:01:23
hace, lo que está haciendo es llamar al Apache,
00:01:27
¿vale?
00:01:33
Que es nuestro servidor web. El Apache comprueba a Moodle
00:01:37
y Moodle lo que hace es interactuar con la base de datos
00:01:51
para volverle a mostrar al Apache el resultado y el resultado nos lo muestra
00:01:57
en la pantalla de nuestro ordenador. ¿De acuerdo todo esto, no?
00:02:04
Bien, como decía antes, los dos centros a poder optimizar son los procesos de
00:02:09
intercambio. Cuando los procesos en los que Apache pide información a Moodle y
00:02:17
los procesos en que la base de datos recibe las peticiones y devuelve las
00:02:23
respuestas.
00:02:28
Vale, Apache, todos sabemos ya que es un
00:02:31
servidor web, bueno, sabemos todo lo que es un servidor web, ¿no?
00:02:36
¿Alguien no lo sabe? Cuando nosotros tenemos Macs dentro de Linux y de Debian
00:02:40
y de Ubuntu, hay dos tipos de Apache. Está el MPM,
00:02:47
el Worker y el Prefork. La diferencia entre el Worker y el Prefork, la tengo
00:02:54
puesta en el curso, el Worker es muy adecuada para múltiples procesadores,
00:03:00
pero no es tan tolerante para módulos no oficiales de Apache, ¿vale?
00:03:04
Cada thread ocupa una única conexión, eso es muy importante.
00:03:11
El Prefork, cada hijo ocupa una conexión y es adecuado para los sistemas
00:03:16
simples, de una o dos CPUs, incluyendo los que tienen una CPU y por
00:03:21
hyperthreading tienen dos, ¿vale?
00:03:25
Bueno, ¿cómo iniciaríamos la
00:03:30
optimización? Lo primero que tenemos que ver son los módulos que se arrancan
00:03:37
dentro de Apache. Evidentemente, los módulos que no utilicemos están cargando
00:03:41
la memoria y entonces lo primero que deberíamos hacer sería descargar los
00:03:48
módulos que no necesitamos dentro de Apache. Para ello, lo que hacemos es
00:03:51
abrimos una terminal, que digamos que es una interfaz con la
00:04:01
máquina, con el servidor en el que tenemos instalado Moodle y Apache y
00:04:06
MySQL y comprobamos los módulos que hay. Lo primero que hacemos es
00:04:13
hacernos superusuarios. Todo esto lo podéis ir haciendo en vuestro ordenador
00:04:19
porque todos los Macs tienen instalados por defecto Moodle, entonces es
00:04:22
conveniente que vayáis haciendo los mismos pasos para comprobar luego
00:04:26
la mejora de rendimiento. Lo primero que hacemos es ponernos
00:04:30
como superusuario, que saldría con la orden sudo sub. Ponemos la
00:04:36
contraseña de Macs por defecto, que es cmadrid y nada más escribirle y
00:04:44
darle al enter, veremos que nos sale una almohadilla, con lo que ya somos
00:04:55
superusuarios. Ya tenemos el control del sistema para poder modificar cosas.
00:04:59
Los módulos de Apache que están en uso, todo el Apache se guarda en
00:05:06
etc Apache 2. Si nosotros aquí hacemos un ls, vemos que tenemos archivos y
00:05:14
coloreados ya por defecto por el sistema directorios. Todos los módulos
00:05:22
que hay dentro de Apache están módulos available, que son los módulos
00:05:26
disponibles, y los módulos que tenemos activados están en mods enable.
00:05:31
Si nosotros nos metemos dentro de módulos enable y hacemos un ls, vemos
00:05:39
que para activar un módulo, lo que hace es un link de los módulos
00:05:55
available al directorio de módulos en uso, los módulos enable. Aquí estamos
00:06:00
viendo que está cargando el módulo de alias, el módulo de autentificación y
00:06:09
muchos módulos que algunos no conocemos y que tampoco son interesantes en este
00:06:14
curso darles vueltas. Vemos que tenemos el módulo de PHP 5 cargado. ¿Qué
00:06:19
vamos por ejemplo a anular? Pues vamos a anular el deflate, el módulo de
00:06:27
deflate. La manera simple de borrar el módulo sería borrar rm, deflate y
00:06:31
asterisco para que sean los dos, o podemos ponerlos por separado. Conf, le
00:06:41
decimos sí y lo hace. Si nosotros quisiéramos activarlo, lo único que
00:06:48
tendríamos que hacer es un link otra vez a ese módulo. El módulo de deflate
00:06:56
en este caso es un módulo de compresión, es un módulo que sirve para, a la hora
00:07:13
del ancho de banda, poder agarrar cuando se mandan archivos porque digamos que lo
00:07:18
comprime en tiempo real y te lo vuelve a descomprimir en tiempo real. Se puede
00:07:22
mejorar el rendimiento con eso pero ahora mismo para lo que nosotros queremos no
00:07:27
lo vamos a utilizar. Antes de empezar a hacer rendimientos vamos a comprobar un
00:07:31
rendimiento inicial para poder tener unos datos básicos iniciales de cómo
00:07:40
funciona nuestro Apache. Vamos a utilizar el comando ab, que es un comando de Apache
00:07:50
Benchmark en el que le podemos decir a los clientes que vamos a simular que dos clases
00:07:59
que pueden ser 60 personas van a conectar a ese servidor web de Moodle para traer datos.
00:08:08
Le vamos a indicar al servidor web que tenemos 60 personas. Con el N son conexiones,
00:08:15
vamos a poner que son 1000 conexiones porque, si os acordáis, cuando he hecho el dibujito,
00:08:28
en estos procesos, cuando nosotros hacemos una petición web, puede que un usuario haga
00:08:34
más de una conexión al servidor web. Yo le pido, como es contenido dinámico, le pido
00:08:37
la página, él me muestra la página, él ve que no tengo ningún login puesto, entonces
00:08:44
me muestra el cartel de que no hay nadie logeado. Son múltiples peticiones que va haciendo.
00:08:48
Vamos a ponerle 1000 peticiones, así a ojo, y vamos a decirle que son 60 personas, que
00:08:57
es con C 60. Le ponemos la dirección web, menos D, HTTP, puntos, barra, barra, 127.0.0.1,
00:09:02
barra Moodle. ¿Por qué ponemos esto? Porque vamos a acceder al Moodle que tenemos local
00:09:24
cada uno de nosotros en nuestro ordenador. Esto lo podríamos hacer contra Google, contra
00:09:30
lo que fuera. Esto es un comprobador de estadísticas. Lo ejecutamos y entonces él va haciendo el
00:09:36
proceso de peticiones. Si nosotros quisiéramos, mientras se está ejecutando esto, si nosotros
00:09:44
abrimos otro terminal y hacemos un PSAX, veríamos que se están ejecutando muchos
00:09:59
apaches, porque está haciendo muchas peticiones al server web y, como no lo tenemos configurado,
00:10:08
él va, para responder a todos los clientes que virtualmente se están conectando, va
00:10:13
encendiendo hilos de apache, procesos de apache, para poder servir todas las páginas que se
00:10:18
le piden. Nos da los resultados. Localhost en el 80, a Moodle y vemos que tenemos 60
00:10:24
de concurrencia, que son la gente que se conecta a la vez, las conexiones, y las peticiones,
00:10:42
y nos ha dado un proceso de 2,8,8 segundos y la carga que ha podido generar. Esto es un poco
00:10:48
entendible. Dice las peticiones por respuesta, las respuestas por segundo, pero vamos a generar
00:11:03
un gráfico para que nos sea todo mucho más visual. En la línea de comando que hemos añadido
00:11:09
antes, le añadimos un "-g", y ponemos un documento de texto para que se guarden los datos ahí,
00:11:16
por ejemplo, prueba1.txt. Entonces, todos los datos que está generando los va a guardar en
00:11:26
el prueba1.txt. Vaya con la luz. ¿Lo vais haciendo en vuestra máquina?
00:11:35
Vale. Ya ha producido todo el proceso y nos genera… Bueno, yo le he hecho mal,
00:12:05
porque estaba dentro de este directorio, y entonces me ha generado el archivo,
00:12:25
que lo voy a mover a RUD. Ahí tenemos el archivo que nos ha generado toda esta información.
00:12:28
Entonces, yo ahora le voy a pasar un comando que es generar un plot. Voy a decirle que genere un png.
00:12:43
Le voy a poner un título. No, me he confundido. Le voy a poner un nombre de archivo.
00:13:02
Le voy a poner un título. No se ve. ¿Perdón? Sí, sí. Bueno, mira, lo que voy a hacer es…
00:13:26
Inicialmente voy a poner que todos… ¿En este? Ya está, ¿no? Inicialmente lo vais a ver todos
00:13:49
cómo lo estoy haciendo yo y luego lo vais a hacer vosotros. Le añado un título, Albert March,
00:14:11
y le voy a añadir unos parámetros que son básicos por la escala que utilizan ellos.
00:14:19
¿Cómo le he llamado? Prueba uno…
00:14:49
¿Plot?
00:15:19
Vale. Entonces ahora nosotros tenemos ahí un benchmark png. Lo voy a pasar al servidor web
00:15:31
para poder verlo. Ahí tenemos un gráfico de cómo aumenta la carga del apache según
00:16:00
el crecimiento repetitivo. ¿Vale? Hasta el punto de llegar a una cota de 3.500 milisegundos
00:16:25
para 1.300 milisegundos. Vale, entonces ahora voy a poneros otra vez el control para que
00:16:32
lo hagáis vosotros y podáis evaluar luego el… Ah, sí. Y podáis evaluar vosotros
00:16:39
el acceso. Voy a hacer la letra grande, como me habéis dicho. Vale, estos son los comandos
00:16:50
que he ejecutado en el genus plot. No sé si es lo que… ¿Así sí? Vale.
00:17:00
Nosotros habíamos guardado en prueba1.txt todos los accesos al apache.
00:17:24
A ver si no puedo poner el dedo porque si no se va esto.
00:17:33
Nosotros habíamos guardado en prueba1.txt todos los accesos al apache y ahora lo que vamos a hacer
00:17:39
es que apoyándonos en la herramienta genu plot va a generar una estadística gráfica
00:17:45
que además queda bonita a la hora de luego poder identificar cómo ha mejorado el acceso a nuestro sistema.
00:17:51
Más visual. Por allí ya lo tenéis todo esto copiado. Vale, entonces escribimos la última línea
00:17:57
plot prueba1 y ponemos exit. Al darle a exit vemos que tenemos el archivo…
00:18:03
Hacemos un ls y vemos que tenemos el archivo benchmark.png.
00:18:11
Como por dejar todo el apache dentro de max sirve todo lo que haya dentro de var www,
00:18:18
lo que hacemos es copiar este archivo a var www. Vale, yo ya lo había puesto.
00:18:25
Una vez que lo tenemos allí ya lo podemos abrir desde un servidor web.
00:18:37
Pues abrimos un navegador y escribimos la dirección y el nombre del archivo que hemos puesto.
00:18:41
Así que vamos otra vez con el curso.
00:18:57
Parámetros importantes.
00:19:00
Nuestro apache por defecto, como estábamos viendo antes,
00:19:09
con esto veo los procesos y con esto digo que solamente vemos lo que tiene el apache.
00:19:18
Nuestro apache por defecto genera una serie de procesos adicionales para servir las páginas.
00:19:23
Apache tiene inicialmente unos procesos esperando para servir las páginas
00:19:40
que van a tener que arrancar a los procesos de apache.
00:19:47
Cuando nosotros demos muchas peticiones y desbordamos este servicio de apache,
00:19:53
lo que hace es generar múltiples instancias.
00:19:59
Como hemos visto antes, cuando nosotros estamos haciendo la prueba,
00:20:02
esto simplemente es explicándolo.
00:20:06
Como voy a explicar voy a poner el texos.
00:20:09
Si nosotros lanzamos ahora mismo lo que he lanzado antes,
00:20:17
mientras está ocurriendo todo esto,
00:20:33
lo que vemos es que genera múltiples instancias de apache.
00:20:42
Entonces él está perdiendo recursos, levantando instancias,
00:20:45
un poco sin control porque se desbordan las 10 peticiones iniciales que están configuradas.
00:20:49
Cada petición que he puesto aquí en el curso, cada proceso que he puesto en el curso,
00:21:00
va a ocupar entre 12 y 20 megas de RAM, dependiendo de la complejidad.
00:21:06
En el caso de Moodle, casi siempre van a ser entre 15 y 20,
00:21:11
porque Moodle tiene contenido dinámico,
00:21:14
y entonces tiene que hacer mucho más esfuerzo el ordenador
00:21:16
y mantener mucho más RAM para poder servir lo necesario.
00:21:22
Hay varias opciones para mejorar el rendimiento de apache.
00:21:27
La primera es ajustando el Keep Alive.
00:21:32
El Keep Alive, como tengo aquí puesto,
00:21:36
es la cantidad de tiempo que un proceso de una conexión persistente se cuenta sin hacer nada.
00:21:38
En este ejemplo, todos estos procesos de apache, una vez que se ha desbordado,
00:21:46
no se quedan ahí levantados, porque si no, sería una locura.
00:21:50
Si nosotros le damos mil peticiones, no va a haber mil procesos de apache.
00:21:53
Lo que hace es que cuando llega un tiempo que nosotros le damos,
00:21:56
en el que no está sirviendo, se van cerrando.
00:22:00
Hasta el punto de que si yo, ahora que he acabado el ejemplo, lo vuelvo a dar,
00:22:03
pues ya hay muchas menos.
00:22:06
El Keep Alive, entonces aquí, lo que ajustamos son los segundos
00:22:15
para deshacerse de esos procesos extranjeros.
00:22:19
Yo tengo aquí puesto que lo mejor es tener un Keep Alive bajo entre un y tres segundos.
00:22:22
Todo esto son anotaciones que he hecho yo en base a Moodle.
00:22:28
Si nosotros estamos optimizando otra apache, lo normal creo que se ponen 10 segundos o 8 segundos.
00:22:33
No, por lo menos 15 segundos.
00:22:39
Entonces, para otro tipo de peticiones o otro tipo de servicios, puede ser bueno.
00:22:41
Como las peticiones de Moodle son cortas, lo que vamos a hacer es generar una apache muy potente
00:22:45
que rápidamente, cuando nosotros necesitamos más procesos, va a generar sus nuevos procesos
00:22:54
de manera rápida, pero pitando y cerrándolos rápido para no consumir menos gas.
00:23:03
Porque al final, todo Moodle carga mucho la gas.
00:23:07
No hace el proceso de lo que todos los programas tienen que hacer, pero carga mucho la gas.
00:23:11
Límite de procesos con más clients.
00:23:18
Voy a explicar un poco todo, y luego os explicamos a la apache.
00:23:24
Límite total de procesos, más o menos clientes.
00:23:33
Pues aquí, como he puesto, al utilizar Moodle, te da muchas presiones simultáneas.
00:23:35
Que era lo que yo puse en el vídeo.
00:23:39
Al exceder ese número, que viene dentro de la apache, lo que hace es consumir muchos recursos
00:23:41
y aparte de eso, puede llegar a bloquearlos o dejarlos en un cone.
00:23:50
Entonces, lo mejor que podemos hacer es añadir una cantidad máxima de clientes a lo que es el servicio web
00:23:58
para que no se piense que tenemos una GPU que tiene recursos limitados y que puede sacar mucho.
00:24:05
En cuanto eso ocurra, que piense que tenemos recursos limitados, es cuando empieza a gastar y va a estar a gastar.
00:24:12
Además, añado, que si se alcanza el límite impuesto, el sistema bloquea a los clientes y además los mantiene en cola y ralentiza el sistema.
00:24:20
Lo que decía antes, si son mil y nosotros tenemos puesto que acepte 80, todos los que hay no los bloquea,
00:24:32
no les prohíbe el acceso, sino que los dejan en cola esperando para mandar las peticiones poco a poco.
00:24:43
Nuestro servidor, tal y como lo vamos a montar, lo que va a hacer es que en cortas fracciones de segundo,
00:24:49
en cortas fracciones de segundo, múltiples peticiones, va a servir muy rápido todo lo que vamos necesitando.
00:24:56
La siguiente variable es forzar los procesos de APACHE de A con más reguas por cheque.
00:25:02
Son la cantidad de peticiones máximas que tiene cada AI.
00:25:16
Cuando nosotros estamos dentro del APACHE, si nosotros hacemos múltiples peticiones,
00:25:22
lo que va a generar aquí son múltiples hilos dentro de cada proceso para cada petición.
00:25:31
Entonces, lo que nosotros vamos a hacer es ver cuántas son las máximas que va a servir para cada proceso ahora en general.
00:25:37
Cada proceso podría mantener a lo mejor 10 conexiones, pero esto haría que tuviéramos muy pocos procesos,
00:25:44
pero muchas conexiones y no tanto como merecido el sistema.
00:25:50
Lo que vamos a hacer es que haya un número finito de peticiones para cada proceso.
00:25:54
Bueno, aquí pongo que hay que experimentar con este valor un poco, que puede ser tan bajo como 30,
00:26:01
pero tampoco tiene que ser demasiado bajo porque tendrá complicaciones con la creación de nuevos procesos
00:26:16
y, por lo tanto, otro relentí similar.
00:26:22
Si nos excedemos de número bajo para que sea rápido, al final lo que está generando es no dar la talla para darnos la información necesaria y generar muchos procesos.
00:26:25
Entonces, no generamos procesos hijos dentro de APACHE, pero estamos generando muchos procesos APACHE y no llegamos a ningún punto.
00:26:37
Y aparte he puesto que hay que utilizar esta definición con cuidado porque todo lo que agrandemos las máximas peticiones por hijo,
00:26:45
nos va a hacer que quizá tengamos que incrementar más clients.
00:27:02
Yo aquí, dentro de Moodle, lo que he considerado que un número 30 es el ideal.
00:27:07
Toda la consideración que he hecho es en base a las máquinas que tenéis en los centros,
00:27:13
que es entre 2 y 4 GB de RAM y un Xeon, de multiprocesador, con dos procesadores.
00:27:19
MinSparServer, MaxSparServer y StarServer.
00:27:25
Lo que hacemos con MinSparServer, MaxSparServer y StarServer son los servidores iniciales, que son los hilos de APACHE que nosotros tenemos iniciales,
00:27:37
y hasta cuánto van a llegar y cuántos son los mínimos que se quedan.
00:27:54
¿Por qué es distinto el mínimo del StarServer?
00:27:58
Porque muchas veces nosotros podemos estar haciendo una operación en nuestro ordenador,
00:28:01
y por lo tanto parar un momento el APACHE y saber que en cuanto lo levantemos vamos a recibir muchas peticiones.
00:28:05
Si nosotros vamos a poner un supuesto, sabemos que nuestro ordenador queremos que tenga desde 15 hasta 100 procesos de APACHE corriendo,
00:28:10
si empezamos con 15 servidores de APACHE y sabemos que vamos a tener de repente multitud de alumnos que se van a conectar,
00:28:25
va a ralentizar el sistema porque a lo mejor tenemos que llegar a 50 o a 60.
00:28:32
Entonces lo que hacemos en esta situación ideal es comenzar con un número que esté más o menos en la mitad entre MinSparServer y MaxSparServer.
00:28:36
En un servidor APACHE con Moodle que recibe una media de 300 consultas por segundo, que es una media de 60 alumnos,
00:28:55
yo he establecido lo siguiente, que comenzamos con 40 procesos de APACHE, que los mínimos son 30,
00:29:03
que los máximos son 50 y que los clientes máximos son 240.
00:29:11
El timeout de 30 es los milisegundos que tarda en decir que no tenemos acceso al sistema, porque estemos en cola.
00:29:17
Y el keepalive timeout que es lo que hemos dicho antes.
00:29:30
Hemos establecido, teníamos aquí arriba que el keepalive lo pusiéramos en 3, que es muy bajo, y aquí lo puse en 4,
00:29:33
que también sigue siendo bajo, pero no es necesariamente el modelo este.
00:29:53
Entonces vamos a empezar a poner estos datos en un servidor web, en un APACHE, y vamos a hacer otra vez el proceso que hemos hecho antes.
00:30:00
¿Os estoy oyendo? ¿Tenéis alguna pregunta por allí?
00:30:11
Voy a daros otra vez el control para que vayamos haciéndolo a la vez.
00:30:21
Estábamos como superusuario, que por eso tenemos la almohadilla. Si no tuviéramos la almohadilla, podemos hacer el sudo su, como antes, y le pedimos la clave.
00:30:25
Y vamos a nuestra configuración de APACHE.
00:30:45
Vamos a hacerlo mucho más fácil para editarlo, porque no sé si todos sabéis editar con Viz, que a lo mejor es más complicado.
00:30:55
He salido de superusuario para hacerme usuario normal, que se puede hacer con Exit, o cerramos la ventana y la volvemos a abrir.
00:31:10
Y pongo GKSUB, GEDIT, ETC, APACHE 2, APACHE 2.COM.
00:31:29
Esto nos abre un editor un poco más gráfico para que no tengamos problemas.
00:31:43
El comando, lo voy a volver a poner a la pantalla, es este.
00:32:01
El taller no consta de administración de linos. Con esto lo que estamos haciendo es arrancar un programa del usuario a un fichero que solo puede modificar el superusuario, el administrador.
00:32:13
En este caso lo que hace es decirle que vamos a hacerlo con el usuario root, que nos pida la clave, el comando GEDIT y lo que queremos editar.
00:32:25
Tenemos ya el fichero de configuración.
00:32:35
Vamos a ir poco a poco hasta la zona en la que tenemos la parte que nos interesa modificar.
00:32:42
Por defecto lo que hace APACHE es servir 5 procesos desde el inicio, con un mínimo de 5 y un máximo de 10.
00:32:53
Que es lo normal para 4 o 5 personas para que puedan utilizarlo.
00:33:04
O estáticas que sean hasta 10 personas, da igual.
00:33:10
Vamos a poner nuestros valores.
00:33:14
Los valores que vamos a ponerle son STASERVER40.
00:33:30
Tan fácil como editarlo, 40.
00:33:45
En MÍNIMOS PARTSERVER, 30.
00:33:48
MÁXIMOS PARTSERVER, 50.
00:33:51
MÁXIMOS CLIENTES ACEPTADOS, 240.
00:33:54
Si tuviéramos el otro APACHE, cargaría este módulo.
00:34:02
Y entonces tendríamos que cambiarlos en este sitio.
00:34:06
Lo tenemos, lo damos a guardar.
00:34:11
Y vamos a volver a hacer la estadística como hemos hecho antes.
00:34:21
Me pongo como superusuario.
00:34:28
Y doy con la flechita hacia arriba para no tener que volver a escribirlo para la estadística.
00:34:33
Voy a llamarlo a esto PROBA2-TXT.
00:34:41
Hay que reiniciar el APACHE para que todos los cambios tengan efecto.
00:34:55
Voy a llamarlo a esto PROBA2-TXT.
00:35:00
Que se hace con la orden PTT-INPUT.D APACHE2-START.
00:35:05
Hay muchas maneras de reiniciar el APACHE, pero esta es la más cómoda.
00:35:13
Ahora sí ejecutamos el comando.
00:35:21
APACHE BEDMARK, que sean 1000 peticiones.
00:35:30
Haciéndolo de 60 en 60 a los clientes.
00:35:34
Y que nos lo guarden PROBA2-TXT.
00:35:38
Voy a dar al ENTER.
00:35:44
Vamos a hacer un comando en el APACHE.
00:36:01
Y vamos a hacer un comando en el PROBA2-TXT.
00:36:05
Creo que lo que se está haciendo es la misma.
00:36:11
Voy a hacer un comando en el PROBA2-TXT.
00:36:17
Y voy a hacer un comando en el PROBA2-TXT.
00:36:21
Y voy a hacer un comando en el PROBA2-TXT.
00:36:25
Y voy a hacer un comando en el PROBA2-TXT.
00:36:30
Ya tenemos la salida.
00:36:36
Hacemos un LS y vemos que está PROBA2-TXT.
00:36:39
Vamos a hacer un plot ahora.
00:36:52
¿Tienes los parámetros?
00:36:56
Sí, hay que dárselos.
00:37:00
Si damos al FECHA hacia arriba no lo va a marcar.
00:37:20
Le decimos SET OUTPUT BANDMARCH 2 BND.
00:37:26
Esta vez ponemos 2 para que no se nos prima el otro.
00:37:30
Atención a esto.
00:37:34
Volvemos otra vez para arriba.
00:37:38
El título, BANDMARCH, podemos poner 2 también.
00:37:42
El SIZE.
00:37:49
Y el TITLE.
00:37:56
No, no, he puesto...
00:38:26
No sé por qué ahora no se ha salido en pantalla, pero directamente...
00:38:34
Estos son los momentos de datos. Son los mismos de antes, lo que hace SEGA muy rápido es que le da un flecho hacia arriba para llegar hasta ellos.
00:38:41
Y donde ponía solo Benchmark, he puesto Benchmark 2.
00:38:48
Y luego aquí en el plot hay que poner, hay que acordarse de esto, que se me había pasado a mí un poquito, prueba 2 TXT y luego utilizando el título Benchmark 2.
00:38:51
Con eso vamos a hacer el plot y escribimos ese.
00:39:01
Y nos ha generado el Benchmark 2 PNG.
00:39:06
Lo copiamos al servidor web o lo movemos.
00:39:10
Y lo ejecutamos.
00:39:21
No vemos nada.
00:39:27
Un segundo.
00:39:31
Vale, como antes me ha mostrado una pantalla, creo que al cerrarla he cerrado la operación. Así que voy a volver a hacerlo.
00:39:33
Tenemos el prueba 2. Hago GNU Plot.
00:39:57
Set output Benchmark 2 PNG.
00:40:06
El título.
00:40:13
Tamaño.
00:40:17
Key Laptop.
00:40:21
Y aquí debemos darle a guardar o algo.
00:40:26
Eso es lo que pasa Mario.
00:40:56
No te oigo.
00:41:01
Eso es lo que pasa.
00:41:10
Sí, pero ¿por qué hace eso?
00:41:15
Cuando tienes display, cuando estabas antes como root no tenías el display abierto.
00:41:17
Y ahora si lo tienes, te lo pinta aquí.
00:41:30
Lo que me está diciendo Mario es que como antes hicimos GKSudo, se aplica la variable display al sistema y por eso al guardarme el archivo me abre la ventana.
00:41:34
Ahí tenemos el Benchmark 2, que lo que hemos hecho ha sido una captura de pantalla.
00:41:57
Pero bueno, para defecto no vale.
00:42:01
Lo muevo ahí y lo vamos a ver en la pantalla.
00:42:22
Aquí vemos que las peticiones, cuando llegamos a 1.000, el tramo de 900 estamos todavía por 2.000, 2.500 y el tramo de 3.500 y el tramo de 1.000 peticiones estamos ya en 3.500.
00:42:26
Si nosotros vemos lo que teníamos antes, tenemos un cambio significativo en el que entre las 900 y 6.000 subía las 4.000 peticiones.
00:42:41
De todos modos estamos sirviendo contenido estático porque para ver esto habría que meterse dentro del propio Moodle con login y con usuario y ver cursos o descargar cosas.
00:42:51
Ya en página estática, que es la página inicial de Moodle, ya tenemos una ganancia.
00:43:04
Aquí puse una fórmula que lo he copiado por internet y se adecuaba un poco a lo que yo estaba haciendo.
00:43:21
Máximo clientes, RAM total dedicada, server web, entre las máximas peticiones por IFO que queramos tener.
00:43:31
Con lo que si tenemos un servidor de 2 GB de RAM y tenemos 20 IFO por proceso, quedaría 2.820 y todos en el valor de más clientes.
00:43:41
Como nosotros estamos previendo un servidor entre 2 GB y 4 GB, que es lo que tenemos en los colegios, lo he aumentado un poco más.
00:43:50
Pero bueno, esto es una regla que os puede valer, si no sabéis muy bien qué para nosotros poner en el sistema.
00:43:58
Si nosotros quisiéramos poner en valor de 256 clientes, habría que cambiar también a una palabra que sería server link.
00:44:03
¿Hay dudas en esto del Apache?
00:44:17
Sí, en el primero lo que tenemos es el Apache 4.0.
00:44:19
Es un fichero con un S que estamos dentro.
00:44:29
Lo que tenemos es el Apache 4.0.
00:44:32
Es un fichero con un S que estamos dentro.
00:44:39
Este es un fichero de configuración común.
00:45:02
Para no generar múltiples configuraciones de cara a cambiar paquetes y cosas de Debian, Linux, Ubuntu y de Mac, lo que se hacen son configuraciones un poco comunes.
00:45:05
Aquí lo que está diciendo es, si nosotros tenemos el módulo prefork, coge este valor.
00:45:18
Si nosotros tenemos el worker, coge este otro.
00:45:23
Luego nosotros podríamos ver, con dpkg-l, por ejemplo, pipe grep apache, veríamos que apache tenemos,
00:45:25
ah, pero me dijeron que era el worker, me confundí, es el de arriba, que es el prefork.
00:45:33
Entonces vemos que tenemos instalado el apache prefork, ¿vale?
00:45:37
¿Alguna preguntilla más sobre la parte de apache?
00:45:42
Lo que hemos hecho ha sido decirle que tenga más procesos levantados a la hora de que nosotros vayamos a tener accesos de una clase, de dos jueces de gente.
00:45:45
Lo que hemos hecho ha sido decirle que tenga más procesos levantados a la hora de que nosotros vayamos a tener accesos de una clase, de dos jueces de gente.
00:45:56
Lo que hemos hecho ha sido decirle que tenga más procesos levantados a la hora de que nosotros vayamos a tener accesos de una clase, de dos jueces de gente.
00:46:03
Dos clases de niños, para que puedan acceder al apache.
00:46:12
Luego vamos a volver a modificar el apache para el acelerador vhp, pero ahora mismo este es un primer paso.
00:46:15
¿Los módulos que tienes que instalar al apache son los que utiliza por defecto?
00:46:21
Sí, por defecto. Cuando nosotros instalamos el sistema operativo de Mac o Ubuntu o el que sea y tenemos por apt-get o ya instalado el apache, tiene una configuración por defecto.
00:46:27
Los que se han visto hechos por defecto y he quitado solo ese.
00:46:47
Sí, solo he quitado ese. También se funciona un poco de lo que vayamos a hacer.
00:46:50
Como Moodle se puede utilizar para muchas cosas, hay que ver un poquito lo que nosotros queremos utilizar y lo que no queremos utilizar.
00:46:54
En principio, la sobra de eso es ese. No hay mucho más.
00:47:02
Si utilizamos PET o cosas, no necesitaríamos ese módulo.
00:47:06
¿Alguna cosita del apache de esta parte simple?
00:47:11
¿Alguna cosita que no se utilice por defecto?
00:47:19
Sí, exacto. En principio, el uso que nosotros vamos a darle es un uso profesional, pero es un uso limitado a un instituto, a un centro, a algo que no es escalar realmente muy grande.
00:47:30
Entonces, el peor, que es el más pequeño, por así decirlo, es el que mejor nos viene.
00:47:45
Es el que vale para un procesador o dos procesadores, por lo cual ya coge los sistemas con Hyper-Threading y los sistemas nuevos y funciona con muchos módulos.
00:47:52
Con casi todos los oficiales y muchos no oficiales.
00:48:02
El otro es el que está más limitado a solo los módulos oficiales y está más optimizado para funcionar en máquinas mucho más grandes y más potentes.
00:48:05
Y para hacer granjas de apache, que también es otra solución, les habrá visto plenamente a disponibilidad.
00:48:14
Lo que vamos a hacer ahora es...
00:48:25
¿Podemos parar cinco minutillos o continuar si queréis?
00:48:30
Continuamos.
00:48:34
Vale.
00:48:35
Ahora vamos a pasar al tuning de MySQL.
00:48:41
No os asustéis por esto, porque esto es un poco en el valor que tiene el curso. He puesto más datos extra para que podáis analizarlo y ya lo hemos contado.
00:48:46
La manera en la que nosotros vamos a configurar MySQL, que es la base de datos que normalmente ponemos en Moodle, es configurando sus accesos de caché.
00:48:56
Esta sería una pequeña parte de MySQL.
00:49:16
Porque cuando nosotros estamos utilizando Moodle, realmente es una herramienta para repartir conocimientos y repartir algo que nosotros ya hemos creado.
00:49:19
Si tuviéramos 200 creadores a la vez dentro de Moodle, entonces el caché no tendría tanto valor, porque lo que estamos haciendo es apuntar cosas al sitio web.
00:49:30
Pero, como en este caso, la síntesis directa que tenemos de la parche es mostrar información a los usuarios, a los alumnos, a los niños o a la gente que no quiere ver los cursos.
00:49:40
Lo que estamos haciendo es, muchas veces, partir ese proceso de búsqueda dentro de la base de datos para darle los datos catados al usuario.
00:49:53
¿Cómo solucionamos eso? Con caché.
00:50:03
Diciéndole a la base de datos, oye, como no tenemos muchos cambios, pues vamos a ir guardando caché de todas las operaciones que hacemos para asegurarnos.
00:50:05
Y como además tenemos un apache que va creciendo en función de la necesidad, pues todo lo que tenemos de caché lo vamos aprovechando para echárselo a los servidores de apache, a los procesores de apache.
00:50:13
¿Vale?
00:50:26
Y luego tenemos otros valores que también valdrían para acelerar un poco las búsquedas, las operaciones dentro de MySQL, pero que vamos a asignar a tiempo a verlas.
00:50:30
Yo tengo aquí configurado una configuración para el servidor medio, que era el que hablábamos antes.
00:50:45
Aunque, de cara a la base de datos, esto también vale para el servidor mucho más grande.
00:50:58
Porque lo que estamos haciendo es configurar las búsquedas de cacheadas de Moodle.
00:51:03
Y Moodle, más o menos, siempre hace lo mismo para los datos.
00:51:12
Siempre busca más o menos las mismas cosas para mostrar los datos.
00:51:16
¿Vale?
00:51:21
Si nosotros ejecutamos este comando, mysql-verboseget, nosotros veremos por defecto ya todos los parámetros que se han ajustado en el servidor MySQL de manera normal.
00:51:27
¿Vale?
00:51:41
Lo vamos a ejecutar para que lo veáis, porque de cara a que luego lo vayáis modificando y lo vayáis viendo, es importante.
00:51:43
¿Vale?
00:51:50
Tengo que hacerme eso por usuario.
00:51:57
¿Vale?
00:51:59
Vale.
00:52:18
Llevamos los datos de la bolsa...
00:52:29
Entonces...
00:52:36
Esto nos vale para cuando modifiquemos nuestros propios datos.
00:52:39
Podemos verificar que se han cargado, que se han corregido.
00:52:43
Al menos ya tenéis un común de manera de ver los datos.
00:52:47
¿Vale?
00:52:49
Toda la configuración de MySQL se guarda en el archivo my.cnf.
00:52:56
¿Vale?
00:53:06
Yo lo voy a abrir así porque me parece un poco más cómodo.
00:53:08
Y vosotros si queréis hacerle el gcasu, gedit para abrirlo.
00:53:11
El archivo es este.
00:53:15
EPC, MySQL, CNF.
00:53:17
¿Vale?
00:53:22
Y aquí vemos todas las variables que tenemos por defecto puestas.
00:53:25
Y mucha de la información que he comentado para ayudarnos a entender y a configurar el servidor.
00:53:30
Vamos a ir a lo nuestro.
00:53:38
Aplausos.
00:53:45
Vale.
00:53:48
Activar el query cache y para verificarlo.
00:53:50
Yo tenía...
00:53:56
Ah, sí, lo tengo aquí también, perdonad.
00:53:58
Query cache type 1, query cache size 16 megas y query cache minresunit 2K.
00:54:02
¿Vale?
00:54:08
El query cache, aquí lo tengo para que nos quede fácil.
00:54:09
Así se ve peor, ¿no?
00:54:17
El query cache type, lo que decimos es si lo vamos a utilizar, ¿qué tipo de cache vamos a utilizar?
00:54:21
Si utilizamos un valor de 0, esta no, o sea que no lo cachea.
00:54:29
Si utilizamos un valor de 1, esta no, permite el cacheo, excepto para los sitios donde indicamos que no cachee.
00:54:33
Porque habrá peticiones que sí que son importantes y que no queremos que estén cacheadas.
00:54:39
Y el valor 2 es para que solo cachee donde le decimos que sí cachee eso.
00:54:43
Por defecto Moodle está preparado ya con las queries de SQL no cachee.
00:54:48
Con lo cual nosotros le decimos que sí a todo, excepto cuando él sepa que no tiene que cachear esas...
00:54:53
Que no tiene que repetir esas búsquedas, ¿vale?
00:54:58
Y el query cache size es la cantidad de memoria reservada para cachear resultados con su Moodle.
00:55:01
Por defecto es 0, ¿vale? O sea que estaría desactivado.
00:55:09
Nosotros vamos a añadir query cache type 1, query cache size 16 megas.
00:55:14
Y bueno, estos son parámetros que os he dicho que son complicados de quitar.
00:55:21
Pero sería la unidad mínima de recepción que tiene cada paquete de una query.
00:55:26
Nosotros hacemos una query al servidor y el servidor nos proporciona una respuesta.
00:55:40
Entonces sería el tamaño mínimo que podemos decirle que cachee.
00:55:45
Porque menos que eso, no da igual que sea calzada o no.
00:55:51
Entonces vamos a añadir esos parámetros.
00:55:57
Vosotros sabéis lo con gcasu, gedit, lo vamos a hacer igual.
00:56:04
¿Vale?
00:56:08
gcasu, gedit, btc, mysql, myzn.
00:56:14
¿Vale?
00:56:26
Pues vamos a añadir...
00:56:32
A ver...
00:56:34
¿Le he dado algún botón? No.
00:56:37
Vamos a mirar primero si está ya definida.
00:56:40
No sé si esto tiene para ponerlo más grande.
00:57:03
Modo resaltado.
00:57:10
No se puede poner más grande.
00:57:14
Lo vemos en la web, en la web si lo tengo grande.
00:57:27
Si lo puedo poner grande, perdón.
00:57:30
Aumentar.
00:57:34
Aumentar.
00:57:37
¿Vale?
00:57:39
Aquí tengo otras soluciones que se pueden utilizar para mejorar el régimen de mysql.
00:57:43
Pero vamos a ir con la configuración óptima.
00:57:47
La configuración óptima es la siguiente.
00:57:52
Tiene que estar 128.
00:57:57
Es el tamaño de la pila para cada frea.
00:57:59
Es que...
00:58:04
¿Cómo puedo...?
00:58:06
Bueno, voy a definir todo esto.
00:58:12
Es que claro, entramos en parámetros del sistema que...
00:58:15
Carlos mejor, stacks y cosas así, pues no sé.
00:58:19
Tengo que chocar.
00:58:24
Tengo aquí puesto.
00:58:26
Es el tamaño de la pila máximo para cada hilo que nosotros mandamos.
00:58:28
¿Vale?
00:58:31
Esto significa que...
00:58:33
Si nosotros no pusiéramos máximos, lo que haría sería generar...
00:58:36
Si nosotros no pusiéramos máximos, lo que haría sería generar un fread demasiado grande y demasiado pesado de RAM.
00:58:43
Ocuparía muchos procesos y mucha RAM.
00:58:51
Con esto lo que hacemos es que cuando llega a 128, pues vuelve a hacer otro hilo con otro límite de 128.
00:58:53
Y así simultáneamente para dar velocidad al sistema y poder luego sanear rápido la RAM.
00:59:01
Keybuffer, 150 MB.
00:59:08
Bajamos.
00:59:11
Y decimos aquí.
00:59:15
Los bloques de índice de tablas para MySAN e eSAN se guardan en buffer y se comparten para todos los threads de keybuffer size.
00:59:16
¿Vale?
00:59:22
Entonces aquí lo que estamos diciendo es que 150 MB sea el completo de cada uno de esos bloques generales de índices.
00:59:23
Es que esto sé que es difícil de...
00:59:32
O sea, es áspero de leer así, pero no sé cómo explicarlo mucho mejor.
00:59:35
Conexiones máximas.
00:59:41
Bueno, todo lo que vea así, paquete y tal, lo podéis ver aquí y lo podéis ver luego en el curso.
00:59:43
Y voy a ir un poco a lo más inteligible, ¿no?
00:59:48
Máximas conexiones.
00:59:52
Pues es el número de conexiones simultáneas que permitimos.
00:59:53
Tengo máximas conexiones 100.
00:59:56
¿Vale?
00:59:58
Decidí este número porque dice que en el Apache los máximos servidores que iban a estar levantados iban a ser 50.
00:59:59
Entonces, en previsión de que haya alguna SQL, alguna petición a la base de datos que sea de ida y vuelta, pues he puesto el doble del valor de los servidores totales.
01:00:07
¿De acuerdo?
01:00:17
De esa manera, cubrimos hasta el máximo de lo que el Apache, de lo que el servidor web puede dar y no gastamos recursos extras en que otras peticiones que estén en cola en el Apache sigan procesándose.
01:00:18
Vale.
01:00:37
Threads concurrency.
01:00:39
Los procesos concurrentes que va a haber la creación, cuando nosotros necesitamos más hilos para pedir datos a la base de datos, la velocidad que tienen crearlos.
01:00:41
Esto es una fórmula muy simple, que es CPU por 2, incluyendo los hyperthreading y todo eso.
01:00:55
Si tenemos una CPU con hyperthreading, pues son 2. 2 por 2, 4.
01:01:03
Normalmente en los institutos hay biprocesadores con hyperthreading. ¿Cuántos serían? 4 por 2, 8.
01:01:09
Pues en Threads concurrency podríamos 8.
01:01:15
Estas son las que he explicado antes, el queryCacheSize y el queryCacheType, que ya las hemos visto.
01:01:20
Las añadiríamos.
01:01:26
Voy a copiarlas y pegarlas todas allí.
01:01:32
He copiado los datos que hemos visto en la web que he puesto dentro del servidor MySQL.
01:01:34
Lo guardamos y reiniciaríamos en MySQL.
01:01:58
Esto es para hacer lo mismo que he hecho antes como superusuario, pero como usuario.
01:02:04
Lo que estoy haciendo es, como superusuario ejecuta MySQL Restart.
01:02:25
Igual que en Apache, con eso pararía el servidor de base de datos y lo volvería a lanzar.
01:02:30
Ahí tendríamos la base de datos corriendo nueva, con esa mayor capacidad y mayor optimización de acceso.
01:02:44
Y ahora nos quedaría solamente el último grupo, que sería el acelerador PHP.
01:02:51
Esto lo he dejado para el final, porque quizás es lo más importante para acelerar el Moodle.
01:02:58
Porque Moodle se basa mucho en cosas cacheadas, en información que repite continuamente a la hora de mostrar en la pantalla.
01:03:04
Esto es un poco más gráfico, porque lo he preparado con el navegador.
01:03:12
Y quizás compensa un poco el que veáis tanto a terminar.
01:03:17
¿De la parte de MySQL tenéis alguna pregunta que podamos responder?
01:03:26
¿Acelerador PHP?
01:03:36
Sí.
01:03:42
Claro, efectivamente, dentro de MySQL hay muchas cosas que se pueden modificar.
01:03:55
Pero como esto también era un taller de optimización, evidentemente hay problemas con las tablas.
01:04:01
Si las tienes en un TF8 y otros en ISO, a la hora de las tildes y los caracteres especiales.
01:04:06
Pero bueno, eso sería un poquito de otro tipo de talleres, porque si no puede ser inmenso.
01:04:14
Lo que vamos a hacer es... ¿Cómo funciona un acelerador de PHP?
01:04:25
Funciona de la misma manera que os he explicado un poco antes el caché del MySQL.
01:04:33
Todo lo que es caché es muy similar.
01:04:39
Nosotros como equipo, como cliente, hacemos una petición a Moodle.
01:04:42
Moodle hace su proceso y nos lo cuesta.
01:04:47
Dentro de su proceso, si os recordáis, él consulta al servidor Moodle, consulta la base de datos, establece un objeto que es el que nos va a mostrar.
01:04:50
Y luego nos lo tira a nuestra pantalla.
01:05:00
Nosotros lo recibimos en nuestro navegador y lo vemos.
01:05:03
Por un lado está el caché de la base de datos, que lo que hace es acelerar la búsqueda sin mirarlo.
01:05:06
Pero el caché de PHP lo que hace es que lo que es igual ya lo tiene cacheado.
01:05:11
Ya lo tenéis visible en el curso para que lo podáis ver.
01:05:19
Pero escuchar ahora esto es importante.
01:05:22
El acelerador PHP es quizá lo más importante de la aceleración de Moodle.
01:05:24
Retomo. Cuando nosotros hacemos una petición de MySQL, la parte cacheada es la parte que es similar y nos la muestra para que esté acelerada.
01:05:30
Pero es que muchas veces, por ejemplo, cuando nosotros tenemos un documento, que sea un curso, y se lo mostramos a nuestros alumnos, o en este caso a vosotros,
01:05:41
todo el mundo está viendo ese mismo curso, esa misma página completa, esa misma página entera de PHP.
01:05:49
No solo nos necesitaría nada más que hacer una búsqueda en MySQL.
01:05:55
MySQL la mostramos una vez y ya la podría tener cachada por si hay más peticiones.
01:05:59
Pero es que además hay aquí 15 personas o 20 personas que van a ver ese curso.
01:06:04
Entonces, en vez de solo cachar la información que sale en la base de datos, podemos cachar toda la página completa para mostrarnosla a los clientes.
01:06:07
Este proceso es desgraciable cuando es solo una muestra de una o dos páginas, pero evidentemente cuando es de más de 20 o de 30, pues son procesos que se ahorra la máquina.
01:06:20
A la hora de generar esa página PHP que nosotros vamos a abrir.
01:06:30
Vale.
01:06:33
Esto está un poco esteléctrico porque lo he estado modificando a última hora, pero todo esto lo he comprado.
01:06:39
Dentro de un ToDev y Animax, que son más o menos las instrucciones que vamos a manejar casi seguro todos vosotros para poner un model,
01:06:46
tenemos un acelerador PHP, que es un acelerador PHP-APK.
01:06:56
Este va a estar disponible dentro de todas las distribuciones, pero nosotros podemos utilizar cualquiera.
01:07:09
Yo lo he estado probando y comprobando y he parametrizado unas condiciones que son muy buenas, idóneas para lo que es.
01:07:15
Bueno, con apk-hso-php-apk veríamos los datos de lo que es ese paquete de Debian.
01:07:26
Tampoco entramos en ello ahora mismo demasiado porque es ver un paquete de Debian.
01:07:33
Y se puede hacer con eso con un programa gráfico.
01:07:37
Instalamos el PHP-APK.
01:07:42
Podemos instalarlo de dos maneras.
01:07:45
Con la consola, normalmente para la gente que administramos es lo más rápido.
01:07:47
O con el modo gráfico.
01:07:52
Con Synaptic, que sería un poco más gráfico.
01:08:00
Simplemente se instala el paquete y ya está.
01:08:05
Así que vamos a hacer esta operación directamente aquí.
01:08:07
Abrimos una ventana otra vez, una terminal.
01:08:10
Nos la hacemos superusuarios.
01:08:13
Lo ejecutamos con Gksudo.
01:08:15
Gksudo.
01:08:18
Lo pongo ahí arriba.
01:08:20
Apk-d.
01:08:22
Install.
01:08:24
PHP-APK.
01:08:28
Vale, esto de aquí olvidaros porque esto os lo pongo claro para que lo veáis.
01:08:32
Lo que está diciendo es que estos paquetes no están actualizados.
01:08:39
Como Max está lanzando la nueva versión, el paquete no está actualizado.
01:08:43
Pero eso da igual.
01:08:48
Lo que hacemos es que instalamos el PHP-APK.
01:08:50
Se lo baja de internet y lo configura él solo.
01:08:56
Es un paquete muy simple que no tiene mucho que hacer.
01:09:00
Y ahora pasamos a la configuración nuestra.
01:09:04
Ya lo tenemos instalado.
01:09:08
Si lo quisiéramos ver, haríamos dpkg-l.
01:09:09
Que muestra toda la lista de paquetes que hay instalados en el ordenador.
01:09:13
grep-pipe.
01:09:17
grep-php-apk.
01:09:19
Por si otro día hemos dejado la posibilidad, si no nos acordamos que lo hemos instalado.
01:09:21
Y veríamos.
01:09:25
Voy a poner Max arriba.
01:09:27
Y veríamos que está instalado.
01:09:30
Está instalada la versión 3.19.
01:09:32
Y ahora lo que tenemos que hacer es editar el PHP-ini para decirle que cargue dentro del PHP el PHP caché.
01:09:39
Para decirle al PHP que tenemos dentro del sistema que utiliza el módulo de caché que hemos instalado.
01:10:02
Pues lo hacemos.
01:10:07
No, no.
01:10:10
No, no, es esto.
01:10:14
Sí, sí.
01:10:16
No hay ningún problema.
01:10:18
Si quisiéramos ver el contenido de un paquete.
01:10:20
dpkg-l.
01:10:22
php-apk.
01:10:24
Entonces vemos ahí.
01:10:27
Tienes toda la razón.
01:10:29
Ahí vemos que es apk.es.
01:10:32
Vale, pues.
01:10:35
Vamos a la configuración.
01:10:41
gcasu.
01:10:43
gedit.
01:10:45
etc.
01:10:47
php5.
01:10:49
apache.
01:10:51
php-ini.
01:10:53
Y bajamos a la parte de extensión.
01:10:56
Perdón.
01:10:58
Bueno, como no sé dónde está lo pongo aquí.
01:11:05
Lo añadimos aquí mismo.
01:11:23
Bueno, lo vamos a añadir todo abajo para que lo tengamos todo.
01:11:25
Vale, añadimos php-apk.
01:11:31
Lo guardamos.
01:11:35
Y salimos.
01:11:38
Vale.
01:11:42
Ahora reiniciaríamos apache, como tengo aquí puesto, para que tenga efecto en el motor de php.
01:11:44
Reiniciamos apache.
01:11:48
Y vamos a crear una página web que tenga estas sentencias.
01:12:05
Pues lo copio.
01:12:16
Creo un archivo.
01:12:18
gcasu.
01:12:20
En donde está nuestro servidor web.
01:12:23
apc.php, por ejemplo.
01:12:27
Ah.
01:12:35
Se me ha olvidado el gedit.
01:12:38
Por nervios de estar aquí pasando caro con las luces.
01:12:40
Joder, pues después no tiene nada.
01:12:45
Le doy a guardar, ¿vale?
01:12:49
Y ahora lo que sería, sería ver la página web que hemos generado.
01:12:51
Ahora lo pongo más despacio para que lo veamos, ¿vale?
01:12:59
Iríamos a localhost.
01:13:01
Inverter Benchmark.
01:13:04
apc.php.
01:13:07
Vale.
01:13:10
¿Qué vemos aquí?
01:13:11
Vemos que nos da unos valores que no entendemos a priori.
01:13:12
Con lo cual parece que le está copiando la primera sencencia de php, que no va contra apc,
01:13:15
porque está cargada.
01:13:19
Y ahora buscamos apc dentro de la página.
01:13:21
Bueno, aparte del módulo que lo hemos visto ahí arriba.
01:13:25
Y aquí tenemos un apartado entero que es apc.
01:13:32
¿Vale?
01:13:36
Entonces, lo hemos instalado y Apache lo está utilizando y está funcionando.
01:13:38
Ya en teoría cacheamos las páginas.
01:13:43
Ahora lo que vamos a hacer es parametrizar esas páginas, ese apc, para que sea muy efectivo y muy optimizado con Moodle.
01:13:46
Lo mismo que antes.
01:13:54
Como las opciones de Moodle son siempre las mismas, esta configuración que yo voy a daros,
01:13:55
es la ideal, bueno, nunca era la ideal de todo, pero es muy buena para optimizar todo el servicio de cacheo de páginas web.
01:14:00
¿Cómo hay que buscar los valores otros?
01:14:18
¿Perdona?
01:14:21
¿Cómo hay que buscar los valores otros?
01:14:22
Sí, lo hice con el programita que os he dado antes y con el sistema de estadística.
01:14:23
Lo que pasa es que tenemos que entrar en aquí, en parámetros, y esta parte con la apc, aquí pongo 10, pero son 50 parámetros.
01:14:29
Entonces, un poquito tengo explicadas las cositas que yo he ido utilizando para que lleguemos a esta conclusión.
01:14:40
En el curso podéis ver más información de lo que estoy explicando, que quizá liberar un poco todos los procedimientos es un poco difícil, para mí, a la hora de explicarlo.
01:14:47
Sobre todo cuando es un trabajo de toda consola y todo esto.
01:14:56
Entonces lo que haremos ahora es configurar el PC.
01:15:02
Vamos a editar ese archivo, que es http://etc.hf5.d.apc.ini, y le vamos a meter toda esta configuración.
01:15:05
Luego vamos a lanzar Apache para que lo redicie, y si queréis podemos probar otra vez el sistema de carga.
01:15:14
Aunque como lo hacemos con la apc inicial no va a ser un cambio muy grande.
01:15:22
Lo importante es navegar un poco por las nubes.
01:15:26
Voy a copiar esto.
01:15:31
Le añado esa configuración.
01:15:43
Le añado esa configuración.
01:15:44
En la que estoy diciendo que el libro de profundidad tiene que llevar a cabo una configuración
01:15:45
para cachar las párpidas. El máximo tamaño de las párpidas cachadas
01:16:15
son los marcos del PHP. Lo guardo, como yo he puesto en las instrucciones,
01:16:21
le añado también en php-ini estas líneas para las párpidas.
01:16:35
Lo guardo. Ahora reinicio el servidor Apache.
01:16:40
Y lo que voy a hacer es ejecutar las pruebas que hemos hecho antes para ver si la gráfica
01:17:10
nos ha cambiado o no. No debería cambiar demasiado.
01:17:34
La gráfica lo de la web, solo es la página inicial.
01:17:39
Pero lo importante ahora mismo es que en el taller de módulos de Moodle
01:18:04
hay un módulo que es también para poder ver la estadística del acceso.
01:18:24
Con eso vemos las estadísticas. Con esto lo que tenemos es,
01:18:31
los problemas que teníamos al principio, Apache, MySQL y el caché de PHP, solucionados.
01:18:43
Voy a hacer el genuflo.
01:18:49
El genuflo de Mach3.
01:19:11
¿Qué vemos aquí que es muy importante? Aquí ha cambiado un montón la gráfica.
01:19:41
Aquí lo que estamos viendo ahora mismo es que especialmente cuando hemos llegado a mil peticiones,
01:19:52
entre 950 y mil, ha subido un poco más, quizá también porque tengo RAM usada con el programa este
01:19:59
para que se vaya a todas las pantallas y fuera de menos RAM.
01:20:07
Pero lo que estamos viendo es que de 0 a 900 está todo por debajo de mil milisegundos.
01:20:10
Hemos acelerado, si estábamos antes en 2000 o algo así, al 100%.
01:20:20
Estamos ahora mismo teniendo un servidor Moodle, por así decirlo, que va al doble de RAM.
01:20:24
Hemos acelerado todo al 100% y estamos haciéndolo con probar de 60 alumnos o 60 personas al momento.
01:20:31
Aquí veis la estadística.
01:20:39
En principio esto es lo que yo tenía un poco preparado de cara a los niveles que podríamos encontrar aquí.
01:20:48
¿Tenéis dudas algunos?
01:20:54
Es que realmente tenemos que meternos más en lo que es un USR, un servicio web.
01:21:14
Cuando nosotros hacemos una petición a un servidor web o a una aplicación complicada como es esta,
01:21:20
no nos está sirviendo solo una página. La situación es una página.
01:21:27
Pero lo hace con pequeños fragmentos y los une para hacer una página.
01:21:31
Entonces ahora mismo está uniéndolos todos.
01:21:35
Miren, se cambia el usuario.
01:21:37
Está uniendo los comunes.
01:21:40
Pues ahora mismo no estamos uniendo una página, ¿no?
01:21:43
Ya que no cambiamos nada, pues ha sido muy rápido.
01:21:46
Pero efectivamente esta velocidad va a ser el doble que también ocurre con el Moodle cuando no estamos funcionando.
01:21:50
Como un 75% más, un 75% más ha incluso cumplido el nivel de seguridad.
01:21:57
Según lo que tenemos de metal, de máquina, y está muy bien.
01:22:02
¿Alguna duda más?
01:22:08
Sí, vamos a ver.
01:22:16
Realmente este le he cogido porque era el más fácil para instalar el dev.
01:22:20
Probé con otro Mac y otro Windows y más o menos hay variaciones, pero más o menos es muy similar.
01:22:24
Porque ya dije que el Moodle lo bueno que tiene es que para construir páginas tiene cosas muy repetitivas.
01:22:30
Entonces es una buena opción para cualquier acelerador que lo pueda coger.
01:22:39
En un acelerador simple, lo primero que hace es repetir lo que da igual.
01:22:45
Sin meter todo o menos el nombre, repite todo lo que da igual.
01:22:48
Entonces no nos da ventaja extraordinaria un superacelerador.
01:22:52
Realmente yo creo que va a estar en la misma línea, más o menos, cualquier acelerador.
01:22:56
Dime.
01:23:03
No te digo nada.
01:23:11
Sí.
01:23:19
No, el Zotimax no tiene nada que ver eso.
01:23:21
No, el Zotimax lo que hace, si no me equivoco, es que la página web en sí te la optimiza para mandártela mucho mejor.
01:23:27
Lo que hace realmente es que te quita los saltos de línea, te lo pone todo en una sola línea.
01:23:35
Ah, no es el Zotimax.
01:23:43
Más o menos todos los aceleradores PHP van a dar el mismo resultado, que es lo que realmente es fundamental.
01:23:48
Lo fundamental de este curso, de este taller, es que acelerando, dando las opciones al Apache,
01:23:54
para los clientes que nosotros necesitamos, limitarlos, para que no se sobre-accedan a las tarras,
01:24:00
y al MySQL, para que aproveche los recursos que hemos cambiado en el Apache,
01:24:07
utilizamos un acelerador PHP para que siga la línea y repetirnos el mismo contenido.
01:24:11
Esa es, en esenciales, el acelerador PHP.
01:24:17
A mi parecer. Siempre a mi parecer.
01:24:21
Moodle tiene un pequeño acelerador, pero eso es para su proceso. Es una especie de cache.
01:24:36
Parece algo que hemos configurado dentro del propio MySQL para todo el servidor.
01:24:42
Algo muy similar.
01:24:46
Un acelerador de 4K.
01:24:51
¿Alguna preguntilla más?
01:24:54
¿Todo está ok? ¿Todo está entendido?
01:24:58
Bueno, pues en la página web vais a tener el curso.
01:25:00
Lo voy documentando un poco esta tarde con alguna cosa que se me ha ocurrido.
01:25:04
Y mañana volveré a filtrar por la mañana el mismo curso, pero añadiré bastantes cosas que las dejaré para el final.
01:25:07
Por si acaso alguien se quiere unir en la parte final del taller para verlo.
01:25:15
Y eso es todo.
01:25:20
- Valoración:
- Eres el primero. Inicia sesión para valorar el vídeo.
- 1
- 2
- 3
- 4
- 5
- Idioma/s:
- Autor/es:
- Carlos Salamanca
- Subido por:
- EducaMadrid
- Licencia:
- Reconocimiento - No comercial - Sin obra derivada
- Visualizaciones:
- 373
- Fecha:
- 23 de noviembre de 2010 - 9:30
- Visibilidad:
- Público
- Enlace Relacionado:
- Comité Organizador Moodle Moot 09
- Descripción ampliada:
- Taller práctico sobre configuraciones y ajuste fino de el servidor web y la base de datos que funcionan con Moodle.
- Duración:
- 1h′ 25′ 37″
- Relación de aspecto:
- 4:3 Hasta 2009 fue el estándar utilizado en la televisión PAL; muchas pantallas de ordenador y televisores usan este estándar, erróneamente llamado cuadrado, cuando en la realidad es rectangular o wide.
- Resolución:
- 448x336 píxeles
- Tamaño:
- 488.61 MBytes