Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Taller de tunning de Apache y MySQL

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 23 de noviembre de 2010 por EducaMadrid

373 visualizaciones

Taller de la la Moodle Moot Madrid 09 titulado \"Taller de tunning de Apache y MySQL\" realizado por Carlos Salamanca.

Descargar la transcripción

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:
  • 1
  • 2
  • 3
  • 4
  • 5
Eres el primero. Inicia sesión para valorar el vídeo.
Idioma/s:
es
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

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid