Hardware

Mejorar el rendimiento de tu VPS

Cuando hablamos de servidores VPS, hablamos de sistemas virtualizados en los que cada VPS dispone de una asignación de recursos propia a nivel de CPU, memoria, disco duro y red, permitiendo al usuario disponer de un sistema operativo propio con acceso root o administrador.

Sin embargo, a pesar de disponer de esta independencia de recursos, existe la posibilidad de que se produzcan relentizaciones o incluso el colapso completo del sistema de virtualización donde se aloja el propio VPS y el causante de este colapso no es otro que la unidad de almacenamiento (disco duros) que puede verse incapaz de procesar las escrituras y/o lecturas que de forma simultanea todos los VPS están ejecutando.

Los discos duros mecánicos, disponen de una aguja que se desplaza a la posición de disco que corresponda para efectuar la tarea de lectura y/o escritura. El problema radica cuando uno de los VPS hace un uso intensivo de disco, por ejemplo, comprimiendo información o haciendo copias de seguridad, donde la unidad debe leer y escribir al mismo tiempo, en este caso, el resto de VPS alojados en esa misma unidad de disco verán relentizado su propio VPS sin poder hacer nada para solucionar el problema de rendimiento, simplemente deben esperar a que el VPS que efectua esa tarea finalice su trabajo y por tanto la aguja del disco estará nuevamente disponible para realizar nuevas tareas.

La solución que recomendamos es buscar un proveedor que nos proporcione un Servidor VPS SSD, es decir, un servidor VPS que está alojado sobre discos duros SSD. Los discos duros SSD disponen de chips de memoria en lugar de platos giratorios y agujas móviles. Estos chips, permiten velocidades de lectura y escritura hasta 10 veces más rápidas que los discos tradicionales y los tiempos de acceso pueden ser hasta 100 veces más rápidos.

Servidores VPS

Los VPS SSD, son la alternativa ideal para mejorar el rendimiento de tu proyecto, cualquier cliente o usuario puede ejecutar las tareas más exigentes sin que otros usuarios dentro del mismo nodo se vean afectados por un mal rendimiento. Pero a demás, también debes considerar que tu proveedor de servicios te proporcione un VPS en la ubicación adecuada para que tus usuarios accedan a la información con la menor latencia posible. Por ello, si tus clientes son usuarios de España, lo ideal es que contrates un VPS en España.

Leer más

Cloud Computing y Administración de servidores

Introducción al Cloud Computing

El Cloud Computing está tomando mucha fuerza ahora en las empresas, esto afectará considerablemente a la manera de administrar los servidores, de manejar la información de la empresa, de instalar aplicaciones, y en definitiva a la manera de gestionar las TIC dentro de una empresa.

Las cifras del crecimiento de las empresas de Cluod Computing, entre ellas amazon, nos muestran el gran crecimiento que tendrán los servidores en la nube a lo largo de los próximos 4 o 5 años, debido a esto queremos describir los cambios que se pueden producir en el escenario actual, así como las ventajas y los inconvenientes del Cloud Computing.

Cloud computing administración

Actualmente la mayoría de las empresas cuentan con personal informático interno que se encarga de realizar todo tipo de tareas y gestiones relacionadas con las TIC. Por consiguiente, si una empresa toma por camino externalizar sus servidores a servicios de Cloud Computing también reducirá el personal informático interno.

Es obvio que no todos los servidores y servicios se pueden externalizar esto depende de las características de cada empresa, pero sí que se puede dar el caso de externalizar gran parte de los servidores hacia Cloud Computing.

Cloud Computing presenta una serie de ventajas e inconvenientes en cuanto al sistema tradicional en el que cada empresa tiene sus servidores, su almacén de datos y asume cualquier problema en el software y hardware de los mismos.

Ventajas del Cloud Computing

Como ventajas podemos encontrar las siguientes:

Cloud Computing tiene la ventaja de que el servidor estará online y podremos acceder a él en cualquier momento.

La empresa no tendrá que preocuparse de averías, ni de reparaciones en el servidor, puesto que esto ya lo hace un personal externo, por lo tanto podrá ahorrar costes adicionales de tener personal interno que se ocupe de estos problemas. Reduciendo así costes en mantenimiento y en personal de mantenimiento de equipos.

