Archive

Archive for September, 2013

PHP’s @ hurts performance

September 25, 2013 2 comments

Did you know…?

As a “take away” information taken from this post https://gist.github.com/nikic/6699370 (by famous PHP core developer @nikita_ppv), it appears like the @ sign in PHP (used to “hide” errors, as the “error-suppression operator” it is) also disables the “compiled variables” optimization (OpCode caching).

Experimentando con Digital Ocean… primeras impresiones

September 23, 2013 4 comments

El equipo de BeezNest estuvo experimentando con el servicio de alquiler de máquinas virtuales de Digital Ocean estos 2 últimos meses, y en el espíritu del compartir, aquí les damos nuestras primeras impresiones.

https://www.digitalocean.com/

Costo

Ante todo, hablemos de costos. Se pueden obtener máquinas virtuales con disco SSD a partir de $5/mes. Esto es todo incluido, pagado desde PayPal o por tarjeta de crédito. Es más, existen algunos vouchers que permiten aprovechar de promociones de $10 “para probar”.

Con una máquina virtual (llamada “droplet” en este caso) de $5/mes, que es de 512MB de memoria y 20GB de disco duro, no se hace mucho, pero es suficiente, por ejemplo, para montar un pequeño sitio web Drupal o unas instalaciones de Chamilo LMS, de momento que el uso no sea masivo.

Lo que consideramos muy bueno es la accesibilidad para unas máquinas de entrada. Como que el costo no deja realmente lugar para pensar. Además, si solo lo usa dos semanas, pagará la mitad. Se descuenta por hora. Pero ojo, hay que apagarla, sacar una imagen de backup (snapshot) y borrar la máquina para que deje de descontar…

Accesibilidad

En términos de accesibilidad (y no estamos hablando de discapacidades, sino de facilidad de acceso al servicio), el servicio es impresionante de claridad: los costos aumentan en una proporción casi igual a los recursos: $10/mes para 30GB de disco SSD, 1 core y 1GB de RAM, $20/mes para 40GB, 2 cores y 2GB de RAM, etc. La lista de costos indica hasta máquinas de 24 cores y 96GB de RAM (pero claro, ahí sale costoso, a $960/mes, pero se puede tomar por horas a $1.429/h).

La lista de costos está a un clic de la página principal del sitio, y permite ver el costo por mes y por hora.

La creación de una cuenta de usuario es sencilla (usuario y contraseña), y a partir del momento en que paga en PayPal (link “Billing” y después “Manage payments” en la interface del usuario registrado) o por tarjeta de crédito, se activa el botón de creación de imágenes. En 2 clics y 2 minutos de espera, ya tiene una máquina virtual corriendo.

Disponibilidad de imágenes predefinidas

La lista de imágenes disponibles es bastante extendida, con 9 versiones de Ubuntu (incluyendo una de Ubuntu 10.04 64bit que permite instalar facílmente un servidor de videoconferencia BigBlueButton), 4 versiones de CentOS, Debian, ArchLinux y Fedora, además de unas imágenes de aplicativos pre-instalados como WordPress o Redmine. En fin, hay para todos los gustos o casi, por lo menos en Linux.

Comunicación

La información comunicada por e-mail es corta y al punto para quien conoce un poco de gestión de servidores y conexiones por SSH. Después de crear una nueva imagen, el tiempo de espera para recibir el correo con los accesos es mínimo: alrededor de 1 minutos (hasta 5 minutos en un caso).

Soporte

Si bien existe poca (si alguna) información en Español, la calidad y rapidez del soporte es buena. En 5 comunicaciones con ellos, el tiempo promedio de atención fue de 30 minutos (tuvimos mala suerte en un caso, al parecer, ya que la mayoría de la gente en el foro indica que dan respuesta en menos de 5 minutos, y a nosotros una vez demoró 4 horas). Existen unos temas todavía un poco obscuros, para el equipo de soporte también, como la gestión del volumen de transferencia hasta la fecha, que si bien indica un límite en las características de las imagenes, parece que todavía no está controlado.

