Etiquetas
bots agresivos, mysql, optimización apache, optimización wordpress
En los últimos días varias personas con servidores propios –fundamentalmente de wordpress– me pidieron ayuda para reducir la carga de sus servidor o mejorar los tiempos de respuesta. Una de las últimas frecuentes era «porqué a veces la carga del servidor subía mucho». Asumiendo que el servidor está bien configurado y balanceado [1], el problema suele ser por los «bots demasiado agresivos».
[1] Ver abajo Diez reglas básicas para servidores web bien ajustados
El aumento del ancho de banda en las conexiones hogareñas, las pruebas «académicas» y de prácticas desde universidades –en España sus líneas suelen superar creces los 100 Mbps– y los bots de los harvesters de spammers hace que debamos también monitorizarlos e impedir que su molestia sea persistente.
Aunque hay métodos en las iptables y Apache para controlar el número de conexiones —connection throttling— a veces es muy difícil encontrar un valor adecuado sin que genere problemas a conexiones válidas. Incluso puede haber problemas de memoria –de las iptables, que las asigna en el espacio del kernel– en servidores que no tienen suficiente.
Por ello a veces es más fácil analizar los logs de Apache en situaciones de alta carga para detectar desde qué direcciones IP se están haciendo tantas conexiones y agregar una regla a las iptables para hacer in drop a paquetes desde esa dirección.
En Menéame es bastante habitual que nos aparezca un bot de estos y que sus conexiones duren bastante tiempo mientras recorre absolutamente todos los posibles URLs. Como estos son centenares de miles, la «agresión» suele durar horas o días, así que me preparé un pequeño script en Python que me permite analizar el número de conexiones desde cada IP.
#! /usr/bin/python import fileinput import re to_ignore = ['/img/', '/js/', '/css/'] # Los cgi o directorios a ignorar ips = {}; res = [] try: for s in to_ignore: res.append(re.compile(re.escape(s))) for line in fileinput.input(): words = line.split() for r in res: if r.search(words[6]): break else: try: ips[words[0]] += 1 except KeyError: ips[words[0]] = 1 tuples = ips.items() tuples.sort(lambda (k1,v1),(k2,v2):cmp(v2,v1)) for ip, counter in tuples: print '%-8d\t%s' % (counter, ip) except IOError: pass
El programa anterior analiza el logs del apache desde la entrada estándar o los ficheros que se indiquen en la línea de comandos e imprime una tabla de números de conexiones de cada IP.
Yo lo suelo usar de la siguiente forma:
tail -1000000 /var/log/apache2/meneame_net.access.log | ./freq-ip.py | less
aunque también se puede hacer:
./freq-ip.py fichero1.log fichero2.log …
Nota: aunque el ejemplo es con las últimas 1.000.000 de líneas, elige un valor adecuado a tu servidor, por ejemplo si te interesa analizar los últimos 5 minutos y tienes unas 100.000 conexiones en ese período, ese es el valor que debes poner como argumento del tail.
El resultado es una tabla ordenada de mayor a menor, por ejemplo:
22759 66.249.72.103 914 62.43.58. xxx 837 84.77.96.xxx 645 89.248.99.xx 522 65.214.44.xx 486 89.17.210.xx 483 72.14.199.xx ...
Las IPs que aparecen primeras son las sospechosas de bot agresivos, pero hay que analizarlas con el whois para asegurarse. En el resultado anterior se puede observar claramente que la dirección 66.249.72.103 es sospechosa, pero en este caso no hay que hacer nada porque es el bot de Google (el de búsquedas y el del AdSense). Pero si se trata de una IP que no pertenece a ningún buscador o directorio conocido, o que viene de países como China o Ucrania, seguramente se trate de un bot incontrolado o mal programado.
En todo caso siempre conviene analizar el historial de los logs para asegurarse:
tail -1000000 /var/log/apache2/access.log | grep ^66.249.72.103 | less
Una vez que estés seguro que quieres evitarle los accesos, basta agregarlo en las iptables. Yo tengo preparado un script que lee las IP «prohibidas» desde un fichero y ejecuta los comandos de las iptables:
#! /bin/sh iptables -F # START Drops from ip_forbiden for ip in `cat /DIRECTORIO/ip_forbiden` ## AQUI el pathname del fichero do if [[ "$ip" =~ "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" ]] then echo Dropping $ip iptables -i ethX -A INPUT -s $ip -j DROP ### AQUI la interfaz que corresponda, eth0 o eth1, etc. fi; done # tus reglas propias ...
Diez reglas básicas para servidores web bien ajustados
Al principio mencioné que primero debemos asegurarnos que el servidor web está bien configurado y ajustado para nuestras necesidades. En realidad no es tan difícil ajustar los parámetros básicos del Apache.
- Asegúrate verificando en el error.log si el Apache no llega al número máximos de procesos. Si es así debes incrementar el máximo, por ejemplo: MaxClients 150
- Algunas distribuciones, como Debian, tiene el máximo «absoluto» en 256 procesos, si necesitas más debes cambiarlo: ServerLimit 512
- Habilita el KeepAlive, pero ponle un timeout bajo: KeepAliveTimeout 2
- StartServers debe tener un valor adecuado, que sea ≥ que MinSpareServers y ≤ que MaxSpareServers. Por ejemplo : StartServers 40, MinSpareServers 30, MaxSpareServers 50
- MaxSpareServers debe ser mayor en al menos un 50% el valor de MinSpareServers.
- El PHP puede consumir mucha memoria en algunas conexiones (subida de ficheros, compilación de muchos módulos, etc.) y no las libera hasta que «muera» el proceso. Por eso es mejor que los procesos de Apache tengan una «vida limitada» para permitir liberar esa memoria que no se necesita: MaxRequestsPerChild 10000. Ajusta el valord de 10.000 a tus propias necesidades, si tu servidor tiene muchas conexiones puedes subirlo, por ejemplo a 1.000.000 como en el caso del Menéame.
- Para saber mejor cuál es el problema de tu servidor usa los comando top y vmstat 2. El primero te dará el uso de CPU de los procesos, si es el mysqld el que aparece con casi el 100% de CPU, el problema es de base de datos, por el contrario se trata del PHP. El vmstat te dará más pistas, si los valores de la columna wait (la última, wa) son altos, es porque necesita mucha entrada salida, necesitas más memoria RAM. Si por el contrario las valores de la columna idle (la penúltima, id) son muy bajos necesitas más CPU.
- El WordPress no es un gran consumidor de CPU en base de datos (a menos que ésta sea inmensa), sino de CPU para compilar todos los módulos para cada conexión. Si tu problema es de carga alta de CPU lo más probable es que necesites usar «cache» de PHP compilados, por ejemplo el eaccelerator.
- Si tienes instalado el WP-Cache, éste evita que se tengan que compilar todos los módulos en el caso de encontrarse la página en cache.
- Si el el Mysql del WordPress te consume mucha CPU lo más probable es que sea algún plugin (especialmente esos que guardan estadísticas en la base de datos) o que tengas muy poca memoria RAM disponible para cache de disco. Pero primero analiza o deshabilita los plugins sospechosos.
- Si has desarrollado tu propio programa y el Mysql te consume mucho, tienes problemas de SQLs, índices o problemas de estructura de la base de datos. recuerda la regla de oro en programas web con base de datos (general para cualquier gestor): debes evitar a toda costa los recorridos secuenciales en las tablas. Para eso debes ser muy cuidadoso en la creación de los índices adecuados o de cómo haces las consultas SQL. Si no puedes asegurarte de ello tienes dos opciones primordiales para el caso que las modificaciones a las tablas no sean muy frecuentes:
- Jugar con los valores de cache de queries sql en el propio gestor (query_cache_size y query_cache_type en el Mysql).
- Usar memcached.
No entiendo nada
Si lo que te comento arriba te suena a chino:
- Quizás no deberías haber contratado un servidor dedicado si eres capaz de administrarlo y ajustarlo, o
- deberías estudiar un poco de administración de servidores, especialmente del Apache, MySQL e iptables, o
- podrías pedir ayuda a un amigo, o menor aún para evitar la proliferación de pringaos, contrata a un amigoo conocido de confianza por unos 50-60 euros la hora (tarifa española más o menos adecuada) que sepa del tema y te ajuste el servidor. Si tiene que hacer todo lo que explico aquí, le llevará más o menos una hora para ajustar, y monitorizar para asegurarse que los valores son adecuados.
Muchisimas gracias Ricardo 🙂 Gracias gracias y gracias 🙂
Buena recopilación de puntos, gracias por compartirlos 😉
Has probado mod_security para apache a la hora de parar bots? A mi me funciona bastante bien.
Sobre IP’s maliciosas y añadirlas a las iptables en tiempo real conozco mod_evasive, pero no lo he probado.
Saludos!
Pingback: meneame.net
#2
Ambos son buenas soluciones para evitar las sobrecargas por bots, sobre todo el mod_evasive que fue pensado justo para eso.
Aunque tienen sus problemas, en nuestro caso si el período es largo baneará al bot de Google, y si el período es muy corto también en páginas como la fisgona o conexiones corporativas (como Indra o los periódicos). Alguna vez lo he probado unos minutos y no logré dar con parámetros adecuados (en minutos recibí mails de varios que no se podían conectar). No supe hallar, o no tuve la paciencia o tiempo, y lo dejé para hacer lo que explico aquí.
Luego ambos consumen más memoria para el «tracking», aunque tampoco creo que sea mucho problema.
Pingback: meneame.net
No se por qué pero esperaba encontrarme mi ip en esa lista 🙄
Pingback: Gestión de Servidor web | Desarrollo Web, Django, Python, Web2.0 | Culpable de mis opiniones !!
Molt bons consells, gràcies!
I que netet i entenidor t’ha quedat l’script en Python, té de tot, fileinput, us d’expressions regulars, ordenació amb funció lambda incorporada, …
Per mi és la diferència entre fer aquests tipus de coses en Python o en qualsevol altre llenguatge. Les escrius, les rutines solen ser curtes, queden legibles tant per tu com per la resta dels mortals i després d’uns quants mesos quan l’has de modificar encara ets capaç de saber que feia.
Ho tenia que dir, per mi que Ricardo programi en Python és equivalent a quan Guido Van Rossum va dir que li agradava el Django com a framework! 🙂
En realidad la primera regla hay que tomarla con cuidado. Si bien es cierto que aumentar el número de MaxClients ayuda a reducir el tiempo de respuesta de las peticiones al tener más clientes concurrentes, aumentar ese número sin vigilar el consumo de memoria de Apache puede ser perjudicial.
Si el consumo de memoria de cada instancia de Apache multiplicado por el número de instancias concurrentes supera la memoria disponible en el sistema (suponiendo que el resto de procesos apenas consumen memoria, lo cual es mucho suponer porque mysql necesitará al menos parte de ella), empezaremos a tirar de swap y el rendmiento se hirá por el desagüe.
Así que aumentarlo sí, pero con cierto control sobre la memoria consumida y su efecto sobre la paginación.
Saludos. Iñaki.
De la media docena de informáticos que conozco no creo (vamos más bien estoy convencido de ello) que ninguno sepa ni papa de lo que has expuesto, así que ni 50 euros la hora ni leches.
Vaya gracias, la verdad es que todo lo que habias comentado lo habia puesto en practica menos el control de los bots. Yo personalmente me hice un protector mediante sesiones (si cargas mas de x paginas por minuto te vas al carajo, si cargas una misma pagina dos veces en menos de 2segs tambien) pero el tema de controlar a los bots no lo habia pensado puesto que daba por supuesto que usaban proxys diferentes. Me he apuntado el link para tenerlo guardadito jejeje
Yo despues de hacer todo este tipo de cosas y muchas de otro tipo seguia teniendo problemas de saturacion (un servidor de 100$ no da para mucho, al final tenia uno de 500$ en dedicated place) al final el tema se convertia en problemas de lectura de disco (demasiada cache, imagenes y mensajero instantaneo) me termine cargando varios discos duros (tendrian que ser d elso chinos aunque fuese de layeredtech)
El miedo que tengo para crear un nuevo servicio en esta etapa de mi vida es sobrepasar todos esos limites. ¿Que hacer despues? ¿clusters? ¿lo hacen los de la empresa de hosting? Da un poco de miedito encontrarte con un trafico brutal que sobrepase cualquier servidor por potente que sea. Por ejemplo a la hora de sobrepasar el limite de la tarjeta de red.
¿Cuantos servidores tienes en meneame? ¿tienes uno para graficos, otro mysql, otro php, otro… ?
No se porque pense que meneame no usaria apache sino algun otro servidor menos pesado
Pingback: Entradas en las blogosferas.60 - Carrero Bitácora de los Hermanos Carrero, David Carrero Fernández-Baillo y Jaime Carrero Fernández-Baillo.
Bueno, voy a hacer alguna aportación complementaria, para que (a quien le interese) implementéis mediante scripts unos sensores (chivatos) que os avisen por email del estado de la memoria y CPU en caso de rebasar unos límites establecidos, seré breve:
———————
«miraestado.sh»
while [ 1 ]
do
date >> estado_maquina
vmstat -t 100 10 >> estado_maquina
./chequeoCPU.sh
done
———————
«chequeoCPU.sh»
fich=»/usr/daemons/estado/estado_maquina»
limiteCPU=58
limiteAlarma=11
limiteMem=802816 ### este valor se corresponde con el 80% de la memoria fisica total
correo=`cat AgendaCorreo`
num1=`tail -24 $fich|awk -v h1=$limiteCPU ‘$18 ~ /[0-9]+:[0-9][0-9]:[0-9][0-9]/ {if ($16 < h1) {sum+=1}};END {print sum}’`
num2=`tail -1 $fich|awk ‘{print $3}’`
if [ $diferencia -ge 31 ]
then
if [ -n «$num1» -a «$num1» -ge $limiteAlarma ]
then
echo «En los últimos 30 minutos se han registrado $num1 valores anormales en la CPU de $maquina. Comprobad que esta ocurriendo.» | mail -r «correo@miservidor.es» -s «Posibles problemas de CPU en $maquina» $correo
fi
if [ -n «$num2» -a «$num2» -ge $limiteMem ]
then
echo «La memoria fisica utilizada en $maquina tiene un valor de $num2. Este valor es superior al 80% de la memoria fisica total de la maquina. Comprobad que esta ocurriendo.» | mail -r «correo@miservidor.es» -s «Utilizacion de mas del 80% de memoria en $maquina» $correo
fi
fi
———————
Ambos procesos deben estar lanzados siempre. Podeis utilizar cientos de utilidades diseñadas a tal efecto que controlan los procesos mediante el pid u algún otro patron.
Por supuesto, todo esto siempre será sensible a mil mejoras.
PD: el fichero AgendaCorreo contiene una lista de emails de la gente que administra el servidor. Nuestro sensor avisará a todos ellos, esperando a que al menos uno se ponga las pilas 😉
#Jose
Te recomiendo que mires Nagios (nagios.org), es para monitorear redes y hosts… y te puede enviar mails,sms…
Menudo pedazo de post que has puesto. Increíble, una configuración típica de un FP, menuda obra de ingeniería con la que nos estás deleitando. No deberías haber cerrado el hilo anterior, lo único que veo positivo en tu persona es que aceptas las críticas, pero si cierras hilos, poco positivo te queda.
Respecto a desprestigiar la profesión… decir que el título de Ingeniero en Informática no sirve para nada es enardecer la titulación ¿?, decir que cualquier titulado en derecho, en físicas, matemáticas o geografía e historia está igual de preparado que un titulado en ingeniería en informática no es desprestigiar la profesión… ¿? Tienes un serio problema de comprensión.
Poner un algoritmo en C y pedir que te comenten lo que hace es una verdadera labor de ingeniería ¿?, para mi es una labor de un FP. Te vuelvo a comentar, ¿dónde obtuviste tu título de ingeniería?, me gustaría saberlo…
Con tus opiniones estás dando una imagen muy buena a la universidad en la que trabajas, una imagen muy pero que muy positiva y de calidad. A mi ya me has convencido para no recomendar tu universidad a nadie, personalmente para mi has desprestigiado a tu universidad y de mi parte poca recomendación van a recibir. Pero cada uno es responsable de lo que tiene y de lo que hace, pero de prestigio para mi muy poquito, poquito, poquito. Un algoritmo en C y una configuración para un servidor Web, una verdadera labor de ingeniería, o ¿quizás mejor dicho de FP?.
Sandman, no hace falta trollear de esa forma. Te noto tan quemado que no eres capaz de distinguir entre un proyecto de ingeniería de software con un apunte en un blog sobre un pequeño truco (tampoco has sido capaz de saber qué era o hacía el algoritmo de cálculo de «runtime esperado» del quicksort).
No es de extrañar, viendo qué, cómo y dónde, http://www.ingenierosdeprimera.com/blog/546
Y no te preocupes, aunque no «recomiendes» mi universidad yo sí te recomendaré a todas las grandes empresas informáticas que pueda, tu CV, experiencia, proyectos realizados y tu ética profesional me han convencido 🙄
A los que no te gusta lo que dicen, ¿les llamas troll?. Hombre, yo no te considero un troll aunque para mi te me asemejas bastante a un troll pero gordo, gordo de cojones, con blog y todo. Hablas como un crío pequeño, era lo que me faltaba estar como los críos, mira a ver si ves un algoritmo, mira a ver si tal o cual, aquí estamos hablando de temas mucho más importantes que un algoritmo en C, estamos hablando de la Ingeniería en Informática como profesión y como Ingeniería y tu te dedicas a decir que no sirve para nada, que cualquiera puede ejercer y para más cachondeo eres profesor de Ingeniería en Informática, trae un poco de pitorreo el tema, ¿quién es el TROLL?, ¿yo que defiendo la Ingeniería en Informática o tú que la impartes y la desprestigias?, ¿llegas a comprender eso?, ¿necesitas que te lo ponga con un algoritmo en C o en C++?.
El link que estás poniendo no es a un blog propiamente dicho, son comentarios a como van evolucionando otros comentarios en el sitio Ingenieros de Primera, si lo lees de seguidillo sin haber visto como iban evolucionando las distintas entradas en Ingenieros de Primera, el blog es bastante carente de sentido. No puede ser considerado como un blog ya que no ha sido escrito como un blog. Son sólo comentarios sueltos y por tanto carentes de sentido como conjunto, yo mismo si los leo de forma separada no los corroboro. No los he borrado porque dentro del conjunto de todo el sitio sí que tenían sentido y rompería la estructura del sitio web, pero no son para leer como blog. Si quieres ver mis opiniones busca mis entradas en el sitio y no en el blog, son mejores 😉
Pero no has respondido, ¿se puede saber que haces impartiendo clases en una ingeniería si no crees en la validez de esa ingeniería?. Porque yo puedo entender que defiendas el software libre, puedo entender que estés contra los colegios profesionales, pero no puedo entender que haces impartiendo clases en una ingeniería si crees que no sirve para nada…
SandMan pq intentas desprestigiar a los FP?? francamente he trabajado con muchos de ellos y son unos professionales de primera categoria, como los Ingenieros, aunque hay que decir que en todos lados hay de todo
SandMan, me parece que solo dices tonterías. Si lees con atención y sentido común te darás cuenta de que Ricardo no intenta desprestigiar la Ingeniería Informática; creo que su objetivo, como el de muchos de nosotros, es mejorarla. Y si criticar los defectos de los planes de estudio y el de organizaciones gremiales que tienen unos objetivos que no comparte (como el de otorgar a quien tenga un titulo poderes casi sobrenaturales) es atacar a la ingenieria, creo que es culpable.
La crítica mordaz es necesaria; leete este artículo[1] y dime si sigues pensando que sólo ataca a la ingeniería. Siento actuar como un fanboy, pero con tus trolleadas me lo llego a tomar como algo personal. Tengo la suerte de tener a Ricardo como profesor y en sus clases disfruto como un enano, no sólo por que la asignatura de Sistemas Operativos es realmente interesante, si no por que sabe transmitir este espiritu hacker de la verdadera informática. Y oir a alguien despotricar de esta manera tan irracional me resulta extremadamente molesto.
[1] http://mnm.uib.es/gallir/posts/2007/08/28/1163/
#SandMan
Como dije en el anterior post: no me representais!! no con vuestros metodos, no con vuestros comentarios, meteoslo en la cabeza…
Me entro curiosidad hace un tiempo con el tema de los colegios, a raiz de una charla distendida en una cena con unos amigos, uno de ellos ingeniero electrico, nos contaba la anectoda que tuvo que comprobar unas obras (era un contrato publico, cosa gorda, relacionado con el ave): revisar toda la instalacion y demas cosas… y firmar que todo estaba correcto y en orden. Pues hicieron tales chapuzas que se nego a firmar y claro, ahi se lio la de dios, con gritos, amenazas de denunciarle, de hacer que le despidieran… pero se mantuvo firme, y nos contaba que entre otras cosas, llamaron a su curro para presionar, pero ni caso, -incluso que en el caso que la empresa para la cual trabajaba le presionase no cederia, tenia pensado recurrir al colegio para que le prestasen apoyo legal…- (al final no hizo falta, en su curro le dieron la razon, y la otra empresa-chapuza tuvo que ceder), esa proteccion, esa seguridad, ese empeño por hacer las cosas bien, es lo que me gustaria ver en mi sector… eso fue lo que me impulso buscar informacion.
(La mayoria de ellos eran ingenieros, y todos estaban de acuerdo con la necesidad de un colegio…)
Total, que decido informarme como esta el tema en el sector…
Y que me encuentro? Me encuentro con vosotros, despreciando e insultando a la gente… asi quereis convencer? siento verguenza ver esta clase de comentarios… Ricardo es doctor en informatica, pero como no defiende la idea de colegio, que haceis? pues insultar y desprestigiar… asi no quiero un colegio, de esta manera NO!!!
P.D.: Viendo comentarios bastante razonados, entre otros, de Ricardo, parece que no es tan facil regular la profesion… segui buscando y encontre una solucion que parece estar bastante bien(que se aplica en unos cuantos paises entre ellos Inglaterra), para mas inri lo encontre en vuestra pagina (tiene cierto tono sesgado pero se puede leer):
http://www.ingenierosdeprimera.com/node/1198
Pingback: 17 de marzo de 2008
A veces el título es lo de menos… Hay autodidactas que son unos verdaderos genios, incluso menores de edad que ni siquiera han comenzado sus estudios reglados. No se que hacéis discutiendo eso.
Un saludo y gracias por el post Ricardo, a mi entender lo resume bastante bien
Qué lindo que es leer a alguien que no solo entiende del tema, sino que no linkea a cual sitio tiene info de lo que dice para dar a entender que sabe cuando en realidad, solo hizo un resumen.
Te felicito, me gusta la gente que enseña lo que ama hacer 🙂
Aioz.-
Muy buena entrada.
Solo queria aclarar de que hay que «indentar» bien el script de Python sino os dará errores:
movil.be/logs# ./freqip.py access.log
File «./freqip.py», line 23
print ‘%-8d\t%s’ % (counter, ip)
^
IndentationError: expected an indented block
Y es solo abrirlo con el vi y luego hacer un TAB en la linea que marque.
Nunca programe en Python, pero parece que se pueden hacer scripts bastante rápido 😉
Se podria tambien meter en una tabla en mysql por dias y luego hacer unos graficos bastante simpaticos.
Saludos Ricardo, tengo una duda respecto a meneame y las bdd en mysql. Mirando tu código (increíble por cierto, hace que me sienta insignificante -en cuanto a conocimientos-), me fijé en las creaciones de tablas… Y vi que las realizabas con MyISAM en vez de InnoDB ¿Por qué? ¿No es más eficiente controlar ciertos aspectos desde la propia bdd? (como podría ser eliminar comentarios en cascada en caso de que un artículo fuese borrado, por ejemplo) Así permitirías relaciones entre tablas, cosa que con MyISAM no es posible (o por lo menos, no lo he conseguido)
Un saludo y enhorabuena por todo tu trabajo 🙂
Añado un pd un poco tardío 😛
Leyendo los comentarios de tu blog, tus entradas (todas muy interesantes, me encanta leer a gente que tiene conocimientos y los comparte sin ningún alarde de superioridad, así da gusto), me encuentro con referencias de ingenierosdeprimera.com.
Personalmente (estuve en la ETSII de Málaga 3 años, no acabé la carrera, me vine a Alicante e hice el Grado Superior de DAI) pienso que la gente que se queja de regularización y demás, hacen algo «loable», si no fuese porque se escudan en la regularización para no tener que decir abiertamente «no soy un buen profesional». Mucha gente espera que, al acabar la carrera de Informática, le salga trabajo y cobre > 1.800euros (que para eso es un Ingeniero, claro), pero ni se molestan en adaptarse, ni en seguir aprendiendo ni nada de nada…
Si eres un buen profesional, conseguirás trabajo y éste, será reconocido (y quién sabe si admirado). Si eres un «profesional», llorarás y suplicarás para obtener un trabajo acorde a tus ganas de trabajar (es decir, poco trabajo, mucho dinero… y rapidito que soy ingeniero). Por eso, cuando leo en tu anterior entrada lo de…
[1] Afortunadamente en esas épocas la ignorancia no nos hacía tan intrépidos, no se nos ocurrió pedir regulación o colegios informáticos para suplir las deficiencias.
Me alegra saber que, un ingeniero superior (obtuviste un doctorado, no?) piensa así. Y es esto lo que me anima a finalizar mis estudios universitarios (pese a que PROFESIONALMENTE no los necesito, no me dedicaré al 100% a la programación/informática, o por lo menos durante un largo periodo… ya que tengo una empresa que mantener que no tiene nada que ver con este sector). Ojalá todos tuviesen tanta humildad y profesionalidad como la tuya 🙂
Un saludo y disculpa el offtopic 😛
Bueno, añado una cosa que no quedó del todo clara… Yo no trabajaré de informático (quizás), pero no me importaría desarrollar soft libre y gratuito, si así consigo que más gente pueda disfrutar de la tecnología. Y si finalmente trabajo de informático, pues no me rasgaría las vestiduras si cobro 1400euros por programar (en vez de dirigir proyectos, como se comenta), ya que estaría haciendo algo que me gusta (y eso que el dinero para mi SI es importante, ya que vivo independizado desde los 20 años, tengo 23 y vivo con mi novia y tengo alquiler que pagar, coche…).
Gracias asd, pero macho, aqui los charlis no nos autorizan este tipo de aplicaciones (Nagios, CACTI, etc…) por considerarlo intrusivos para los servidores de nuestro cliente.
No se que opinareis vosotros. A mi me jode, pero bueno…
Mientras tanto, tenemos nuestros propios scripts para todo, y los cron mejor tuneados del mundo!!! 😉
#24
> Y vi que las realizabas con MyISAM en vez de InnoDB ¿Por qué?
MyISAM e InnoDB son bestias completamente diferentes. La segunda es ACID completa y tiene locks por filas y versionado para los updates, pero las operaciones de lectura son mucho más lentas que MyISAM.
> ¿No es más eficiente controlar ciertos aspectos desde la propia bdd?
Depende, es una cuestión de costes beneficios. Eficiencia y velocidad (y baja latencia) versus comodidad.
> (como podría ser eliminar comentarios en cascada en caso de que un artículo fuese borrado, por ejemplo)
NO borramos comentarios y en general la coherencia ya está asegurada por el propio código. En sitios webs con bbdd simples (como es el caso del Menéame) no hacen falta tantos «adornos» si el código está bien hecho.
> Así permitirías relaciones entre tablas, cosa que con MyISAM no es posible (o por lo menos, no lo he conseguido)
Supongo te refieres a los foreign keys, no los necesité, y de hecho ya ves, funciona. Aunque sí que hay unas pequeñas race-conditions (sobre todo en inserción de votos debido a la falta de transacciones) pero no son graves ni afectan al resultado global.
Esta «cosa» va ganando puntos día a día
http://wiki.codemongers.com/NginxEs
En cuanto a la representatividad o no de los «ingenierosdeprimero» que a nadie se le olvide que es un foro de opinión completamente libre. Quizá demasiado. Un arbol que no deja ver el bosque del malestar existente el sector.
Algo tendrá que ir cambiando o cerramos todos.
Es lindo ver como se manipula y se confunde lo que es el software libre, lo que es el colegio y lo que es degradar la profesión. Son tres cosas distintas pero que nos encanta confundir. Es muy fácil desde una posición de funcionario, con un sueldo fijo todos los meses el propagar el gratis total, pero esa es otra cuestión diferente… y decir que cualquiera puede ejercer como ingeniero en informática sin tener la titulación y luego ser profesor de una ingeniería en informática, es impresionante observar el grado de degradación de la universidad española, y luego decir que hacen falta alumnos, que la gente no se matricúla, idiotas deberían de ser para matricularse.
SandMan…please ¿Ya está…no?
¿SandMan sos un bot agresivo?
Perdón, me tentó el chiste fácil 😛
Es que leo el topic, luego sus comentarios y bue… Ya cansa…
Aioz.-
30#»Es lindo ver como se manipula y se confunde lo que es el software libre, lo que es el colegio y lo que es degradar la profesión.»
Me encuentro totalmente manipulado y confundido. Ilústrame argumentando en vez de realizar comentarios vacíos. A ver si me entero de cual es tu postura, la de Ricardo se puede deducir por lo que escribe, la tuya no.
Software «libre» (en sus múltiples variantes) que no gratis, o sólo de código/estándares abiertos vs. estúpida regulación para analfabetos tecnológicos colegiados que buscan privilegios
Cojea en algunas cosas pero para mi no está mal enfocado
http://www.ingenierosdeprimera.com/node/445
Como mínimo todo es controvertiblemente opinable 😉
Puto troll ha jodido todo el post y al final no me he enterado de cuantos servidores se usan en meneame
Al menos me he enterado que siendo autodidacta tengo una forma de pensar en la programacion similar a un doctor en informatica. Sin necesidad de pegarme el santo dia mirando un titulo que me tapa la cara y no me deja ver que no tengo ni idea y que soy un niñato dando pataletas porque soy un negado de la vida. Hay que ser absurdo para pensar que lo que estudies 5 años atras te servira 5 años despues.
SADman todo lo que estudiaste en la carrera hoy dia ya no se usa. Si no te gusta, cambia de trabajo. Pero te aviso que el puesto de rey ya esta cogido.
Los blogs de gente medianamente conocida estan petados de envidiosos
«ingeniero de primera» menudo ego, anda y vete a cagar
Yo llevo desde los nueve años en el tema de la informática, con nueve años desarrollaba en ensamblador y en basic, no desarrollaba en C porque en aquel entonces me resultó imposible adquirir un compilador de C, valían una pasta y los equipos eran demasiado caros para un chaval de 11 o 12 años que debía tener entonces. Hoy por hoy tengo 35 años, llevo con el tema unos 26 años. Primero me saqué la IT y posteriormente me decidí a sacar la II y debo reconocer que me ha dado una visión de la informática que antes no tenía ni por casualidad, aunque no precisamente obtuve esa visión en las asignaturas técnicas, sino más bien en las relacionadas con ciencias de la computación.
Creo que en este blog no hay que ser muy inteligente para ver el tipo de gente que hay y la credibilidad y fiabilidad de sus opiniones, no creo que por insultar tengas más credibilidad, debo comentarte que el tema de balanceo de cargas en servidores se da en una asignatura de la carrera.
Buen chiste. emsamblador y basic dice…
Yo programaba basic con 9 años, pero tengo 29, no 35. Lo hacia en el Spectrum. Con la edad que tienes dudo mucho que «desarollases» emsamblador y basic de forma conjunta. Programabas el Tennis, no te joe. Con 9 años hacias unos juegos que te cagas, como el famoso «Hello World» en emsamblador puro para Atari 5200 http://www.atarihq.com/danb/files/52hello.txt ya te vale… Va a ser que no cuela, a mi no me venden humo, llevo mucho tiempo en Internet. Las palabras y papelitos firmados a otro. De Ricardo puedo decir viendo su codigo fuente que aun teniendo filosofias muy similares (toda la basura a la mierda) sabe mas que yo en cuanto a clases y ciertas estructuras (normal siendo doctor, cosa que no sabia, y siendo yo un cutre autodidacta)
Se lo que es un balanceo de carga, pero saberlo no es haber tenido una web con millones de visitas unicas en la que implementarlo. No es haber usado las opciones que trae centos por defecto, o ninguna aplicacion/hard en particular. Vuelvo a repetir, por mucho que lo des enla carrera las formas de implementarlo cambian continuamente. Para saber usarlo hay que usarlo y hay decenas de formas de hacer las cosas. Pretender ponerte a programarlo tu solo desde cero es de paleto. Cualquier programa de soft libre sera mucho mas seguro, rapido y mejor hecho de lo que lo puedas hacer tu en tus 4 primeros intentos, encima consiguiendolo al instante. Hecho por adolescentes con granos que se pegan 24 horas buscandole un fallo de seguridad a tu codigo fuente mientras tu te vuelves a leer y enmarcar tu titulo universitario…
Te crees alguien. Por mucho que insistas en intentar estar por encima de los demas lo unico que denota es que tienes complejo de inferioridad y probablemente es porque nunca has hecho nada con la mas minima relevancia.
Yo no necesito estar por encima tuya, ni justificarte mi posicion en tu vida. No me preocupa lo mas minimo el lugar que quieras darme. Despues de 16 horas seguidas programando estructuras web que nadie en el mundo ha pensado antes, por encima de equipos enteros de empresas millonarias como match.com, yo solo, preguntar cualquier duda como la del tema de este articulo y que nadie me sepa responder, pasar el test de mensa y ver lo podrido que esta el sistema educativo en el que la unica idea que manda es el lucro a costa de los alumnos. Me da absolutamente igual que alguien se crea mejor que yo porque tenga un papel firmado por otra persona o grupo de personas. Sobretodo porque ya ha pasado la epoca de programador para mi. Pasé la de la programcion, audio, 3d, video, 2d, programacion web, seguridad informatica y bases de datos, son etapas de aprendizaje… Para mi es el tiempo de emprender. No de mirarme el ombligo sino el de intentar rodearme de gente competente y de suficiente inversion para crear algo decente. La idea o lo bien que lo hagas no vale una mierda sino tienes apoyo e inversiones necesarias. Sino sabes ordenar un blog, habra que ver como programas y ver que posibilidades das a la hora de razonar enlos problemas que surjan…
Trabaja bien y ya veras como te reconoce la gente… sino quieres continua queriendo ser el Picasso en vida del software, pero como ya dije, el puesto de Rey ya esta cogido y eso no te va a hacer rico, a menos que sea a costa de otros.
Que sí, que sí. Casi al 90% de acuerdo en todo. Argumento clásico.
Las capacidades autodidactas individuales pocos necios las discuten.
Frustraciones de cada cual aparte, lo único que en el sector TIC se está demandando es un poco de dignidad y reconocimiento.
Y el mismo tratamiento social y jurídico que a los abogados, médicos, ingenieros industriales, etc, etc. Es simple. Es proteger a la Sociedad de sus propios abusos.
La Ingeniería Informática va mucho más allá de determinadas destrezas puntuales sobre el críptico python, la configuración de un filtro FW concreto o de la programación entendida como un mero ejercicio intelectual o casi artístico. Por ej. decisiones de diseño entre Apache o Nginx, python o RoR, CGIs o nos complicamos menos con PHP. Según el dominio del problema y los recursos -también humanos- disponibles.
En todo caso, nadie puede ser un especialista en todo. ¿Lo es alguien en todo el cuerpo de las Matemáticas o el Derecho?. ¿Son todos los niveles profesionales equivalentes en el área Sanitaria?. ¿Mismas responsabilidades?
Es bien sencillo. Pero algunos se empeñan en enmarañarlo y confundirlo todo. Y cierto subconjunto de los mismos saben muy bien porqué lo están haciendo.
P.D.: Más allá de los tunnings, a mi también me gustaría saber cuantos servidores se usan en meneame 😉
> P.D.: Más allá de los tunnings, a mi también me gustaría saber cuantos servidores se usan en meneame
http://blog.meneame.net/2008/02/25/balanceo-de-carga-en-pruebas/
Hombre «ingeniero» eso no es culpa de ninguno de nosotros. Pretender hacer un colegio poniendo un tocho de cuenta bancaria nada mas entrar en un cutre blog (que lo hace cualquiera) no es la mejor forma de conseguirlo. Sobretodo con tanta gente apostando por soft libre, freeware y demas. No hay que ser muy listo para saber que la informatica esta tan sumamente mal pagada (por eso yo no trabajo para nadie) que no merece la pena ni estudiarla (el futuro sera mejor). Tan solo hay que darse una vuelta por infojobs y ver los CHISTES de ofertas de trabajo que hay. Siempre hay algun «hoygan» pidiendo photoshop, dreamweaBer y JAVA! para su empresa. Tecnologias obsoletas o totalmente inapropiadas. Piden Java hasta para hacer intranets. Yo no entro desde hace años a esa web por ese motivo ¿Esa gente sabra algo de programacion? ¿Java para todo en web? ¿Acaso va a ofrecer alguna ventaja? ¿pedir cobol??? No lo entiendo… El problema no es por culpa de nadie y al mismo tiempo es de todos nosotros. Si abusan de ti, no lo permitas. Y si hace falta, a ser autonomo, es muy facil quejarse sin hacer nada… superlopez/dios/el colegio no va a venir a ayudarte… ¿que quereis poneros en huelga como los pilotos? ¿acaso hace falta un colegio para eso? ¿huelga para que? «queremos que nos pagueis mas que para eso estudiamos una carrera!» (no se porque me acabo de acordar de las patentes y canones) «muy bien, a la calle, contratare alguien sin carrera o a algun oriental»… No es como la medicina/siquiatria donde hay que tener titulo obligatorio porque puedes destrozar la vida de los demas, pretender que sea igual a parte de retrogrado lo unico que haria seria daño al sector solamente en España. Solo los ricos podrian trabajar, (master en sql 1080€…), menudo futuro. Como si no hubiesemos heredado ya suficiente atraso… Hay que pensar un poco las cosas…
¿Y tu a que te dedicas? «Soy ingeniero informatico» «ah, vale, ¿Me arreglas XP y el ventilador que hace ruido?»
Incluso diciendo «diseñador grafico» te responden lo mismo. Es el problema de ser una rama tan cotidiana.
Lo siento pero la vida es asi. Si haces una cancion te la copian, como mucho ganas publicidad con ello. ¿Que ganas teniendo titulo de informatica? Vendelo. Create tu propia «empresa de primera» y cobrales una pasta a los clientes, por ejemplo. Eso si, como no esteis a la altura vais chungo… no se puede pretender que solo por haber estudiado/tener dinero para pagar el titulo (pagarlo, si, pagarlo) ya te tengan que chupar la… el resto de la vida.
Si no tienes nada que ofrecer quien te lo va a comprar… si ofreces lo mismo que los demas quien te lo va a pagar mas caro…
Ricardo, joder que alivio por fin leer un ejemplo. Le tengo panico a la saturacion del servidor. Tengo atravesada la idea de separar las cosas en diferentes servidores. Supongo que es por el hecho de pensar «y cuando ese servidor se sature? que?? que ?¿??¿¿?¿» (paranoico perdido) pero supongo que ese caso solo lo pueden «sufrir» muy pocas paginas. Me vendra del panico creado por el mensajero instantaneo y las busquedas raras que tenia mi red social… y de haber visto tanto tiempo como una basura de pagina fea de la competencia utilizada 5 servidores debido a la cantidad de visitas.
Por cierto no me llegan nunca notificaciones de nuevos mensajes en el blog… no se porque sera.
Pingback: Esto no llega ni a boboapunte « Ricardo Galli, de software libre
Pingback: Reglas básicas para servidores apache bien ajustados « InsaneCrew
Pingback: Limitar a los bots agresivos en las iptables « Ricardo Galli, de software libre