En cuanto al gasto inicial que tiene que soportar una empresa para montar todos los equipos y los servidores se verá reducido considerablemente, puesto que no tendrá que invertir en tantas maquinas. Solamente contratará un servicio en la nube acorde a sus necesidades iniciales.

Si es una empresa en el que el número de servidores que necesita puede variar considerablemente dependiendo de las campañas o épocas, etc. Utilizando Cloud Computing solo tendremos que contratar más o menos servidores dependiendo la época en la que los necesitemos o dependiendo de la demanda que tengamos.

Así pues, si hemos optado por esta opción y nuestro negocio crece, la adquisición de más servicios en la nube será bastante sencilla, dándonos facilidades a la hora de escalar nuestro modelo de negocio.

Respecto a la seguridad contaremos con la empresa externa que será la encargada de mantener la seguridad en sus servidores.

Tampoco tendremos que preocuparnos especialmente con el tema de los virus en los servidores ya que también contaremos con la empresa externa que se ocupara hasta cierto punto de mantener nuestros servidores libres de virus.

Inconvenientes del Cloud Computing

Por otro lado, debemos de tener en cuenta una serie de desventajas en cuanto a tener los servidores en la empresa.

Nuestros servidores serán susceptibles a cualquier problema que surja en la red, por lo tanto si la red externa se ha caído no podremos contar con nuestros servidores. Si nuestros servidores estuviesen dentro de la misma empresa podríamos acceder a través de la intranet o físicamente en el caso de que no tuviésemos acceso a la intranet. Utilizando este modelo no será posible acceder a ellos dentro de la empresa.

Necesitaremos una buena conexión de red en nuestros servidores ya que si nuestra red es lenta nuestros servidores tardarán considerablemente en devolver o ejecutar nuestras peticiones, con lo que nos retrasarán en la realización de cada tarea.

Tenemos que ser conscientes de que muchas peticiones a los servidores formarán un cuello de botella en la red sino tenemos un ancho de banda considerable. Así pues, no todas las soluciones de Cloud Computing serán buenas para nuestra empresa, debemos de garantizar que podemos trabajar correctamente con los servidores.

Además dependiendo de la información que vayamos a tratar con nuestros servidores necesitaremos una conexión segura, ya que los datos serán más vulnerables de ser capturados por terceras personas, así pues debemos de utilizar conexiones seguras y encriptados para transmitir los datos con nuestro servidor en la nube.

También contaremos con que la información de la empresa estará en manos de terceras personas o de personas ajenas a la empresa, con lo que esto conlleva. Aunque hay una legislación vigente para tratar estos temas, por lo general las legislaciones suelen ir un poco desactualizas en cuanto a los problemas que pueden surgir en internet.

Conclusión y opinión personal

En conclusión, el Cloud Computing es la apuesta por la externalización de los servicios y servidores a una empresa externa que se encargaría de administrar nuestros servidores.

En mi opinión creo que todavía las empresas no están totalmente familiarizadas con este tipo de servicios, pero con el tiempo se mejorarán los servicios y las empresas estarán más familiarizadas con trabajar en la nube.

Una de las características principales que podemos encontrar muy llamativa en el Cloud Computing para una empresa que esté comenzando es que los gastos son mucho más pequeños utilizando servidores en la nube. Así que, si la apuesta económica inicial es más pequeña de esta manera, supongo que será cuestión de tiempo el que las empresas vayan externalizando los servicios que puedan ser externalizados a empresas en la nube.

Por otro lado, en mi opinión el mayor problema que podemos encontrar en esta solución son las caídas del servidor o de la red. Las caídas del servidor se pueden solucionar si la empresa de Cloud Computing tiene replicados la información en otros servidores. No obstante la caída de la red nos dejara sin servidores en la empresa, pudiendo ocasionar que en el tiempo que dure la caída no podamos trabajar si dependemos de los servidores que están en la nube.

Finalmente supongo que muchas de las empresas optarán por una solución hibrida entre tener servidores en la nube y otros servidores en la propia empresa, consiguiendo beneficiarse en mayor o menor medida de ambas soluciones.

 

Más información en la Wikipedia Cloud Computing

Leer más

Definición de Socket

Socket