Tampoco queda claro si, una vez que se contabilice, se podrá hacer “pooling” (es decir compartir el volumen de transferencia entre varias máquinas) y si el límite es proporcional a la cantidad de horas usadas, o si, de frente, nos dan la cantidad correspondiente a un mes de uso.

Redimensionamiento

El redimensionamiento de las máquinas no se hace en caliente. Es necesario tomar un snapshot, apagar la máquina virtual y volver a crear una nueva máquina de mayor dimensión. Existe una funcionalidad de redimensionamiento (“Resize”) pero no funciona para aumentar la capacidad en disco, por lo que se recomienda proceder por el apagado y el remplazo del droplet.

El remplazo del droplet mismo mantiene la dirección IP, aunque Digital Ocean no ofrece garantía sobre este punto (pero dicen que “en general” su sistema reserva esta IP por “un rato” para usted después de que el droplet haya sido eliminado. Muy importante entonces, para no tener que redefinir nombres de dominios y cosas así, solo apagar momentáneamente sus droplets y proceder uno por uno (no apagar 4 a la vez y después volver a crear imágenes en cualquier orden).

En nuestro caso, no tuvimos problemas de redimensionamiento, pero queda claro que si usan 25GB de disco y redimensionan a un droplet de 20GB de disco, van a enfrentarse con problemas…

Particionamiento

El mayor problema que encontramos hasta la fecha fue la imposibilidad de redimensionar o distribuir a su gusto las particiones en el disco de las imágenes proveidas. Esto impide una serie de cosas, como el compartido de particiones entre varias máquinas (NFS, OCFS2, etc) y el uso de espacios de swap (en caso pase encima de la memoria autorizada).

API

Digital Ocean ofrce una API REST muy simple y bonita que permite crear nuevas imágenes a partir de un snapshot y un número de tipo de droplet, apagarlas, redimensionarlas, reiniciarlas, etc.

Como es REST, se puede probar hasta a partir de la ruta de un navegador.

También econtramos una librería PHP (de terceros) ya preparada para el uso de esta API, lo que reduce todavía los obstáculos para armar un sistema de gestión bien concreto con redimensionamiento adaptativo.

Esto siendo dicho, el panel de control todavía no ofrece opciones avanzadas para el redimensionamiento.

Calidad de las máquinas y servicios

Aunque no hayamos hecho benchmarking en los discos, como es de esperar para un disco SSD (que no presenta los mismos defectos que discos magneticos para el contexto de máquinas virtuales), el disco parece muy rápido.

También parecen tener mirrors de Debian y Ubuntu en su red, ya que la descarga de nuevos paquetes y las actualizaciones de estos dos sistemas es fulgurante (llegamos a 10MB/s para la instalación de BigBlueButton, que requiere más de 800MB de descarga).

Cuando se usan al extremo y se alcanza el límite de memoria, los servicios corriendo en la máquina se apagan, como es de esperar bajo Linux, por lo que es importante medir bien las primeras utilizaciones y dimensionar correctamente la máquina virtual.

Últimamente, y bajo presión popular al parecer, se agregó private networking dentro del segundo data center de Nueva York (y solo este). No hemos podido probarlo, pero entendemos que este permite generar menor latencia entre máquinas, en particular para el caso de replicación de bases de datos MySQL, por ejemplo.

Puede definir registros PTR a través de la interface.

Percances

En una (sola) oportunidad, quisimos acceder al panel de control un domingo en la mañana para redimensionar una máquina pero no se pudo, lo que nos generó bastante preocupación, pues no habíamos visto ninguna información correspondiente acerca de esta indisponibilidad. Todo el sitio de Digital Ocean siendo inaccesible, no pudimos verificar que estaba pasando, y solo teníamos una máquina virtual levantada, que no respondía. Por lo tanto, nos fue imposible determinar si esto había sido un caso excepcional o algo común. De lo observado desde este entonces (hace más de un mes ahora), no fue posible volver a observar este problema.

Conclusión

En esta etapa, todavía sigue siendo difícil entender exactamente el compromiso de Digital Ocean en términos de persistencia de los datos y de disponibilidad de la infraestructura, por lo que preferimos no usarlo para sistemas críticos. La dificultad de compartir particiones rinde imposible o por lo menos impráctico la elaboración de clusters totalmente redundantes. Esperamos encontrar una solución acerca de esto pronto.

Por lo general, estamos impresionados por la calidad del servicio ofrecido por Digital Ocean, en comparación con su costo, y recomendamos a todos los desarrolladores web trantando de comprobar la validez de nuevos sistemas de usar sus máquinas virtuales. Son muy prácticas y eficientes. Solo no se olviden de apagarlas y destruir el droplet después de haber tomado un snapshot para no seguir pagando mientras no las usan. Los montos pueden subir rápidamente, pero creemos que definitivamente representa un ahorro considerable en consideración del tiempo que se podría dedicar normalmente a la configuración de todas estas máquinas virtuales en un ambiente propio.

Grabar secuencia de navegación web para pruebas de carga con JMeter

September 20, 2013 Leave a comment

Este vídeo es excelente para mostrar lo que se tiene que hacer para grabar una secuencia de navegación de un usuario en un sitio web (cualquiera) con JMeter.

Entonces los pasos son:

  • Crear un grupo de hilos
  • Crear un grabador HTTP
  • Iniciar un servidor proxy
  • Iniciar su navegador con configuración para usar este proxy
  • Navegar en el sitio deseado

Nota: he tenido malas experiencias tratando de hacer este procedimiento en HTTPS. Parecía como si no funcionara correctamente, pero no pude investigar mucho más.

SSL certificates for multiple virtual hosts: problem on IE for Windows XP

September 14, 2013 3 comments

Using a single server for multiple virtual hosts is something that comes naturally nowadays for any web server sysadmin.

Using SSL certificates is also common (particularly so since the infamous Blacksheep extension for Firefox as published a few years back).

However, the mixing of SSL and virtual hosts might not be as easy as you might think. At least for some of your users…

Some browsers in some old (but better than more recent, some might say) proprietary operating systems are resisting the trend.

Erick, on our team, investigated a strange side effect of enabling a second SSL certificate on one of our multiple-virtual-hosts servers recently. It so happens that, when enabling the second certificate, Internet Explorer on Windows XP starts shouting that the site is not safe, with a huge warning similar to the one you get with self-signed certificates (the screenshot is in Spanish here, sorry, but you get the idea).

SSL warning in IE under XP

SSL warning in IE under XP

You can read more about the problem with having several SSL certificates on a single server, and the solution thereof on the Apache Foundation’s wiki, but to be short, a fix has been developed under the name of SNI, as an extension to SSL. Most browsers support that extension but, quite unsurprisingly, Internet Explorer on Windows XP doesn’t.

Browsers support for SNI

Browsers support for SNI

So, if you have any Internet Explorer user under XP, well, let’s say that you will probably have to deploy a lot of efforts to give them security on your website.

From the top of my mind, you could use a special redirect just for this case (based on the User Agent, I suppose) so that these users can use your site without SSL, or to give them a first page of warning before you send them to the site, that will alert them that it is supposedly not secure, and where you could tell them how to accept the certificate (because honestly, without reading the page in detail, they will just freak out).

Of course, yet another solution is to make sure that all sites that use SSL are on different servers, but that’s probably just not an option.

But seriously… Internet Explorer, SERIOUSLY ???

Categories: English, security, Techie Tags: , , , ,

¿Que requerimientos y recursos mínimos necesito en mi servidor para una instalación de chamilo?

September 11, 2013 Leave a comment

Hol@!

En este artículo vamos poco a poco ofreciendo más información respecto a esta pregunta :

¿Qué requerimientos y recursos mínimos necesito en mi servidor para una instalación de chamilo? 

Está es una pregunta muy común que los ingenieros de sistemas se hacen, cuando tienen a cargo una implementación de Chamilo.

En la mayoría de los casos desean está información para incluirlo en su plan técnico y poder comprar un servidor adecuado para su instalación, en otros casos  tiene como trabajo hacer una comparación entre otras soluciones de LMS y finalmente en otros casos le dejaron como tarea en un curso y no saben a quién preguntar y mandan correos con asunto URGENCIA a empresas para solicitar una “cotización” y claramente entre nosotros lo que menos le interesa es “contratar el servicio”  solo desean tener datos ;) …..por lo tanto para evitar trabajo extra de los pobres encargados de ventas , este articulo tiene como finalidad convocar a la “colaboración grupal” y juntos poco a poco tener datos para responder esta pregunta.

