1 00:00:00,000 --> 00:00:04,960 Como no sé muy bien el nivel que tenemos cada uno, pues voy a empezar un poco 2 00:00:04,960 --> 00:00:09,600 incrementando desde un nivel básico a poco a poco llegar hasta un punto 3 00:00:09,600 --> 00:00:14,120 importante. Cualquier duda que vayas teniendo pues vamos a decidirlo y lo 4 00:00:14,120 --> 00:00:17,360 vamos resolviendo sobre la marcha. 5 00:00:18,760 --> 00:00:23,520 ¿Puedo dar aquí? Sí, que bien está esto. 6 00:00:24,040 --> 00:00:29,880 Vale. Nosotros cuando tenemos 7 00:00:30,000 --> 00:00:34,680 voy a poner un dibujo para que lo entendáis bien. 8 00:00:34,680 --> 00:00:37,240 Juegos. 9 00:00:37,480 --> 00:00:43,520 Perdón. Gráficos, Toothpaint. 10 00:00:50,440 --> 00:00:55,200 Cuando nosotros hacemos una petición desde nuestro ordenador hasta una 11 00:00:55,200 --> 00:00:59,880 dirección de Moodle, hasta un web server, 12 00:01:01,000 --> 00:01:08,520 lo que realmente está haciendo es, el ordenador pide la página web, 13 00:01:08,520 --> 00:01:13,880 la página web, hablando así en términos 14 00:01:13,880 --> 00:01:20,080 de poco conocimiento, la página web hace sus procesos y se la 15 00:01:20,080 --> 00:01:23,800 manda otra vez al ordenador para que nosotros la veamos en la pantalla. 16 00:01:23,800 --> 00:01:27,160 Esos procesos que para nosotros son un camuflaje, que no sabemos muy bien lo que 17 00:01:27,160 --> 00:01:33,160 hace, lo que está haciendo es llamar al Apache, 18 00:01:33,920 --> 00:01:36,600 ¿vale? 19 00:01:37,080 --> 00:01:46,120 Que es nuestro servidor web. El Apache comprueba a Moodle 20 00:01:51,600 --> 00:01:56,760 y Moodle lo que hace es interactuar con la base de datos 21 00:01:57,400 --> 00:02:04,440 para volverle a mostrar al Apache el resultado y el resultado nos lo muestra 22 00:02:04,440 --> 00:02:09,320 en la pantalla de nuestro ordenador. ¿De acuerdo todo esto, no? 23 00:02:09,320 --> 00:02:17,360 Bien, como decía antes, los dos centros a poder optimizar son los procesos de 24 00:02:17,360 --> 00:02:23,240 intercambio. Cuando los procesos en los que Apache pide información a Moodle y 25 00:02:23,240 --> 00:02:28,720 los procesos en que la base de datos recibe las peticiones y devuelve las 26 00:02:28,720 --> 00:02:31,240 respuestas. 27 00:02:31,640 --> 00:02:36,040 Vale, Apache, todos sabemos ya que es un 28 00:02:36,040 --> 00:02:40,040 servidor web, bueno, sabemos todo lo que es un servidor web, ¿no? 29 00:02:40,040 --> 00:02:47,200 ¿Alguien no lo sabe? Cuando nosotros tenemos Macs dentro de Linux y de Debian 30 00:02:47,200 --> 00:02:54,920 y de Ubuntu, hay dos tipos de Apache. Está el MPM, 31 00:02:54,920 --> 00:03:00,040 el Worker y el Prefork. La diferencia entre el Worker y el Prefork, la tengo 32 00:03:00,040 --> 00:03:04,960 puesta en el curso, el Worker es muy adecuada para múltiples procesadores, 33 00:03:04,960 --> 00:03:11,840 pero no es tan tolerante para módulos no oficiales de Apache, ¿vale? 34 00:03:11,840 --> 00:03:16,520 Cada thread ocupa una única conexión, eso es muy importante. 35 00:03:16,520 --> 00:03:21,800 El Prefork, cada hijo ocupa una conexión y es adecuado para los sistemas 36 00:03:21,800 --> 00:03:25,800 simples, de una o dos CPUs, incluyendo los que tienen una CPU y por 37 00:03:25,800 --> 00:03:30,000 hyperthreading tienen dos, ¿vale? 38 00:03:30,000 --> 00:03:37,200 Bueno, ¿cómo iniciaríamos la 39 00:03:37,200 --> 00:03:41,600 optimización? Lo primero que tenemos que ver son los módulos que se arrancan 40 00:03:41,600 --> 00:03:48,000 dentro de Apache. Evidentemente, los módulos que no utilicemos están cargando 41 00:03:48,000 --> 00:03:51,800 la memoria y entonces lo primero que deberíamos hacer sería descargar los 42 00:03:51,800 --> 00:03:59,160 módulos que no necesitamos dentro de Apache. Para ello, lo que hacemos es 43 00:04:01,560 --> 00:04:06,920 abrimos una terminal, que digamos que es una interfaz con la 44 00:04:06,920 --> 00:04:13,640 máquina, con el servidor en el que tenemos instalado Moodle y Apache y 45 00:04:13,640 --> 00:04:19,640 MySQL y comprobamos los módulos que hay. Lo primero que hacemos es 46 00:04:19,640 --> 00:04:22,240 hacernos superusuarios. Todo esto lo podéis ir haciendo en vuestro ordenador 47 00:04:22,240 --> 00:04:26,280 porque todos los Macs tienen instalados por defecto Moodle, entonces es 48 00:04:26,280 --> 00:04:30,840 conveniente que vayáis haciendo los mismos pasos para comprobar luego 49 00:04:30,840 --> 00:04:36,240 la mejora de rendimiento. Lo primero que hacemos es ponernos 50 00:04:36,240 --> 00:04:44,880 como superusuario, que saldría con la orden sudo sub. Ponemos la 51 00:04:44,880 --> 00:04:55,960 contraseña de Macs por defecto, que es cmadrid y nada más escribirle y 52 00:04:55,960 --> 00:04:59,080 darle al enter, veremos que nos sale una almohadilla, con lo que ya somos 53 00:04:59,080 --> 00:05:02,960 superusuarios. Ya tenemos el control del sistema para poder modificar cosas. 54 00:05:06,240 --> 00:05:14,040 Los módulos de Apache que están en uso, todo el Apache se guarda en 55 00:05:14,040 --> 00:05:22,720 etc Apache 2. Si nosotros aquí hacemos un ls, vemos que tenemos archivos y 56 00:05:22,720 --> 00:05:26,880 coloreados ya por defecto por el sistema directorios. Todos los módulos 57 00:05:26,880 --> 00:05:31,160 que hay dentro de Apache están módulos available, que son los módulos 58 00:05:31,160 --> 00:05:39,880 disponibles, y los módulos que tenemos activados están en mods enable. 59 00:05:39,880 --> 00:05:55,360 Si nosotros nos metemos dentro de módulos enable y hacemos un ls, vemos 60 00:05:55,360 --> 00:06:00,720 que para activar un módulo, lo que hace es un link de los módulos 61 00:06:00,720 --> 00:06:09,600 available al directorio de módulos en uso, los módulos enable. Aquí estamos 62 00:06:09,600 --> 00:06:14,640 viendo que está cargando el módulo de alias, el módulo de autentificación y 63 00:06:14,640 --> 00:06:19,360 muchos módulos que algunos no conocemos y que tampoco son interesantes en este 64 00:06:19,360 --> 00:06:27,600 curso darles vueltas. Vemos que tenemos el módulo de PHP 5 cargado. ¿Qué 65 00:06:27,600 --> 00:06:31,880 vamos por ejemplo a anular? Pues vamos a anular el deflate, el módulo de 66 00:06:31,880 --> 00:06:41,200 deflate. La manera simple de borrar el módulo sería borrar rm, deflate y 67 00:06:41,200 --> 00:06:48,200 asterisco para que sean los dos, o podemos ponerlos por separado. Conf, le 68 00:06:48,200 --> 00:06:56,960 decimos sí y lo hace. Si nosotros quisiéramos activarlo, lo único que 69 00:06:56,960 --> 00:07:13,760 tendríamos que hacer es un link otra vez a ese módulo. El módulo de deflate 70 00:07:13,760 --> 00:07:18,880 en este caso es un módulo de compresión, es un módulo que sirve para, a la hora 71 00:07:18,880 --> 00:07:22,880 del ancho de banda, poder agarrar cuando se mandan archivos porque digamos que lo 72 00:07:22,880 --> 00:07:27,880 comprime en tiempo real y te lo vuelve a descomprimir en tiempo real. Se puede 73 00:07:27,880 --> 00:07:31,200 mejorar el rendimiento con eso pero ahora mismo para lo que nosotros queremos no 74 00:07:31,200 --> 00:07:40,400 lo vamos a utilizar. Antes de empezar a hacer rendimientos vamos a comprobar un 75 00:07:40,400 --> 00:07:50,440 rendimiento inicial para poder tener unos datos básicos iniciales de cómo 76 00:07:50,440 --> 00:07:59,880 funciona nuestro Apache. Vamos a utilizar el comando ab, que es un comando de Apache 77 00:07:59,880 --> 00:08:08,320 Benchmark en el que le podemos decir a los clientes que vamos a simular que dos clases 78 00:08:08,320 --> 00:08:15,720 que pueden ser 60 personas van a conectar a ese servidor web de Moodle para traer datos. 79 00:08:15,720 --> 00:08:28,320 Le vamos a indicar al servidor web que tenemos 60 personas. Con el N son conexiones, 80 00:08:28,320 --> 00:08:34,120 vamos a poner que son 1000 conexiones porque, si os acordáis, cuando he hecho el dibujito, 81 00:08:34,120 --> 00:08:37,760 en estos procesos, cuando nosotros hacemos una petición web, puede que un usuario haga 82 00:08:37,760 --> 00:08:44,480 más de una conexión al servidor web. Yo le pido, como es contenido dinámico, le pido 83 00:08:44,480 --> 00:08:48,800 la página, él me muestra la página, él ve que no tengo ningún login puesto, entonces 84 00:08:48,800 --> 00:08:57,080 me muestra el cartel de que no hay nadie logeado. Son múltiples peticiones que va haciendo. 85 00:08:57,080 --> 00:09:02,720 Vamos a ponerle 1000 peticiones, así a ojo, y vamos a decirle que son 60 personas, que 86 00:09:02,720 --> 00:09:24,880 es con C 60. Le ponemos la dirección web, menos D, HTTP, puntos, barra, barra, 127.0.0.1, 87 00:09:24,880 --> 00:09:30,960 barra Moodle. ¿Por qué ponemos esto? Porque vamos a acceder al Moodle que tenemos local 88 00:09:30,960 --> 00:09:36,000 cada uno de nosotros en nuestro ordenador. Esto lo podríamos hacer contra Google, contra 89 00:09:36,000 --> 00:09:44,800 lo que fuera. Esto es un comprobador de estadísticas. Lo ejecutamos y entonces él va haciendo el 90 00:09:44,800 --> 00:09:59,320 proceso de peticiones. Si nosotros quisiéramos, mientras se está ejecutando esto, si nosotros 91 00:09:59,320 --> 00:10:08,440 abrimos otro terminal y hacemos un PSAX, veríamos que se están ejecutando muchos 92 00:10:08,440 --> 00:10:13,120 apaches, porque está haciendo muchas peticiones al server web y, como no lo tenemos configurado, 93 00:10:13,120 --> 00:10:18,480 él va, para responder a todos los clientes que virtualmente se están conectando, va 94 00:10:18,480 --> 00:10:24,880 encendiendo hilos de apache, procesos de apache, para poder servir todas las páginas que se 95 00:10:24,880 --> 00:10:42,520 le piden. Nos da los resultados. Localhost en el 80, a Moodle y vemos que tenemos 60 96 00:10:42,520 --> 00:10:47,760 de concurrencia, que son la gente que se conecta a la vez, las conexiones, y las peticiones, 97 00:10:48,760 --> 00:11:03,760 y nos ha dado un proceso de 2,8,8 segundos y la carga que ha podido generar. Esto es un poco 98 00:11:03,760 --> 00:11:09,040 entendible. Dice las peticiones por respuesta, las respuestas por segundo, pero vamos a generar 99 00:11:09,040 --> 00:11:16,080 un gráfico para que nos sea todo mucho más visual. En la línea de comando que hemos añadido 100 00:11:16,280 --> 00:11:26,160 antes, le añadimos un "-g", y ponemos un documento de texto para que se guarden los datos ahí, 101 00:11:26,160 --> 00:11:35,680 por ejemplo, prueba1.txt. Entonces, todos los datos que está generando los va a guardar en 102 00:11:35,680 --> 00:11:57,760 el prueba1.txt. Vaya con la luz. ¿Lo vais haciendo en vuestra máquina? 103 00:12:05,680 --> 00:12:25,840 Vale. Ya ha producido todo el proceso y nos genera… Bueno, yo le he hecho mal, 104 00:12:25,840 --> 00:12:28,880 porque estaba dentro de este directorio, y entonces me ha generado el archivo, 105 00:12:28,880 --> 00:12:42,120 que lo voy a mover a RUD. Ahí tenemos el archivo que nos ha generado toda esta información. 106 00:12:43,120 --> 00:13:02,120 Entonces, yo ahora le voy a pasar un comando que es generar un plot. Voy a decirle que genere un png. 107 00:13:02,120 --> 00:13:26,120 Le voy a poner un título. No, me he confundido. Le voy a poner un nombre de archivo. 108 00:13:26,120 --> 00:13:49,120 Le voy a poner un título. No se ve. ¿Perdón? Sí, sí. Bueno, mira, lo que voy a hacer es… 109 00:13:49,120 --> 00:14:11,120 Inicialmente voy a poner que todos… ¿En este? Ya está, ¿no? Inicialmente lo vais a ver todos 110 00:14:11,120 --> 00:14:19,120 cómo lo estoy haciendo yo y luego lo vais a hacer vosotros. Le añado un título, Albert March, 111 00:14:19,120 --> 00:14:23,120 y le voy a añadir unos parámetros que son básicos por la escala que utilizan ellos. 112 00:14:49,120 --> 00:14:56,120 ¿Cómo le he llamado? Prueba uno… 113 00:15:19,120 --> 00:15:31,120 ¿Plot? 114 00:15:31,120 --> 00:16:00,120 Vale. Entonces ahora nosotros tenemos ahí un benchmark png. Lo voy a pasar al servidor web 115 00:16:00,120 --> 00:16:25,120 para poder verlo. Ahí tenemos un gráfico de cómo aumenta la carga del apache según 116 00:16:25,120 --> 00:16:32,120 el crecimiento repetitivo. ¿Vale? Hasta el punto de llegar a una cota de 3.500 milisegundos 117 00:16:32,120 --> 00:16:39,120 para 1.300 milisegundos. Vale, entonces ahora voy a poneros otra vez el control para que 118 00:16:39,120 --> 00:16:50,120 lo hagáis vosotros y podáis evaluar luego el… Ah, sí. Y podáis evaluar vosotros 119 00:16:50,120 --> 00:17:00,120 el acceso. Voy a hacer la letra grande, como me habéis dicho. Vale, estos son los comandos 120 00:17:00,120 --> 00:17:23,120 que he ejecutado en el genus plot. No sé si es lo que… ¿Así sí? Vale. 121 00:17:24,120 --> 00:17:33,120 Nosotros habíamos guardado en prueba1.txt todos los accesos al apache. 122 00:17:33,120 --> 00:17:39,120 A ver si no puedo poner el dedo porque si no se va esto. 123 00:17:39,120 --> 00:17:45,120 Nosotros habíamos guardado en prueba1.txt todos los accesos al apache y ahora lo que vamos a hacer 124 00:17:45,120 --> 00:17:51,120 es que apoyándonos en la herramienta genu plot va a generar una estadística gráfica 125 00:17:51,120 --> 00:17:57,120 que además queda bonita a la hora de luego poder identificar cómo ha mejorado el acceso a nuestro sistema. 126 00:17:57,120 --> 00:18:03,120 Más visual. Por allí ya lo tenéis todo esto copiado. Vale, entonces escribimos la última línea 127 00:18:03,120 --> 00:18:11,120 plot prueba1 y ponemos exit. Al darle a exit vemos que tenemos el archivo… 128 00:18:11,120 --> 00:18:17,120 Hacemos un ls y vemos que tenemos el archivo benchmark.png. 129 00:18:18,120 --> 00:18:25,120 Como por dejar todo el apache dentro de max sirve todo lo que haya dentro de var www, 130 00:18:25,120 --> 00:18:37,120 lo que hacemos es copiar este archivo a var www. Vale, yo ya lo había puesto. 131 00:18:37,120 --> 00:18:41,120 Una vez que lo tenemos allí ya lo podemos abrir desde un servidor web. 132 00:18:41,120 --> 00:18:47,120 Pues abrimos un navegador y escribimos la dirección y el nombre del archivo que hemos puesto. 133 00:18:57,120 --> 00:18:59,120 Así que vamos otra vez con el curso. 134 00:19:00,120 --> 00:19:02,120 Parámetros importantes. 135 00:19:09,120 --> 00:19:13,120 Nuestro apache por defecto, como estábamos viendo antes, 136 00:19:18,120 --> 00:19:22,120 con esto veo los procesos y con esto digo que solamente vemos lo que tiene el apache. 137 00:19:23,120 --> 00:19:37,120 Nuestro apache por defecto genera una serie de procesos adicionales para servir las páginas. 138 00:19:40,120 --> 00:19:47,120 Apache tiene inicialmente unos procesos esperando para servir las páginas 139 00:19:47,120 --> 00:19:51,120 que van a tener que arrancar a los procesos de apache. 140 00:19:53,120 --> 00:19:59,120 Cuando nosotros demos muchas peticiones y desbordamos este servicio de apache, 141 00:19:59,120 --> 00:20:02,120 lo que hace es generar múltiples instancias. 142 00:20:02,120 --> 00:20:06,120 Como hemos visto antes, cuando nosotros estamos haciendo la prueba, 143 00:20:06,120 --> 00:20:08,120 esto simplemente es explicándolo. 144 00:20:09,120 --> 00:20:11,120 Como voy a explicar voy a poner el texos. 145 00:20:17,120 --> 00:20:31,120 Si nosotros lanzamos ahora mismo lo que he lanzado antes, 146 00:20:33,120 --> 00:20:35,120 mientras está ocurriendo todo esto, 147 00:20:42,120 --> 00:20:45,120 lo que vemos es que genera múltiples instancias de apache. 148 00:20:45,120 --> 00:20:49,120 Entonces él está perdiendo recursos, levantando instancias, 149 00:20:49,120 --> 00:20:54,120 un poco sin control porque se desbordan las 10 peticiones iniciales que están configuradas. 150 00:21:00,120 --> 00:21:06,120 Cada petición que he puesto aquí en el curso, cada proceso que he puesto en el curso, 151 00:21:06,120 --> 00:21:11,120 va a ocupar entre 12 y 20 megas de RAM, dependiendo de la complejidad. 152 00:21:11,120 --> 00:21:14,120 En el caso de Moodle, casi siempre van a ser entre 15 y 20, 153 00:21:14,120 --> 00:21:16,120 porque Moodle tiene contenido dinámico, 154 00:21:16,120 --> 00:21:22,120 y entonces tiene que hacer mucho más esfuerzo el ordenador 155 00:21:22,120 --> 00:21:26,120 y mantener mucho más RAM para poder servir lo necesario. 156 00:21:27,120 --> 00:21:32,120 Hay varias opciones para mejorar el rendimiento de apache. 157 00:21:32,120 --> 00:21:35,120 La primera es ajustando el Keep Alive. 158 00:21:36,120 --> 00:21:38,120 El Keep Alive, como tengo aquí puesto, 159 00:21:38,120 --> 00:21:42,120 es la cantidad de tiempo que un proceso de una conexión persistente se cuenta sin hacer nada. 160 00:21:46,120 --> 00:21:50,120 En este ejemplo, todos estos procesos de apache, una vez que se ha desbordado, 161 00:21:50,120 --> 00:21:53,120 no se quedan ahí levantados, porque si no, sería una locura. 162 00:21:53,120 --> 00:21:56,120 Si nosotros le damos mil peticiones, no va a haber mil procesos de apache. 163 00:21:56,120 --> 00:22:00,120 Lo que hace es que cuando llega un tiempo que nosotros le damos, 164 00:22:00,120 --> 00:22:03,120 en el que no está sirviendo, se van cerrando. 165 00:22:03,120 --> 00:22:06,120 Hasta el punto de que si yo, ahora que he acabado el ejemplo, lo vuelvo a dar, 166 00:22:06,120 --> 00:22:08,120 pues ya hay muchas menos. 167 00:22:15,120 --> 00:22:19,120 El Keep Alive, entonces aquí, lo que ajustamos son los segundos 168 00:22:19,120 --> 00:22:22,120 para deshacerse de esos procesos extranjeros. 169 00:22:22,120 --> 00:22:26,120 Yo tengo aquí puesto que lo mejor es tener un Keep Alive bajo entre un y tres segundos. 170 00:22:28,120 --> 00:22:31,120 Todo esto son anotaciones que he hecho yo en base a Moodle. 171 00:22:33,120 --> 00:22:39,120 Si nosotros estamos optimizando otra apache, lo normal creo que se ponen 10 segundos o 8 segundos. 172 00:22:39,120 --> 00:22:41,120 No, por lo menos 15 segundos. 173 00:22:41,120 --> 00:22:45,120 Entonces, para otro tipo de peticiones o otro tipo de servicios, puede ser bueno. 174 00:22:45,120 --> 00:22:54,120 Como las peticiones de Moodle son cortas, lo que vamos a hacer es generar una apache muy potente 175 00:22:54,120 --> 00:23:01,120 que rápidamente, cuando nosotros necesitamos más procesos, va a generar sus nuevos procesos 176 00:23:03,120 --> 00:23:07,120 de manera rápida, pero pitando y cerrándolos rápido para no consumir menos gas. 177 00:23:07,120 --> 00:23:11,120 Porque al final, todo Moodle carga mucho la gas. 178 00:23:11,120 --> 00:23:15,120 No hace el proceso de lo que todos los programas tienen que hacer, pero carga mucho la gas. 179 00:23:18,120 --> 00:23:20,120 Límite de procesos con más clients. 180 00:23:24,120 --> 00:23:27,120 Voy a explicar un poco todo, y luego os explicamos a la apache. 181 00:23:33,120 --> 00:23:35,120 Límite total de procesos, más o menos clientes. 182 00:23:35,120 --> 00:23:39,120 Pues aquí, como he puesto, al utilizar Moodle, te da muchas presiones simultáneas. 183 00:23:39,120 --> 00:23:41,120 Que era lo que yo puse en el vídeo. 184 00:23:41,120 --> 00:23:50,120 Al exceder ese número, que viene dentro de la apache, lo que hace es consumir muchos recursos 185 00:23:50,120 --> 00:23:55,120 y aparte de eso, puede llegar a bloquearlos o dejarlos en un cone. 186 00:23:58,120 --> 00:24:05,120 Entonces, lo mejor que podemos hacer es añadir una cantidad máxima de clientes a lo que es el servicio web 187 00:24:05,120 --> 00:24:11,120 para que no se piense que tenemos una GPU que tiene recursos limitados y que puede sacar mucho. 188 00:24:12,120 --> 00:24:17,120 En cuanto eso ocurra, que piense que tenemos recursos limitados, es cuando empieza a gastar y va a estar a gastar. 189 00:24:20,120 --> 00:24:32,120 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. 190 00:24:32,120 --> 00:24:42,120 Lo que decía antes, si son mil y nosotros tenemos puesto que acepte 80, todos los que hay no los bloquea, 191 00:24:43,120 --> 00:24:49,120 no les prohíbe el acceso, sino que los dejan en cola esperando para mandar las peticiones poco a poco. 192 00:24:49,120 --> 00:24:56,120 Nuestro servidor, tal y como lo vamos a montar, lo que va a hacer es que en cortas fracciones de segundo, 193 00:24:56,120 --> 00:25:02,120 en cortas fracciones de segundo, múltiples peticiones, va a servir muy rápido todo lo que vamos necesitando. 194 00:25:02,120 --> 00:25:16,120 La siguiente variable es forzar los procesos de APACHE de A con más reguas por cheque. 195 00:25:16,120 --> 00:25:21,120 Son la cantidad de peticiones máximas que tiene cada AI. 196 00:25:22,120 --> 00:25:31,120 Cuando nosotros estamos dentro del APACHE, si nosotros hacemos múltiples peticiones, 197 00:25:31,120 --> 00:25:37,120 lo que va a generar aquí son múltiples hilos dentro de cada proceso para cada petición. 198 00:25:37,120 --> 00:25:43,120 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. 199 00:25:44,120 --> 00:25:50,120 Cada proceso podría mantener a lo mejor 10 conexiones, pero esto haría que tuviéramos muy pocos procesos, 200 00:25:50,120 --> 00:25:54,120 pero muchas conexiones y no tanto como merecido el sistema. 201 00:25:54,120 --> 00:26:01,120 Lo que vamos a hacer es que haya un número finito de peticiones para cada proceso. 202 00:26:01,120 --> 00:26:16,120 Bueno, aquí pongo que hay que experimentar con este valor un poco, que puede ser tan bajo como 30, 203 00:26:16,120 --> 00:26:22,120 pero tampoco tiene que ser demasiado bajo porque tendrá complicaciones con la creación de nuevos procesos 204 00:26:22,120 --> 00:26:25,120 y, por lo tanto, otro relentí similar. 205 00:26:25,120 --> 00:26:37,120 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. 206 00:26:37,120 --> 00:26:44,120 Entonces, no generamos procesos hijos dentro de APACHE, pero estamos generando muchos procesos APACHE y no llegamos a ningún punto. 207 00:26:45,120 --> 00:27:02,120 Y aparte he puesto que hay que utilizar esta definición con cuidado porque todo lo que agrandemos las máximas peticiones por hijo, 208 00:27:02,120 --> 00:27:06,120 nos va a hacer que quizá tengamos que incrementar más clients. 209 00:27:07,120 --> 00:27:13,120 Yo aquí, dentro de Moodle, lo que he considerado que un número 30 es el ideal. 210 00:27:13,120 --> 00:27:19,120 Toda la consideración que he hecho es en base a las máquinas que tenéis en los centros, 211 00:27:19,120 --> 00:27:25,120 que es entre 2 y 4 GB de RAM y un Xeon, de multiprocesador, con dos procesadores. 212 00:27:25,120 --> 00:27:30,120 MinSparServer, MaxSparServer y StarServer. 213 00:27:37,120 --> 00:27:54,120 Lo que hacemos con MinSparServer, MaxSparServer y StarServer son los servidores iniciales, que son los hilos de APACHE que nosotros tenemos iniciales, 214 00:27:54,120 --> 00:27:58,120 y hasta cuánto van a llegar y cuántos son los mínimos que se quedan. 215 00:27:58,120 --> 00:28:01,120 ¿Por qué es distinto el mínimo del StarServer? 216 00:28:01,120 --> 00:28:05,120 Porque muchas veces nosotros podemos estar haciendo una operación en nuestro ordenador, 217 00:28:05,120 --> 00:28:10,120 y por lo tanto parar un momento el APACHE y saber que en cuanto lo levantemos vamos a recibir muchas peticiones. 218 00:28:10,120 --> 00:28:24,120 Si nosotros vamos a poner un supuesto, sabemos que nuestro ordenador queremos que tenga desde 15 hasta 100 procesos de APACHE corriendo, 219 00:28:25,120 --> 00:28:32,120 si empezamos con 15 servidores de APACHE y sabemos que vamos a tener de repente multitud de alumnos que se van a conectar, 220 00:28:32,120 --> 00:28:36,120 va a ralentizar el sistema porque a lo mejor tenemos que llegar a 50 o a 60. 221 00:28:36,120 --> 00:28:44,120 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. 222 00:28:55,120 --> 00:29:03,120 En un servidor APACHE con Moodle que recibe una media de 300 consultas por segundo, que es una media de 60 alumnos, 223 00:29:03,120 --> 00:29:11,120 yo he establecido lo siguiente, que comenzamos con 40 procesos de APACHE, que los mínimos son 30, 224 00:29:11,120 --> 00:29:16,120 que los máximos son 50 y que los clientes máximos son 240. 225 00:29:17,120 --> 00:29:30,120 El timeout de 30 es los milisegundos que tarda en decir que no tenemos acceso al sistema, porque estemos en cola. 226 00:29:30,120 --> 00:29:33,120 Y el keepalive timeout que es lo que hemos dicho antes. 227 00:29:33,120 --> 00:29:53,120 Hemos establecido, teníamos aquí arriba que el keepalive lo pusiéramos en 3, que es muy bajo, y aquí lo puse en 4, 228 00:29:53,120 --> 00:30:00,120 que también sigue siendo bajo, pero no es necesariamente el modelo este. 229 00:30:00,120 --> 00:30:10,120 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. 230 00:30:11,120 --> 00:30:16,120 ¿Os estoy oyendo? ¿Tenéis alguna pregunta por allí? 231 00:30:21,120 --> 00:30:25,120 Voy a daros otra vez el control para que vayamos haciéndolo a la vez. 232 00:30:25,120 --> 00:30:45,120 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. 233 00:30:45,120 --> 00:30:49,120 Y vamos a nuestra configuración de APACHE. 234 00:30:55,120 --> 00:31:10,120 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. 235 00:31:10,120 --> 00:31:29,120 He salido de superusuario para hacerme usuario normal, que se puede hacer con Exit, o cerramos la ventana y la volvemos a abrir. 236 00:31:29,120 --> 00:31:43,120 Y pongo GKSUB, GEDIT, ETC, APACHE 2, APACHE 2.COM. 237 00:31:43,120 --> 00:31:55,120 Esto nos abre un editor un poco más gráfico para que no tengamos problemas. 238 00:32:01,120 --> 00:32:05,120 El comando, lo voy a volver a poner a la pantalla, es este. 239 00:32:13,120 --> 00:32:25,120 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. 240 00:32:25,120 --> 00:32:35,120 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. 241 00:32:35,120 --> 00:32:42,120 Tenemos ya el fichero de configuración. 242 00:32:42,120 --> 00:32:52,120 Vamos a ir poco a poco hasta la zona en la que tenemos la parte que nos interesa modificar. 243 00:32:53,120 --> 00:33:04,120 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. 244 00:33:04,120 --> 00:33:10,120 Que es lo normal para 4 o 5 personas para que puedan utilizarlo. 245 00:33:10,120 --> 00:33:14,120 O estáticas que sean hasta 10 personas, da igual. 246 00:33:14,120 --> 00:33:18,120 Vamos a poner nuestros valores. 247 00:33:30,120 --> 00:33:34,120 Los valores que vamos a ponerle son STASERVER40. 248 00:33:45,120 --> 00:33:48,120 Tan fácil como editarlo, 40. 249 00:33:48,120 --> 00:33:51,120 En MÍNIMOS PARTSERVER, 30. 250 00:33:51,120 --> 00:33:54,120 MÁXIMOS PARTSERVER, 50. 251 00:33:54,120 --> 00:33:58,120 MÁXIMOS CLIENTES ACEPTADOS, 240. 252 00:34:02,120 --> 00:34:06,120 Si tuviéramos el otro APACHE, cargaría este módulo. 253 00:34:06,120 --> 00:34:10,120 Y entonces tendríamos que cambiarlos en este sitio. 254 00:34:11,120 --> 00:34:15,120 Lo tenemos, lo damos a guardar. 255 00:34:21,120 --> 00:34:25,120 Y vamos a volver a hacer la estadística como hemos hecho antes. 256 00:34:28,120 --> 00:34:31,120 Me pongo como superusuario. 257 00:34:33,120 --> 00:34:39,120 Y doy con la flechita hacia arriba para no tener que volver a escribirlo para la estadística. 258 00:34:41,120 --> 00:34:45,120 Voy a llamarlo a esto PROBA2-TXT. 259 00:34:55,120 --> 00:35:00,120 Hay que reiniciar el APACHE para que todos los cambios tengan efecto. 260 00:35:00,120 --> 00:35:04,120 Voy a llamarlo a esto PROBA2-TXT. 261 00:35:05,120 --> 00:35:11,120 Que se hace con la orden PTT-INPUT.D APACHE2-START. 262 00:35:13,120 --> 00:35:18,120 Hay muchas maneras de reiniciar el APACHE, pero esta es la más cómoda. 263 00:35:21,120 --> 00:35:25,120 Ahora sí ejecutamos el comando. 264 00:35:30,120 --> 00:35:34,120 APACHE BEDMARK, que sean 1000 peticiones. 265 00:35:34,120 --> 00:35:38,120 Haciéndolo de 60 en 60 a los clientes. 266 00:35:38,120 --> 00:35:42,120 Y que nos lo guarden PROBA2-TXT. 267 00:35:44,120 --> 00:35:48,120 Voy a dar al ENTER. 268 00:36:01,120 --> 00:36:05,120 Vamos a hacer un comando en el APACHE. 269 00:36:05,120 --> 00:36:09,120 Y vamos a hacer un comando en el PROBA2-TXT. 270 00:36:11,120 --> 00:36:15,120 Creo que lo que se está haciendo es la misma. 271 00:36:17,120 --> 00:36:21,120 Voy a hacer un comando en el PROBA2-TXT. 272 00:36:21,120 --> 00:36:25,120 Y voy a hacer un comando en el PROBA2-TXT. 273 00:36:25,120 --> 00:36:29,120 Y voy a hacer un comando en el PROBA2-TXT. 274 00:36:30,120 --> 00:36:34,120 Y voy a hacer un comando en el PROBA2-TXT. 275 00:36:36,120 --> 00:36:39,120 Ya tenemos la salida. 276 00:36:39,120 --> 00:36:43,120 Hacemos un LS y vemos que está PROBA2-TXT. 277 00:36:52,120 --> 00:36:56,120 Vamos a hacer un plot ahora. 278 00:36:56,120 --> 00:37:00,120 ¿Tienes los parámetros? 279 00:37:00,120 --> 00:37:04,120 Sí, hay que dárselos. 280 00:37:20,120 --> 00:37:24,120 Si damos al FECHA hacia arriba no lo va a marcar. 281 00:37:26,120 --> 00:37:30,120 Le decimos SET OUTPUT BANDMARCH 2 BND. 282 00:37:30,120 --> 00:37:34,120 Esta vez ponemos 2 para que no se nos prima el otro. 283 00:37:34,120 --> 00:37:38,120 Atención a esto. 284 00:37:38,120 --> 00:37:42,120 Volvemos otra vez para arriba. 285 00:37:42,120 --> 00:37:46,120 El título, BANDMARCH, podemos poner 2 también. 286 00:37:49,120 --> 00:37:53,120 El SIZE. 287 00:37:56,120 --> 00:38:00,120 Y el TITLE. 288 00:38:26,120 --> 00:38:30,120 No, no, he puesto... 289 00:38:34,120 --> 00:38:38,120 No sé por qué ahora no se ha salido en pantalla, pero directamente... 290 00:38:41,120 --> 00:38:47,120 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. 291 00:38:48,120 --> 00:38:51,120 Y donde ponía solo Benchmark, he puesto Benchmark 2. 292 00:38:51,120 --> 00:39:00,120 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. 293 00:39:01,120 --> 00:39:05,120 Con eso vamos a hacer el plot y escribimos ese. 294 00:39:06,120 --> 00:39:09,120 Y nos ha generado el Benchmark 2 PNG. 295 00:39:10,120 --> 00:39:14,120 Lo copiamos al servidor web o lo movemos. 296 00:39:21,120 --> 00:39:23,120 Y lo ejecutamos. 297 00:39:27,120 --> 00:39:29,120 No vemos nada. 298 00:39:31,120 --> 00:39:33,120 Un segundo. 299 00:39:33,120 --> 00:39:56,120 Vale, como antes me ha mostrado una pantalla, creo que al cerrarla he cerrado la operación. Así que voy a volver a hacerlo. 300 00:39:57,120 --> 00:40:01,120 Tenemos el prueba 2. Hago GNU Plot. 301 00:40:06,120 --> 00:40:09,120 Set output Benchmark 2 PNG. 302 00:40:13,120 --> 00:40:15,120 El título. 303 00:40:17,120 --> 00:40:19,120 Tamaño. 304 00:40:21,120 --> 00:40:23,120 Key Laptop. 305 00:40:26,120 --> 00:40:41,120 Y aquí debemos darle a guardar o algo. 306 00:40:56,120 --> 00:40:58,120 Eso es lo que pasa Mario. 307 00:41:01,120 --> 00:41:03,120 No te oigo. 308 00:41:10,120 --> 00:41:12,120 Eso es lo que pasa. 309 00:41:15,120 --> 00:41:17,120 Sí, pero ¿por qué hace eso? 310 00:41:17,120 --> 00:41:29,120 Cuando tienes display, cuando estabas antes como root no tenías el display abierto. 311 00:41:30,120 --> 00:41:34,120 Y ahora si lo tienes, te lo pinta aquí. 312 00:41:34,120 --> 00:41:51,120 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. 313 00:41:57,120 --> 00:42:00,120 Ahí tenemos el Benchmark 2, que lo que hemos hecho ha sido una captura de pantalla. 314 00:42:01,120 --> 00:42:03,120 Pero bueno, para defecto no vale. 315 00:42:22,120 --> 00:42:25,120 Lo muevo ahí y lo vamos a ver en la pantalla. 316 00:42:26,120 --> 00:42:40,120 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. 317 00:42:41,120 --> 00:42:50,120 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. 318 00:42:51,120 --> 00:43:03,120 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. 319 00:43:04,120 --> 00:43:08,120 Ya en página estática, que es la página inicial de Moodle, ya tenemos una ganancia. 320 00:43:21,120 --> 00:43:30,120 Aquí puse una fórmula que lo he copiado por internet y se adecuaba un poco a lo que yo estaba haciendo. 321 00:43:31,120 --> 00:43:40,120 Máximo clientes, RAM total dedicada, server web, entre las máximas peticiones por IFO que queramos tener. 322 00:43:41,120 --> 00:43:49,120 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. 323 00:43:50,120 --> 00:43:57,120 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. 324 00:43:58,120 --> 00:44:02,120 Pero bueno, esto es una regla que os puede valer, si no sabéis muy bien qué para nosotros poner en el sistema. 325 00:44:03,120 --> 00:44:10,120 Si nosotros quisiéramos poner en valor de 256 clientes, habría que cambiar también a una palabra que sería server link. 326 00:44:17,120 --> 00:44:19,120 ¿Hay dudas en esto del Apache? 327 00:44:19,120 --> 00:44:24,120 Sí, en el primero lo que tenemos es el Apache 4.0. 328 00:44:29,120 --> 00:44:31,120 Es un fichero con un S que estamos dentro. 329 00:44:32,120 --> 00:44:34,120 Lo que tenemos es el Apache 4.0. 330 00:44:39,120 --> 00:44:41,120 Es un fichero con un S que estamos dentro. 331 00:45:02,120 --> 00:45:04,120 Este es un fichero de configuración común. 332 00:45:05,120 --> 00:45:17,120 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. 333 00:45:18,120 --> 00:45:22,120 Aquí lo que está diciendo es, si nosotros tenemos el módulo prefork, coge este valor. 334 00:45:23,120 --> 00:45:25,120 Si nosotros tenemos el worker, coge este otro. 335 00:45:25,120 --> 00:45:32,120 Luego nosotros podríamos ver, con dpkg-l, por ejemplo, pipe grep apache, veríamos que apache tenemos, 336 00:45:33,120 --> 00:45:36,120 ah, pero me dijeron que era el worker, me confundí, es el de arriba, que es el prefork. 337 00:45:37,120 --> 00:45:42,120 Entonces vemos que tenemos instalado el apache prefork, ¿vale? 338 00:45:42,120 --> 00:45:44,120 ¿Alguna preguntilla más sobre la parte de apache? 339 00:45:45,120 --> 00:45:55,120 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. 340 00:45:56,120 --> 00:46:03,120 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. 341 00:46:03,120 --> 00:46:11,120 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. 342 00:46:12,120 --> 00:46:14,120 Dos clases de niños, para que puedan acceder al apache. 343 00:46:15,120 --> 00:46:20,120 Luego vamos a volver a modificar el apache para el acelerador vhp, pero ahora mismo este es un primer paso. 344 00:46:21,120 --> 00:46:27,120 ¿Los módulos que tienes que instalar al apache son los que utiliza por defecto? 345 00:46:27,120 --> 00:46:46,120 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. 346 00:46:47,120 --> 00:46:49,120 Los que se han visto hechos por defecto y he quitado solo ese. 347 00:46:50,120 --> 00:46:53,120 Sí, solo he quitado ese. También se funciona un poco de lo que vayamos a hacer. 348 00:46:54,120 --> 00:47:01,120 Como Moodle se puede utilizar para muchas cosas, hay que ver un poquito lo que nosotros queremos utilizar y lo que no queremos utilizar. 349 00:47:02,120 --> 00:47:05,120 En principio, la sobra de eso es ese. No hay mucho más. 350 00:47:06,120 --> 00:47:09,120 Si utilizamos PET o cosas, no necesitaríamos ese módulo. 351 00:47:11,120 --> 00:47:14,120 ¿Alguna cosita del apache de esta parte simple? 352 00:47:19,120 --> 00:47:23,120 ¿Alguna cosita que no se utilice por defecto? 353 00:47:30,120 --> 00:47:44,120 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. 354 00:47:45,120 --> 00:47:51,120 Entonces, el peor, que es el más pequeño, por así decirlo, es el que mejor nos viene. 355 00:47:52,120 --> 00:48:01,120 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. 356 00:48:02,120 --> 00:48:04,120 Con casi todos los oficiales y muchos no oficiales. 357 00:48:05,120 --> 00:48:13,120 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. 358 00:48:14,120 --> 00:48:19,120 Y para hacer granjas de apache, que también es otra solución, les habrá visto plenamente a disponibilidad. 359 00:48:25,120 --> 00:48:27,120 Lo que vamos a hacer ahora es... 360 00:48:30,120 --> 00:48:33,120 ¿Podemos parar cinco minutillos o continuar si queréis? 361 00:48:34,120 --> 00:48:35,120 Continuamos. 362 00:48:35,120 --> 00:48:36,120 Vale. 363 00:48:41,120 --> 00:48:43,120 Ahora vamos a pasar al tuning de MySQL. 364 00:48:46,120 --> 00:48:55,120 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. 365 00:48:56,120 --> 00:49:13,120 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é. 366 00:49:16,120 --> 00:49:18,120 Esta sería una pequeña parte de MySQL. 367 00:49:19,120 --> 00:49:29,120 Porque cuando nosotros estamos utilizando Moodle, realmente es una herramienta para repartir conocimientos y repartir algo que nosotros ya hemos creado. 368 00:49:30,120 --> 00:49:39,120 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. 369 00:49:40,120 --> 00:49:52,120 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. 370 00:49:53,120 --> 00:50:02,120 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. 371 00:50:03,120 --> 00:50:05,120 ¿Cómo solucionamos eso? Con caché. 372 00:50:05,120 --> 00:50:12,120 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. 373 00:50:13,120 --> 00:50:25,120 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. 374 00:50:26,120 --> 00:50:27,120 ¿Vale? 375 00:50:30,120 --> 00:50:45,120 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. 376 00:50:45,120 --> 00:50:57,120 Yo tengo aquí configurado una configuración para el servidor medio, que era el que hablábamos antes. 377 00:50:58,120 --> 00:51:02,120 Aunque, de cara a la base de datos, esto también vale para el servidor mucho más grande. 378 00:51:03,120 --> 00:51:11,120 Porque lo que estamos haciendo es configurar las búsquedas de cacheadas de Moodle. 379 00:51:12,120 --> 00:51:15,120 Y Moodle, más o menos, siempre hace lo mismo para los datos. 380 00:51:16,120 --> 00:51:20,120 Siempre busca más o menos las mismas cosas para mostrar los datos. 381 00:51:21,120 --> 00:51:22,120 ¿Vale? 382 00:51:27,120 --> 00:51:40,120 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. 383 00:51:41,120 --> 00:51:42,120 ¿Vale? 384 00:51:43,120 --> 00:51:49,120 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. 385 00:51:50,120 --> 00:51:51,120 ¿Vale? 386 00:51:57,120 --> 00:51:59,120 Tengo que hacerme eso por usuario. 387 00:51:59,120 --> 00:52:00,120 ¿Vale? 388 00:52:18,120 --> 00:52:19,120 Vale. 389 00:52:29,120 --> 00:52:31,120 Llevamos los datos de la bolsa... 390 00:52:36,120 --> 00:52:37,120 Entonces... 391 00:52:39,120 --> 00:52:42,120 Esto nos vale para cuando modifiquemos nuestros propios datos. 392 00:52:43,120 --> 00:52:46,120 Podemos verificar que se han cargado, que se han corregido. 393 00:52:47,120 --> 00:52:49,120 Al menos ya tenéis un común de manera de ver los datos. 394 00:52:49,120 --> 00:52:50,120 ¿Vale? 395 00:52:56,120 --> 00:53:04,120 Toda la configuración de MySQL se guarda en el archivo my.cnf. 396 00:53:06,120 --> 00:53:07,120 ¿Vale? 397 00:53:08,120 --> 00:53:10,120 Yo lo voy a abrir así porque me parece un poco más cómodo. 398 00:53:11,120 --> 00:53:14,120 Y vosotros si queréis hacerle el gcasu, gedit para abrirlo. 399 00:53:15,120 --> 00:53:16,120 El archivo es este. 400 00:53:17,120 --> 00:53:18,120 EPC, MySQL, CNF. 401 00:53:22,120 --> 00:53:23,120 ¿Vale? 402 00:53:25,120 --> 00:53:29,120 Y aquí vemos todas las variables que tenemos por defecto puestas. 403 00:53:30,120 --> 00:53:35,120 Y mucha de la información que he comentado para ayudarnos a entender y a configurar el servidor. 404 00:53:38,120 --> 00:53:39,120 Vamos a ir a lo nuestro. 405 00:53:45,120 --> 00:53:46,120 Aplausos. 406 00:53:48,120 --> 00:53:49,120 Vale. 407 00:53:50,120 --> 00:53:52,120 Activar el query cache y para verificarlo. 408 00:53:56,120 --> 00:53:57,120 Yo tenía... 409 00:53:58,120 --> 00:54:00,120 Ah, sí, lo tengo aquí también, perdonad. 410 00:54:02,120 --> 00:54:07,120 Query cache type 1, query cache size 16 megas y query cache minresunit 2K. 411 00:54:08,120 --> 00:54:09,120 ¿Vale? 412 00:54:09,120 --> 00:54:14,120 El query cache, aquí lo tengo para que nos quede fácil. 413 00:54:17,120 --> 00:54:18,120 Así se ve peor, ¿no? 414 00:54:21,120 --> 00:54:28,120 El query cache type, lo que decimos es si lo vamos a utilizar, ¿qué tipo de cache vamos a utilizar? 415 00:54:29,120 --> 00:54:32,120 Si utilizamos un valor de 0, esta no, o sea que no lo cachea. 416 00:54:33,120 --> 00:54:38,120 Si utilizamos un valor de 1, esta no, permite el cacheo, excepto para los sitios donde indicamos que no cachee. 417 00:54:39,120 --> 00:54:42,120 Porque habrá peticiones que sí que son importantes y que no queremos que estén cacheadas. 418 00:54:43,120 --> 00:54:47,120 Y el valor 2 es para que solo cachee donde le decimos que sí cachee eso. 419 00:54:48,120 --> 00:54:52,120 Por defecto Moodle está preparado ya con las queries de SQL no cachee. 420 00:54:53,120 --> 00:54:57,120 Con lo cual nosotros le decimos que sí a todo, excepto cuando él sepa que no tiene que cachear esas... 421 00:54:58,120 --> 00:55:00,120 Que no tiene que repetir esas búsquedas, ¿vale? 422 00:55:01,120 --> 00:55:08,120 Y el query cache size es la cantidad de memoria reservada para cachear resultados con su Moodle. 423 00:55:09,120 --> 00:55:12,120 Por defecto es 0, ¿vale? O sea que estaría desactivado. 424 00:55:14,120 --> 00:55:20,120 Nosotros vamos a añadir query cache type 1, query cache size 16 megas. 425 00:55:21,120 --> 00:55:25,120 Y bueno, estos son parámetros que os he dicho que son complicados de quitar. 426 00:55:26,120 --> 00:55:39,120 Pero sería la unidad mínima de recepción que tiene cada paquete de una query. 427 00:55:40,120 --> 00:55:44,120 Nosotros hacemos una query al servidor y el servidor nos proporciona una respuesta. 428 00:55:45,120 --> 00:55:50,120 Entonces sería el tamaño mínimo que podemos decirle que cachee. 429 00:55:51,120 --> 00:55:55,120 Porque menos que eso, no da igual que sea calzada o no. 430 00:55:57,120 --> 00:55:59,120 Entonces vamos a añadir esos parámetros. 431 00:56:04,120 --> 00:56:08,120 Vosotros sabéis lo con gcasu, gedit, lo vamos a hacer igual. 432 00:56:08,120 --> 00:56:09,120 ¿Vale? 433 00:56:14,120 --> 00:56:21,120 gcasu, gedit, btc, mysql, myzn. 434 00:56:26,120 --> 00:56:27,120 ¿Vale? 435 00:56:32,120 --> 00:56:33,120 Pues vamos a añadir... 436 00:56:34,120 --> 00:56:35,120 A ver... 437 00:56:37,120 --> 00:56:38,120 ¿Le he dado algún botón? No. 438 00:56:40,120 --> 00:56:42,120 Vamos a mirar primero si está ya definida. 439 00:57:03,120 --> 00:57:05,120 No sé si esto tiene para ponerlo más grande. 440 00:57:10,120 --> 00:57:11,120 Modo resaltado. 441 00:57:14,120 --> 00:57:15,120 No se puede poner más grande. 442 00:57:27,120 --> 00:57:29,120 Lo vemos en la web, en la web si lo tengo grande. 443 00:57:30,120 --> 00:57:31,120 Si lo puedo poner grande, perdón. 444 00:57:34,120 --> 00:57:35,120 Aumentar. 445 00:57:37,120 --> 00:57:38,120 Aumentar. 446 00:57:39,120 --> 00:57:40,120 ¿Vale? 447 00:57:43,120 --> 00:57:46,120 Aquí tengo otras soluciones que se pueden utilizar para mejorar el régimen de mysql. 448 00:57:47,120 --> 00:57:49,120 Pero vamos a ir con la configuración óptima. 449 00:57:52,120 --> 00:57:54,120 La configuración óptima es la siguiente. 450 00:57:57,120 --> 00:57:58,120 Tiene que estar 128. 451 00:57:59,120 --> 00:58:01,120 Es el tamaño de la pila para cada frea. 452 00:58:04,120 --> 00:58:05,120 Es que... 453 00:58:06,120 --> 00:58:07,120 ¿Cómo puedo...? 454 00:58:12,120 --> 00:58:14,120 Bueno, voy a definir todo esto. 455 00:58:15,120 --> 00:58:17,120 Es que claro, entramos en parámetros del sistema que... 456 00:58:19,120 --> 00:58:22,120 Carlos mejor, stacks y cosas así, pues no sé. 457 00:58:24,120 --> 00:58:25,120 Tengo que chocar. 458 00:58:26,120 --> 00:58:27,120 Tengo aquí puesto. 459 00:58:28,120 --> 00:58:31,120 Es el tamaño de la pila máximo para cada hilo que nosotros mandamos. 460 00:58:31,120 --> 00:58:32,120 ¿Vale? 461 00:58:33,120 --> 00:58:34,120 Esto significa que... 462 00:58:36,120 --> 00:58:40,120 Si nosotros no pusiéramos máximos, lo que haría sería generar... 463 00:58:43,120 --> 00:58:49,120 Si nosotros no pusiéramos máximos, lo que haría sería generar un fread demasiado grande y demasiado pesado de RAM. 464 00:58:51,120 --> 00:58:52,120 Ocuparía muchos procesos y mucha RAM. 465 00:58:53,120 --> 00:59:00,120 Con esto lo que hacemos es que cuando llega a 128, pues vuelve a hacer otro hilo con otro límite de 128. 466 00:59:01,120 --> 00:59:06,120 Y así simultáneamente para dar velocidad al sistema y poder luego sanear rápido la RAM. 467 00:59:08,120 --> 00:59:10,120 Keybuffer, 150 MB. 468 00:59:11,120 --> 00:59:12,120 Bajamos. 469 00:59:15,120 --> 00:59:16,120 Y decimos aquí. 470 00:59:16,120 --> 00:59:21,120 Los bloques de índice de tablas para MySAN e eSAN se guardan en buffer y se comparten para todos los threads de keybuffer size. 471 00:59:22,120 --> 00:59:23,120 ¿Vale? 472 00:59:23,120 --> 00:59:30,120 Entonces aquí lo que estamos diciendo es que 150 MB sea el completo de cada uno de esos bloques generales de índices. 473 00:59:32,120 --> 00:59:34,120 Es que esto sé que es difícil de... 474 00:59:35,120 --> 00:59:40,120 O sea, es áspero de leer así, pero no sé cómo explicarlo mucho mejor. 475 00:59:41,120 --> 00:59:42,120 Conexiones máximas. 476 00:59:43,120 --> 00:59:47,120 Bueno, todo lo que vea así, paquete y tal, lo podéis ver aquí y lo podéis ver luego en el curso. 477 00:59:48,120 --> 00:59:51,120 Y voy a ir un poco a lo más inteligible, ¿no? 478 00:59:52,120 --> 00:59:53,120 Máximas conexiones. 479 00:59:53,120 --> 00:59:55,120 Pues es el número de conexiones simultáneas que permitimos. 480 00:59:56,120 --> 00:59:58,120 Tengo máximas conexiones 100. 481 00:59:58,120 --> 00:59:59,120 ¿Vale? 482 00:59:59,120 --> 01:00:06,120 Decidí este número porque dice que en el Apache los máximos servidores que iban a estar levantados iban a ser 50. 483 01:00:07,120 --> 01:00:17,120 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. 484 01:00:17,120 --> 01:00:18,120 ¿De acuerdo? 485 01:00:18,120 --> 01:00:31,120 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. 486 01:00:37,120 --> 01:00:38,120 Vale. 487 01:00:39,120 --> 01:00:40,120 Threads concurrency. 488 01:00:41,120 --> 01:00:54,120 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. 489 01:00:55,120 --> 01:01:03,120 Esto es una fórmula muy simple, que es CPU por 2, incluyendo los hyperthreading y todo eso. 490 01:01:03,120 --> 01:01:08,120 Si tenemos una CPU con hyperthreading, pues son 2. 2 por 2, 4. 491 01:01:09,120 --> 01:01:15,120 Normalmente en los institutos hay biprocesadores con hyperthreading. ¿Cuántos serían? 4 por 2, 8. 492 01:01:15,120 --> 01:01:17,120 Pues en Threads concurrency podríamos 8. 493 01:01:20,120 --> 01:01:25,120 Estas son las que he explicado antes, el queryCacheSize y el queryCacheType, que ya las hemos visto. 494 01:01:26,120 --> 01:01:28,120 Las añadiríamos. 495 01:01:32,120 --> 01:01:34,120 Voy a copiarlas y pegarlas todas allí. 496 01:01:34,120 --> 01:01:57,120 He copiado los datos que hemos visto en la web que he puesto dentro del servidor MySQL. 497 01:01:58,120 --> 01:02:04,120 Lo guardamos y reiniciaríamos en MySQL. 498 01:02:04,120 --> 01:02:24,120 Esto es para hacer lo mismo que he hecho antes como superusuario, pero como usuario. 499 01:02:25,120 --> 01:02:29,120 Lo que estoy haciendo es, como superusuario ejecuta MySQL Restart. 500 01:02:30,120 --> 01:02:35,120 Igual que en Apache, con eso pararía el servidor de base de datos y lo volvería a lanzar. 501 01:02:44,120 --> 01:02:50,120 Ahí tendríamos la base de datos corriendo nueva, con esa mayor capacidad y mayor optimización de acceso. 502 01:02:51,120 --> 01:02:57,120 Y ahora nos quedaría solamente el último grupo, que sería el acelerador PHP. 503 01:02:58,120 --> 01:03:03,120 Esto lo he dejado para el final, porque quizás es lo más importante para acelerar el Moodle. 504 01:03:04,120 --> 01:03:11,120 Porque Moodle se basa mucho en cosas cacheadas, en información que repite continuamente a la hora de mostrar en la pantalla. 505 01:03:12,120 --> 01:03:16,120 Esto es un poco más gráfico, porque lo he preparado con el navegador. 506 01:03:17,120 --> 01:03:21,120 Y quizás compensa un poco el que veáis tanto a terminar. 507 01:03:26,120 --> 01:03:31,120 ¿De la parte de MySQL tenéis alguna pregunta que podamos responder? 508 01:03:36,120 --> 01:03:38,120 ¿Acelerador PHP? 509 01:03:42,120 --> 01:03:43,120 Sí. 510 01:03:55,120 --> 01:04:00,120 Claro, efectivamente, dentro de MySQL hay muchas cosas que se pueden modificar. 511 01:04:01,120 --> 01:04:06,120 Pero como esto también era un taller de optimización, evidentemente hay problemas con las tablas. 512 01:04:06,120 --> 01:04:13,120 Si las tienes en un TF8 y otros en ISO, a la hora de las tildes y los caracteres especiales. 513 01:04:14,120 --> 01:04:19,120 Pero bueno, eso sería un poquito de otro tipo de talleres, porque si no puede ser inmenso. 514 01:04:25,120 --> 01:04:32,120 Lo que vamos a hacer es... ¿Cómo funciona un acelerador de PHP? 515 01:04:33,120 --> 01:04:38,120 Funciona de la misma manera que os he explicado un poco antes el caché del MySQL. 516 01:04:39,120 --> 01:04:41,120 Todo lo que es caché es muy similar. 517 01:04:42,120 --> 01:04:46,120 Nosotros como equipo, como cliente, hacemos una petición a Moodle. 518 01:04:47,120 --> 01:04:49,120 Moodle hace su proceso y nos lo cuesta. 519 01:04:50,120 --> 01:05:00,120 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. 520 01:05:00,120 --> 01:05:02,120 Y luego nos lo tira a nuestra pantalla. 521 01:05:03,120 --> 01:05:05,120 Nosotros lo recibimos en nuestro navegador y lo vemos. 522 01:05:06,120 --> 01:05:10,120 Por un lado está el caché de la base de datos, que lo que hace es acelerar la búsqueda sin mirarlo. 523 01:05:11,120 --> 01:05:16,120 Pero el caché de PHP lo que hace es que lo que es igual ya lo tiene cacheado. 524 01:05:19,120 --> 01:05:21,120 Ya lo tenéis visible en el curso para que lo podáis ver. 525 01:05:22,120 --> 01:05:23,120 Pero escuchar ahora esto es importante. 526 01:05:24,120 --> 01:05:29,120 El acelerador PHP es quizá lo más importante de la aceleración de Moodle. 527 01:05:30,120 --> 01:05:40,120 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. 528 01:05:41,120 --> 01:05:48,120 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, 529 01:05:49,120 --> 01:05:54,120 todo el mundo está viendo ese mismo curso, esa misma página completa, esa misma página entera de PHP. 530 01:05:55,120 --> 01:05:58,120 No solo nos necesitaría nada más que hacer una búsqueda en MySQL. 531 01:05:59,120 --> 01:06:03,120 MySQL la mostramos una vez y ya la podría tener cachada por si hay más peticiones. 532 01:06:04,120 --> 01:06:07,120 Pero es que además hay aquí 15 personas o 20 personas que van a ver ese curso. 533 01:06:07,120 --> 01:06:19,120 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. 534 01:06:20,120 --> 01:06:29,120 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. 535 01:06:30,120 --> 01:06:32,120 A la hora de generar esa página PHP que nosotros vamos a abrir. 536 01:06:33,120 --> 01:06:35,120 Vale. 537 01:06:39,120 --> 01:06:45,120 Esto está un poco esteléctrico porque lo he estado modificando a última hora, pero todo esto lo he comprado. 538 01:06:46,120 --> 01:06:55,120 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, 539 01:06:56,120 --> 01:07:02,120 tenemos un acelerador PHP, que es un acelerador PHP-APK. 540 01:07:09,120 --> 01:07:14,120 Este va a estar disponible dentro de todas las distribuciones, pero nosotros podemos utilizar cualquiera. 541 01:07:15,120 --> 01:07:23,120 Yo lo he estado probando y comprobando y he parametrizado unas condiciones que son muy buenas, idóneas para lo que es. 542 01:07:26,120 --> 01:07:32,120 Bueno, con apk-hso-php-apk veríamos los datos de lo que es ese paquete de Debian. 543 01:07:33,120 --> 01:07:36,120 Tampoco entramos en ello ahora mismo demasiado porque es ver un paquete de Debian. 544 01:07:37,120 --> 01:07:39,120 Y se puede hacer con eso con un programa gráfico. 545 01:07:42,120 --> 01:07:44,120 Instalamos el PHP-APK. 546 01:07:45,120 --> 01:07:47,120 Podemos instalarlo de dos maneras. 547 01:07:47,120 --> 01:07:51,120 Con la consola, normalmente para la gente que administramos es lo más rápido. 548 01:07:52,120 --> 01:07:54,120 O con el modo gráfico. 549 01:08:00,120 --> 01:08:04,120 Con Synaptic, que sería un poco más gráfico. 550 01:08:05,120 --> 01:08:06,120 Simplemente se instala el paquete y ya está. 551 01:08:07,120 --> 01:08:09,120 Así que vamos a hacer esta operación directamente aquí. 552 01:08:10,120 --> 01:08:12,120 Abrimos una ventana otra vez, una terminal. 553 01:08:13,120 --> 01:08:14,120 Nos la hacemos superusuarios. 554 01:08:15,120 --> 01:08:16,120 Lo ejecutamos con Gksudo. 555 01:08:18,120 --> 01:08:19,120 Gksudo. 556 01:08:20,120 --> 01:08:21,120 Lo pongo ahí arriba. 557 01:08:22,120 --> 01:08:23,120 Apk-d. 558 01:08:24,120 --> 01:08:25,120 Install. 559 01:08:28,120 --> 01:08:29,120 PHP-APK. 560 01:08:32,120 --> 01:08:37,120 Vale, esto de aquí olvidaros porque esto os lo pongo claro para que lo veáis. 561 01:08:39,120 --> 01:08:42,120 Lo que está diciendo es que estos paquetes no están actualizados. 562 01:08:43,120 --> 01:08:47,120 Como Max está lanzando la nueva versión, el paquete no está actualizado. 563 01:08:48,120 --> 01:08:49,120 Pero eso da igual. 564 01:08:50,120 --> 01:08:55,120 Lo que hacemos es que instalamos el PHP-APK. 565 01:08:56,120 --> 01:08:59,120 Se lo baja de internet y lo configura él solo. 566 01:09:00,120 --> 01:09:03,120 Es un paquete muy simple que no tiene mucho que hacer. 567 01:09:04,120 --> 01:09:05,120 Y ahora pasamos a la configuración nuestra. 568 01:09:08,120 --> 01:09:09,120 Ya lo tenemos instalado. 569 01:09:09,120 --> 01:09:11,120 Si lo quisiéramos ver, haríamos dpkg-l. 570 01:09:13,120 --> 01:09:16,120 Que muestra toda la lista de paquetes que hay instalados en el ordenador. 571 01:09:17,120 --> 01:09:18,120 grep-pipe. 572 01:09:19,120 --> 01:09:20,120 grep-php-apk. 573 01:09:21,120 --> 01:09:24,120 Por si otro día hemos dejado la posibilidad, si no nos acordamos que lo hemos instalado. 574 01:09:25,120 --> 01:09:26,120 Y veríamos. 575 01:09:27,120 --> 01:09:28,120 Voy a poner Max arriba. 576 01:09:30,120 --> 01:09:31,120 Y veríamos que está instalado. 577 01:09:32,120 --> 01:09:34,120 Está instalada la versión 3.19. 578 01:09:39,120 --> 01:10:01,120 Y ahora lo que tenemos que hacer es editar el PHP-ini para decirle que cargue dentro del PHP el PHP caché. 579 01:10:02,120 --> 01:10:06,120 Para decirle al PHP que tenemos dentro del sistema que utiliza el módulo de caché que hemos instalado. 580 01:10:07,120 --> 01:10:08,120 Pues lo hacemos. 581 01:10:10,120 --> 01:10:11,120 No, no. 582 01:10:14,120 --> 01:10:15,120 No, no, es esto. 583 01:10:16,120 --> 01:10:17,120 Sí, sí. 584 01:10:18,120 --> 01:10:19,120 No hay ningún problema. 585 01:10:20,120 --> 01:10:21,120 Si quisiéramos ver el contenido de un paquete. 586 01:10:22,120 --> 01:10:23,120 dpkg-l. 587 01:10:24,120 --> 01:10:25,120 php-apk. 588 01:10:27,120 --> 01:10:28,120 Entonces vemos ahí. 589 01:10:29,120 --> 01:10:30,120 Tienes toda la razón. 590 01:10:32,120 --> 01:10:34,120 Ahí vemos que es apk.es. 591 01:10:35,120 --> 01:10:36,120 Vale, pues. 592 01:10:41,120 --> 01:10:42,120 Vamos a la configuración. 593 01:10:43,120 --> 01:10:44,120 gcasu. 594 01:10:45,120 --> 01:10:46,120 gedit. 595 01:10:47,120 --> 01:10:48,120 etc. 596 01:10:49,120 --> 01:10:50,120 php5. 597 01:10:51,120 --> 01:10:52,120 apache. 598 01:10:53,120 --> 01:10:54,120 php-ini. 599 01:10:56,120 --> 01:10:57,120 Y bajamos a la parte de extensión. 600 01:10:58,120 --> 01:10:59,120 Perdón. 601 01:11:05,120 --> 01:11:08,120 Bueno, como no sé dónde está lo pongo aquí. 602 01:11:23,120 --> 01:11:24,120 Lo añadimos aquí mismo. 603 01:11:25,120 --> 01:11:27,120 Bueno, lo vamos a añadir todo abajo para que lo tengamos todo. 604 01:11:31,120 --> 01:11:33,120 Vale, añadimos php-apk. 605 01:11:35,120 --> 01:11:36,120 Lo guardamos. 606 01:11:38,120 --> 01:11:39,120 Y salimos. 607 01:11:42,120 --> 01:11:43,120 Vale. 608 01:11:44,120 --> 01:11:47,120 Ahora reiniciaríamos apache, como tengo aquí puesto, para que tenga efecto en el motor de php. 609 01:11:48,120 --> 01:11:49,120 Reiniciamos apache. 610 01:12:05,120 --> 01:12:07,120 Y vamos a crear una página web que tenga estas sentencias. 611 01:12:16,120 --> 01:12:17,120 Pues lo copio. 612 01:12:18,120 --> 01:12:19,120 Creo un archivo. 613 01:12:20,120 --> 01:12:21,120 gcasu. 614 01:12:23,120 --> 01:12:24,120 En donde está nuestro servidor web. 615 01:12:27,120 --> 01:12:29,120 apc.php, por ejemplo. 616 01:12:35,120 --> 01:12:36,120 Ah. 617 01:12:38,120 --> 01:12:39,120 Se me ha olvidado el gedit. 618 01:12:40,120 --> 01:12:42,120 Por nervios de estar aquí pasando caro con las luces. 619 01:12:45,120 --> 01:12:47,120 Joder, pues después no tiene nada. 620 01:12:49,120 --> 01:12:50,120 Le doy a guardar, ¿vale? 621 01:12:51,120 --> 01:12:55,120 Y ahora lo que sería, sería ver la página web que hemos generado. 622 01:12:59,120 --> 01:13:01,120 Ahora lo pongo más despacio para que lo veamos, ¿vale? 623 01:13:01,120 --> 01:13:02,120 Iríamos a localhost. 624 01:13:04,120 --> 01:13:05,120 Inverter Benchmark. 625 01:13:07,120 --> 01:13:08,120 apc.php. 626 01:13:10,120 --> 01:13:11,120 Vale. 627 01:13:11,120 --> 01:13:12,120 ¿Qué vemos aquí? 628 01:13:12,120 --> 01:13:14,120 Vemos que nos da unos valores que no entendemos a priori. 629 01:13:15,120 --> 01:13:18,120 Con lo cual parece que le está copiando la primera sencencia de php, que no va contra apc, 630 01:13:19,120 --> 01:13:20,120 porque está cargada. 631 01:13:21,120 --> 01:13:23,120 Y ahora buscamos apc dentro de la página. 632 01:13:25,120 --> 01:13:27,120 Bueno, aparte del módulo que lo hemos visto ahí arriba. 633 01:13:32,120 --> 01:13:34,120 Y aquí tenemos un apartado entero que es apc. 634 01:13:36,120 --> 01:13:37,120 ¿Vale? 635 01:13:38,120 --> 01:13:42,120 Entonces, lo hemos instalado y Apache lo está utilizando y está funcionando. 636 01:13:43,120 --> 01:13:44,120 Ya en teoría cacheamos las páginas. 637 01:13:46,120 --> 01:13:53,120 Ahora lo que vamos a hacer es parametrizar esas páginas, ese apc, para que sea muy efectivo y muy optimizado con Moodle. 638 01:13:54,120 --> 01:13:55,120 Lo mismo que antes. 639 01:13:55,120 --> 01:13:59,120 Como las opciones de Moodle son siempre las mismas, esta configuración que yo voy a daros, 640 01:14:00,120 --> 01:14:09,120 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. 641 01:14:18,120 --> 01:14:20,120 ¿Cómo hay que buscar los valores otros? 642 01:14:21,120 --> 01:14:22,120 ¿Perdona? 643 01:14:22,120 --> 01:14:23,120 ¿Cómo hay que buscar los valores otros? 644 01:14:23,120 --> 01:14:28,120 Sí, lo hice con el programita que os he dado antes y con el sistema de estadística. 645 01:14:29,120 --> 01:14:39,120 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. 646 01:14:40,120 --> 01:14:46,120 Entonces, un poquito tengo explicadas las cositas que yo he ido utilizando para que lleguemos a esta conclusión. 647 01:14:47,120 --> 01:14:56,120 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. 648 01:14:56,120 --> 01:15:00,120 Sobre todo cuando es un trabajo de toda consola y todo esto. 649 01:15:02,120 --> 01:15:04,120 Entonces lo que haremos ahora es configurar el PC. 650 01:15:05,120 --> 01:15:13,120 Vamos a editar ese archivo, que es http://etc.hf5.d.apc.ini, y le vamos a meter toda esta configuración. 651 01:15:14,120 --> 01:15:22,120 Luego vamos a lanzar Apache para que lo redicie, y si queréis podemos probar otra vez el sistema de carga. 652 01:15:22,120 --> 01:15:26,120 Aunque como lo hacemos con la apc inicial no va a ser un cambio muy grande. 653 01:15:26,120 --> 01:15:28,120 Lo importante es navegar un poco por las nubes. 654 01:15:31,120 --> 01:15:32,120 Voy a copiar esto. 655 01:15:43,120 --> 01:15:44,120 Le añado esa configuración. 656 01:15:44,120 --> 01:15:45,120 Le añado esa configuración. 657 01:15:45,120 --> 01:16:14,120 En la que estoy diciendo que el libro de profundidad tiene que llevar a cabo una configuración 658 01:16:15,120 --> 01:16:21,120 para cachar las párpidas. El máximo tamaño de las párpidas cachadas 659 01:16:21,120 --> 01:16:35,120 son los marcos del PHP. Lo guardo, como yo he puesto en las instrucciones, 660 01:16:35,120 --> 01:16:40,120 le añado también en php-ini estas líneas para las párpidas. 661 01:16:40,120 --> 01:17:07,120 Lo guardo. Ahora reinicio el servidor Apache. 662 01:17:10,120 --> 01:17:34,120 Y lo que voy a hacer es ejecutar las pruebas que hemos hecho antes para ver si la gráfica 663 01:17:34,120 --> 01:17:39,120 nos ha cambiado o no. No debería cambiar demasiado. 664 01:17:39,120 --> 01:18:04,120 La gráfica lo de la web, solo es la página inicial. 665 01:18:04,120 --> 01:18:24,120 Pero lo importante ahora mismo es que en el taller de módulos de Moodle 666 01:18:24,120 --> 01:18:31,120 hay un módulo que es también para poder ver la estadística del acceso. 667 01:18:31,120 --> 01:18:43,120 Con eso vemos las estadísticas. Con esto lo que tenemos es, 668 01:18:43,120 --> 01:18:49,120 los problemas que teníamos al principio, Apache, MySQL y el caché de PHP, solucionados. 669 01:18:49,120 --> 01:19:11,120 Voy a hacer el genuflo. 670 01:19:11,120 --> 01:19:17,120 El genuflo de Mach3. 671 01:19:41,120 --> 01:19:52,120 ¿Qué vemos aquí que es muy importante? Aquí ha cambiado un montón la gráfica. 672 01:19:52,120 --> 01:19:59,120 Aquí lo que estamos viendo ahora mismo es que especialmente cuando hemos llegado a mil peticiones, 673 01:19:59,120 --> 01:20:07,120 entre 950 y mil, ha subido un poco más, quizá también porque tengo RAM usada con el programa este 674 01:20:07,120 --> 01:20:10,120 para que se vaya a todas las pantallas y fuera de menos RAM. 675 01:20:10,120 --> 01:20:20,120 Pero lo que estamos viendo es que de 0 a 900 está todo por debajo de mil milisegundos. 676 01:20:20,120 --> 01:20:24,120 Hemos acelerado, si estábamos antes en 2000 o algo así, al 100%. 677 01:20:24,120 --> 01:20:30,120 Estamos ahora mismo teniendo un servidor Moodle, por así decirlo, que va al doble de RAM. 678 01:20:31,120 --> 01:20:37,120 Hemos acelerado todo al 100% y estamos haciéndolo con probar de 60 alumnos o 60 personas al momento. 679 01:20:39,120 --> 01:20:42,120 Aquí veis la estadística. 680 01:20:48,120 --> 01:20:54,120 En principio esto es lo que yo tenía un poco preparado de cara a los niveles que podríamos encontrar aquí. 681 01:20:54,120 --> 01:20:56,120 ¿Tenéis dudas algunos? 682 01:21:14,120 --> 01:21:20,120 Es que realmente tenemos que meternos más en lo que es un USR, un servicio web. 683 01:21:20,120 --> 01:21:27,120 Cuando nosotros hacemos una petición a un servidor web o a una aplicación complicada como es esta, 684 01:21:27,120 --> 01:21:31,120 no nos está sirviendo solo una página. La situación es una página. 685 01:21:31,120 --> 01:21:35,120 Pero lo hace con pequeños fragmentos y los une para hacer una página. 686 01:21:35,120 --> 01:21:37,120 Entonces ahora mismo está uniéndolos todos. 687 01:21:37,120 --> 01:21:39,120 Miren, se cambia el usuario. 688 01:21:40,120 --> 01:21:42,120 Está uniendo los comunes. 689 01:21:43,120 --> 01:21:46,120 Pues ahora mismo no estamos uniendo una página, ¿no? 690 01:21:46,120 --> 01:21:49,120 Ya que no cambiamos nada, pues ha sido muy rápido. 691 01:21:50,120 --> 01:21:56,120 Pero efectivamente esta velocidad va a ser el doble que también ocurre con el Moodle cuando no estamos funcionando. 692 01:21:57,120 --> 01:22:02,120 Como un 75% más, un 75% más ha incluso cumplido el nivel de seguridad. 693 01:22:02,120 --> 01:22:07,120 Según lo que tenemos de metal, de máquina, y está muy bien. 694 01:22:08,120 --> 01:22:10,120 ¿Alguna duda más? 695 01:22:16,120 --> 01:22:18,120 Sí, vamos a ver. 696 01:22:20,120 --> 01:22:24,120 Realmente este le he cogido porque era el más fácil para instalar el dev. 697 01:22:24,120 --> 01:22:30,120 Probé con otro Mac y otro Windows y más o menos hay variaciones, pero más o menos es muy similar. 698 01:22:30,120 --> 01:22:39,120 Porque ya dije que el Moodle lo bueno que tiene es que para construir páginas tiene cosas muy repetitivas. 699 01:22:39,120 --> 01:22:45,120 Entonces es una buena opción para cualquier acelerador que lo pueda coger. 700 01:22:45,120 --> 01:22:48,120 En un acelerador simple, lo primero que hace es repetir lo que da igual. 701 01:22:48,120 --> 01:22:52,120 Sin meter todo o menos el nombre, repite todo lo que da igual. 702 01:22:52,120 --> 01:22:56,120 Entonces no nos da ventaja extraordinaria un superacelerador. 703 01:22:56,120 --> 01:23:01,120 Realmente yo creo que va a estar en la misma línea, más o menos, cualquier acelerador. 704 01:23:03,120 --> 01:23:04,120 Dime. 705 01:23:11,120 --> 01:23:12,120 No te digo nada. 706 01:23:19,120 --> 01:23:20,120 Sí. 707 01:23:21,120 --> 01:23:23,120 No, el Zotimax no tiene nada que ver eso. 708 01:23:27,120 --> 01:23:35,120 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. 709 01:23:35,120 --> 01:23:42,120 Lo que hace realmente es que te quita los saltos de línea, te lo pone todo en una sola línea. 710 01:23:43,120 --> 01:23:45,120 Ah, no es el Zotimax. 711 01:23:48,120 --> 01:23:54,120 Más o menos todos los aceleradores PHP van a dar el mismo resultado, que es lo que realmente es fundamental. 712 01:23:54,120 --> 01:24:00,120 Lo fundamental de este curso, de este taller, es que acelerando, dando las opciones al Apache, 713 01:24:00,120 --> 01:24:07,120 para los clientes que nosotros necesitamos, limitarlos, para que no se sobre-accedan a las tarras, 714 01:24:07,120 --> 01:24:11,120 y al MySQL, para que aproveche los recursos que hemos cambiado en el Apache, 715 01:24:11,120 --> 01:24:16,120 utilizamos un acelerador PHP para que siga la línea y repetirnos el mismo contenido. 716 01:24:17,120 --> 01:24:20,120 Esa es, en esenciales, el acelerador PHP. 717 01:24:21,120 --> 01:24:24,120 A mi parecer. Siempre a mi parecer. 718 01:24:36,120 --> 01:24:42,120 Moodle tiene un pequeño acelerador, pero eso es para su proceso. Es una especie de cache. 719 01:24:42,120 --> 01:24:46,120 Parece algo que hemos configurado dentro del propio MySQL para todo el servidor. 720 01:24:46,120 --> 01:24:48,120 Algo muy similar. 721 01:24:51,120 --> 01:24:53,120 Un acelerador de 4K. 722 01:24:54,120 --> 01:24:56,120 ¿Alguna preguntilla más? 723 01:24:58,120 --> 01:25:00,120 ¿Todo está ok? ¿Todo está entendido? 724 01:25:00,120 --> 01:25:04,120 Bueno, pues en la página web vais a tener el curso. 725 01:25:04,120 --> 01:25:07,120 Lo voy documentando un poco esta tarde con alguna cosa que se me ha ocurrido. 726 01:25:07,120 --> 01:25:15,120 Y mañana volveré a filtrar por la mañana el mismo curso, pero añadiré bastantes cosas que las dejaré para el final. 727 01:25:15,120 --> 01:25:19,120 Por si acaso alguien se quiere unir en la parte final del taller para verlo. 728 01:25:20,120 --> 01:25:22,120 Y eso es todo.