Un socket es un mecanismo que permite la conexión entre distintos procesos, habitualmente se utilizan para establecer comunicaciones entre distintas máquinas que estén conectadas a través de la red.

Cuando utilizamos Sockets para comunicar procesos nos basamos en la arquitectura cliente y servidor. Así pues, estableceremos dos Sockets uno será la parte servidor y recibirá la transmisión del cliente y otro será la parte cliente que recibirá la respuesta del servidor.

Cómo funciona un Socket

El siguiente procedimiento muestra cómo funciona un Socket:

Primero: Tenemos que poner en funcionamiento el proceso que se encargará de recibir los datos, el cual estará a la espera de recibir la comunicación del cliente.

Segundo: Ejecutamos el proceso cliente, que será un socket encargado de enviar datos al servidor que se encuentra esperando nuestra conexión.

Tercero: Por último, el cliente realizará una petición al servidor y el servidor gestionará la respuesta que quiere darle. Y finalmente, el cliente recibirá la respuesta del servidor.

Tipos de Socket

Dependiendo el protocolo con el que vamos a realizar la conexión, tendremos dos tipos de Socket, los que utilizan el protocolo TCP, y los que utilizan el protocolo UDP.

El protocolo TCP tiene las siguientes características:

- Está orientado a la conexión.
- Garantiza la correcta transmisión de los ficheros.
- Mantiene el orden de los ficheros en la transmisión.
- Cuando llegan los paquetes el receptor emite un mensaje de recepción (ACK).

El protocolo UDP tiene las siguientes características:

- No está orientado a la conexión.
- Los datagramas o paquetes pueden viajar en cualquier orden.
- No garantiza que lleguen todos los paquetes.

En este artículo puedes ver un ejemplo de socket hecho en Java.

Leer más

Interrupciones en la Arquitectura CISC | Ejemplo RSI

Interrupciones en la Arquitectura CISC

En este artículo explico con un ejemplo el tiempo total que tarda la CPU en realizar una tarea de Entrada Salida de datos.

El procesador tarda un tiempo en realizar una tarea de Entrada o Salida de datos, para esto el dispositivo que quiere realizar una transferencia envía una señal al procesador.

Después de que el procesador reciba la petición para realizar una interrupción y transferir esos datos, comienza el ciclo de reconocimiento de la interrupción. Este ciclo sirve para que el procesador deje de hacer lo que está haciendo y pase el control al RSI (Rutina de Servicio de la Interrupción).

Para hacer los cálculos de este ejemplo vamos a utilizar una máquina con las siguientes características:

Interrupciones en la Arquitectura CISC-RSI CPU

Suponemos que un disco duro quiere transferir datos a la memoria del procesador, sabemos que el tiempo de latencia del disco es de 3 microsegundos. La velocidad de transferencia del disco será 20Mb/s. El procesador tiene una frecuencia de 2 Giga Hercios. El servicio de interrupción de rutinas (RSI) ejecuta 10 instrucciones de 3 ciclos de reloj cada una. La CPU necesita 8 ciclos de reloj adicional entre que detecta la interrupción y le pasa el control al RSI. Los tiempos de programación y finalización de la transferencia son de 20ns. . Por último sabemos que la transferencia será de 1000 datos de 4Bytes cada uno.

Para conocer el tiempo total que tarda la CPU en realizar toda la transferencia de datos tenemos que realizar las siguientes operaciones:

Primero conoceremos cuanto tiempo tarda el procesador en realizar un ciclo de reloj, para esto dividiremos 1 entre la frecuencia que tiene el procesador, que es 2 GHz. Por lo tanto, podemos saber que la CPU tarda 1/2 =0.5 en realizar un ciclo de reloj.

Sabemos que tarda 8 ciclos de reloj desde que detecta la interrupción hasta que le pasa el control al RSI, si tardamos 8 y cada ciclo es de 0.5 nano segundos, tendremos 8*0.5=4ns.

Ahora queremos conocer el tiempo que tarda en ejecutar una instrucción, que será 3 ciclos de reloj multiplicado por 0.5ns., el resultado es 1.5ns.

Después calcularemos el tiempo de ejecución RSI, que será 10 instrucciones multiplicado por el tiempo que tarda cada instrucción que es 1.5, por lo tanto será 10*1.5=15ns.