Mi respuesta a está consulta es: No lo sé , es como preguntarme … ¿cuantos ladrillos necesito para construir un edificio?….cómo quieres proyectar recursos de algo …si no tienes claro el alcance de tu proyecto! , ¿ cuantos pisos tiene el edificio ?  ¿en que lugar lo vamos a construir? ¿Cuantos van a vivir ahí?  ¿Tienen un buen presupuesto para invertir en recursos de calidad?  en conclusión antes de hacer esa pregunta ..primero planifica tu proyecto de e-learning en base a eso recién se puede planificar adecuadamente los recursos técnicos.

Iniciamos con los casos:

Caso N°1:

Requerimientos:

  • 4000 usuarios
  • 150 cursos o secciones
  • 200 usuarios concurrentes máximo

Proyección de recursos a 01 año para el servidor:

  • Cuanto de memoria : 4GB
  • Cuantos núcleos de microprocesador : 8 procesadores tipo Dual Core
  • Cuanto de disco duro: 200 GB

Seguimosss con más datos más adelante…compartan sus requerimientos y proyecciones…Si tiene datos reales ..sería ¡Excelente!

 

Categories: Spanish, técnico, ubuntu Tags: ,

Behringer C-1U microphone under Linux – recording level too low

September 6, 2013 6 comments