Por último, tenemos que realizar 1000 interrupciones, que multiplicado por el tiempo que tarda en ejecutar cada una (RSI) será igual a 1000*15=15000ns
15000ns que añadidos al tiempo que tarda en programar y finalizar la ejecución será igual a 15000+20ns= 15020ns.

Por lo tanto podemos saber que la CPU tardará 15020 nano segundos en transferir 1000 bloques de 4 Bytes cada uno, es decir, 4000 Bytes.

Leer más

Memorias caché y algoritmos de reemplazo

Memorias caché

Como hemos visto en otro artículo la memoria caché se utiliza para guardar bloques de datos que se prevé que vayan a ser reutilizados en la ejecución de un programa.

procesador, cpu, jerárquia de memorias

La memoria cache se encuentra localizada entre el procesador y la memoria principal, así que técnicamente es más rápido un acceso a la memoria caché que un acceso a la memoria principal.

Las distintas memorias tienen una distribución jerárquica dependiendo de la cercanía y rapidez con las que el procesador obtiene los datos, y entre ellas se establece una comunicación directa entre la superior y la inferior, es decir, si el procesador quiere obtener un dato de la memoria principal, el dato será trasladado primeramente de la memoria principal a la memoria cache y después de la memoria cache al procesador.

Dado que la velocidad de acceso a una memoria es inversamente proporcional al tamaño de la misma, las memorias cache que tienden a ser muy rápidas no pueden ser muy grandes. Por ello, la memoria cache se llenará con mucha facilidad y tendrá que ir renovando el contenido rápidamente.

Para asignar los bloques de datos que tiene que tener una memoria cache se han diseñado varios tipos de políticas de asignación y varios algoritmos de reemplazo para intercambiar bloques de datos.

Políticas de asignación de memorias

Política de asignación directa:

Cada bloque de datos de la memoria principal se encuentra alojado en una sola línea de la memoria cache.

Política de asignación completamente asociativa

Cada bloque de datos de la memoria principal se puede encontrar en cualquier línea de la memoria cache.

Política de asignación por conjuntos

Cada bloque de datos de la memoria principal se puede encontrar dividido entre distintas líneas de la memoria caché.

Algoritmos de reemplazo de la memoria caché

Los algoritmos de reemplazo son los encargados de seleccionar que línea de la memoria cache se va a reemplazar cuando la memoria caché está llena y tenemos que asignar una línea de la memoria principal en la memoria caché.

Cada vez que el procesador accede a la memoria cache para buscar un dato y este no se encuentra en la memoria caché, se produce lo que se denomina fallo en la memoria cache, entonces ocurre que tenemos que ir a buscar ese dato a la memoria principal, obtener la fila en la que se encuentra y llevar este bloque de datos a la memoria caché
La memoria caché directa es la única que no utiliza ningún algoritmo de reemplazo, puesto que cada bloque ocupará una sola línea, y la asignación es directa.

Los ejemplos que vienen a continuación son para memorias caché completamente asociativas.

Los algoritmos de reemplazo más utilizados en las memorias caché son los siguientes:

FIFO:

Este algoritmo es el clásico, “first in, first out”, primero en entrar será el primero en salir.
La utilización de este algoritmo no es muy eficiente, ya que una línea que lleve mucho tiempo en la memoria cache no tiene porque no utilizarse más que una que acabe de entrar.
Utilizando FIFO se irán reemplazando las líneas de la memoria cache que lleven más tiempo por las nuevas.

LFU:

Con este algoritmo se irán reemplazando las líneas que se hayan utilizado menos veces por las nuevas.

LRU:

Este algoritmo reemplaza las líneas que hace más tiempo que no se utilizan por las líneas nuevas que necesita el procesador.

Leer más

Clasificación de Sistemas de memoria

Clasificación jerárquica de los sistemas de memoria

La jerarquía de memorias se usa para mejorar el rendimiento de los distintos tipos de memoria. Para lograr esto y
optimizar los tiempos en los que el procesador obtiene un dato de la memoria se organizan los distintos tipos de memoria por jerarquías. Hay que tener presente que la memoria cuanto más cerca esté del procesador tardaremos menos tiempo en obtener los datos que contiene. Debido a esto la memoría quedará organizada de más rápida a más lenta que por regla general tambien mantendrá el orden de más pequeña a más grande (en cuanto a tamaño de almacenaje).

Por lo general, cada nivel jerárquico de memoria solo se puede relacionar con los niveles anterior y siguiente en el orden jerárquico.

procesador, cpu, jerárquia de memorias

La distribución jerárquica que tienen las distintas memorias ordenados de más cerca a más lejos del procesador es la siguiente:

Registros del procesador

Se encuentran integrados dentro del propio chip del procesador.

Memoria Cache

Se encuentran en el procesador o muy próximos a él y se guardan los datos que se prevén que vuelvan a ser utilizados.

Memoria Principal

Es la memoria en la que se guardan los datos de los programas que se están ejecutando. Además es muy accesible para el programador a través del espacio de direcciones.

Memoria Secundaria

Esta es la más lejana al procesador, y está formada por multitud de tipos como pueden ser discos duros, memorias flash, DVD, etc.

Acceso a la memoria

Dependiendo del tipo de memoria podemos encontrarnos con diferentes tipos de accesos.

Secuencial: Obtenemos la última posición y vamos desplazándonos de una a otra posición hasta llegar a la posición que queremos.

Directa: Dividimos la memoria en distintas partes o bloques y accedemos al bloque en cuestión a través del número que tiene cada bloque, nos posicionamos en el bloque y desde ahí nos desplazaremos secuencialmente hasta encontrar el dato que queremos.

Aleatoria: La memoria sería como un Array de una dimensión y accederíamos a la posición del Array que queremos para obtener los datos.

Memorias volátiles y no volátiles

Las memorias que pueden mantener los datos sin necesidad tener corriente eléctrica se denomina memoria no volátil, entre la que están los discos duros, memorias flash, etc.

Por otro lado la memoria que no puede mantener los datos son las memorias volátiles como la memoria RAM.

Leer más

Realidad aumentada Google Project Glass

Desde hace algún tiempo se pueden ver por la red videos de realidad aumentada, muchos de ellos utilizando dispositivos móviles.

Ahora Google va un paso más lejos y nos presenta Google Project Glass.
En este proyecto Google nos quiere mostrar su particular visión de la realidad aumentada y las ventajas que puede tener.

El prototipo es francamente bueno y según Google tardará al menos dos años en salir, el video muestra los detalles para que os podáis hacer una idea.

[youtube]http://www.youtube.com/watch?v=9c6W4CCU9M4&feature=youtu.be&hd=1[/youtube]

No obstante, el autor de este video “ADmented Reality – Google Glasses Remixed with Google Ads” nos muestra como finalmente será el dispositivo de Google si llega a ver la luz, en el que obviamente la realidad aumentada estará vinculada a muchísima publicidad.

[youtube]http://www.youtube.com/watch?v=vX_z3CdNhMU[/youtube]Leer más

Recuperar Pc Packard Bell

Los Pc Packard Bell tienen una partición oculta o un disco maestro en el que hay una copia de seguridad que contiene el sistema operativo, los drivers y los programas que el Pc trae de fábrica, si por alguna razón necesitas dejar tu Pc como estaba originalmente podrás hacerlo utilizando esta partición.
Esta partición también puede servirte para reparar el sistema operativo, aunque la reparación automática de Windows no suele dar buenos resultados.

Recuperar Pc Packard Bell | ¿Cómo recuperamos el sistema?

Cuando encendemos el equipo y sale la pantalla de bienvenida de Packard Bell debemos presionar la tecla F11 o Ctrl+F10 o Alt+F10, dependiendo del modelo de tu portátil.

Hecho esto entraremos en la pantalla de “Recuperación de Packard Bell”, esta pantalla nos presenta varias opciones para recuperar nuestro sistema, estas son: reparación de Windows, reinstalación de Windows (sin perder los datos de los usuarios) y reinstalación de Windows “Total” (formateará el disco duro perdiendo todo el contenido que haya en el mismo).

recuperacion packard bell pc portatil

Seleccionamos la opción que más nos interese y el PC comenzará el proceso de restauración de los datos, después de unos 30 o 40 minutos el equipo se recuperará o se restaurará a su situación inicial.
Ahora tendremos nuestro Pc como vino de fábrica.

Leer más

Mejorar el rendimiento de tu conexión wifi.

Mejorar Wifi

Antes de empezar a tocar la configuración sería conveniente que actualizaseis el driver de vuestro adaptador wifi con el fin de obtener algunas mejoras. Después de tener la última versión modificaremos la configuración para obtener el máximo rendimiento.

Algunos portátiles para aumentar el tiempo de duración de la batería, bajan la potencia del adaptador wifi, para esto dejan por defecto la potencia de tu adaptador en el mínimo, si en tu casa o sitio habitual donde te conectas a tu red wifi tu notebook se cae con demasiada frecuencia te será conveniente mirar las especificaciones de tu adaptador, esto lo puedes hacer desde el administrador de dispositivos -> adaptador de red -> propiedades.

Si tu adaptador lo permite, cambia la configuración al máximo. Dependiendo del adaptador estará en algo parecido a power safe, power, dinamic

wifi - power safe

Por otro lado, si desde donde tú te conectas hay muchas otras wifis, pueden provocar interferencias que pueden llegar a producir continuas caídas, podemos evitar esto cambiando de canal la emisión del router.

Habitualmente las ISS configuran sus router para emitir por los mismos canales, dependiendo de la legislación del país, así que si utilizamos un canal que no lo utilicen todos tus vecinos lograremos tener una conexión más estable.  Hay un montón de programas que te dicen porque canales están emitiendo y así facilitarte que canal escoger.

Para cambiar el canal lo tienes hacer a través de tu router, en mi caso de tele2, buscas tu puerta de enlace y  le añades :8063 , te quedará algo así:    192.168.0.1:8063, después te pedirá tu usuario y contraseña, pones USER y tu contraseña (en tele2) y por último te vas a donde asigna el  canal y escoges uno del 1 al 13 que no esté muy solicitado. Si no sabes cual es la puerta de enlace abre la consola y pon ipconfig.

ipconfig cmd

Además, advierten que para que haya una buena conexión, el portátil no debe de estar cerca de aparatos que puedan emitir interferencias con la señal, móviles, microondas, etc.

Leer más

Recuperar PC ACER con PQservice.

Introducción a PQservice en ls PC ACER

Los Pc ACER vienen con una partición oculta, en la que viene instalado el software original del equipo que podemos acceder a ella utilizando el PQservice.

Esta partición trae entre otras cosas el la versión de tu sistema operativo windows, los drivers y las aplicaciones de Acer originales, con esta partición podemos restaurar nuestro equipo a su primer día utilizando PQservice…

Esta partición es util cuando: falla el sistema operativo, no se puede arrancar o es necesario volver a tener el pc como estaba originalmente. En estos casos se puede reinstalar el software original desde la partición oculta de Acer (PQservice).

pqservice pc acer particion

¿Cómo recuperar con PQservice un PC ACER?

Arrancamos desde cualquier cd de arranque, hiren’s cd, ubcd, etc, desde el cd de arranque buscamos una aplicación que nos permita acceder a los discos duros (Partition Magic, PTEDIT, Partition Wizard…).

Desde aquí podremos ver que la partición PQservice está oculta, hacemos que la partición no esté oculta, y convertimos esta en la partición Activa “PQService”.

Por último reiniciamos el equipo, y listo, a esperar que se cargue Windows con el PQservice, seguimos los pasos de la instalación y después de 30 min. aprox. tendremos el disco duro restaurado a su punto inicial.

Nos pedirá reiniciar, y establecerá la partición PQservice como inactiva y oculta, es decir, la volverá a dejar más o menos como antes de comenzar el proceso de restaurar el disco duro.

Si queréis podéis dejar la partición PQservice visible pero no puede ser la partición activa porque repetiría el proceso hasta que no esté como partición activa y cargue la partición que tiene el sistema operativo.

Leer más

Kinect hackeado

Leemos en laflecha.net, que un grupo de hackers ha conseguido crear un driver libre y abierto para Kinect, lo último de lo último en videojuegos. Ha sido durante un concurso en el que el premio eran 2000$ al que consiguiera crear dicho driver. En el siguiente video podemos ver cómo Kinect capta el movimiento en Windows 7:

[youtube]http://www.youtube.com/watch?v=18vSblw5SNk[/youtube]

Pero ahí no acaba todo…

Leer más