If you wanted to find a good way to record good quality audio and decided to buy a Behringer C-1U (U meaning USB connector), then connected it on your Ubuntu (or other Linux distribution) only to find that the sound recording level was so low you could barely hear it, then you’re almost like me. I mean, unless you have found a way to fix it, in which case you’re exactly like me!

 

C-1U Microphone

The microphone itself is good, don’t hit your head on the wall about having spent too many buck on it just to throw it away because you hate Windows. The problem is that you need some ALSA help. And when I say ALSA, I really mean alsamixer, or something of the likes. In my case, I checked a list of alsa-related names in my software repository and found qasmixer, which allowed me to solve the problem, so here’s how you do it.

Install QASMixer

That one’s very easy, either through Synaptic or on the command line: sudo apt-get install qasmixer

Start qasmixer, that should just be a matter of typing the program name either in unity, gnome3 or in a terminal. The program opens.

Select the microphone

Go to the View menu, then select “Show device selection” (or just press F6, anyway).QASMixer - DevicesThis will make a little area appear on the far right side of the window. QASMixer - Boost micIn that area, you should see a little “hw” option appear (for “hardware”, I guess). Click it. You can see the C-1U in a second area opening below, right?

Click the C-1U option. A new level indicator appears on the left side, that says “Mic” and is at the bottom (or in the middle). Just put that one up to the maximum level. You can now safely close qasmixer.

Now use whatever technique you used to use to record your voice. You should *finally* be able to get some decent voice recording from your Linux box!

I hope it helps, really.

2014-04-06 Update: The microphone seems to have stopped working at some point. I have to confirm that with other computers still, but so far the led inside lights up then fades very quickly (after 1 second or so) and the computer doesn’t detect it. dmesg was claiming the device could not be identified. I tested again a few days later and it was working again. No idea of what might have caused this.

%d bloggers like this: