[ot] procesador para servidor
Rodrigo Fuentealba
darkprox en gmail.com
Jue Mayo 11 12:06:59 CLT 2006
felix perez wrote:
[...]
>> Debian sarge instalado desde cero, sin entorno grafico, robusto y
>> estable.
>> Ubuntu server (basado en Debian) tambien sin entorno, muy similar a
>> Debian.
Me da lo mismo, prefiero Slackware... Mi respuesta en este caso se basa
en el soporte que el kernel da. Tampoco tengo ninguna intención de armar
una nueva guerra santa, sobretodo sobre algo que es OT
>> >
>> > Ahora, mi recomendación es la siguiente: Si utilizas bases de
>> datos, la
>> > información debe mantenerse guardada de manera precisa, pero si
>> utilizas un
>> > servidor web, no importa cómo esté la información en el disco, son
>> sólo
>> > archivos secuenciales que se interpretan en el caso de PHP y se
>> envían por
>> > el cable, ordenados.
>> Esto no tiene sentido, las bases de datos todas deben "guardarse" de
>> manera precisa al igual que cualquier archivo almacenado en un
>> servidor. Un servidor web procesa archivos en texto plano (html,
>> javascript, php, etc) eso es lo que procesa si el archivo tiene algun
>> problema no se procesa correctamente y la aplicación se cae.
A ver... vamos por punto para aclarar mejor:
- Para guardar datos, no hay gracia: los estándares están para que todos
los datos se guarden igual, a la velocidad que permita el cablecito de
40-1 conectado al disco IDE (o el de SCSI, SATA, USB, Firewire, etc...).
- Un servidor web procesa archivos de texto plano, como el javascript y
el html (salvo excepciones como PHP en las que se ejecuta un binario que
redirige la salida a la salida de Apache), que más encima son
secuenciales (vuelvo a repetir: salvo en el caso de PHP que hace un
índice de las clases, y no importa el orden en que éstas se definen) y
de sólo lectura para quien lo visita (y si fueran de escritura,
pasaríamos hackeando sitios web, ¿no?). Por tanto, si son archivos
planos, secuenciales y de sólo lectura, no me interesa la concurrencia,
me interesa hacerles un sólo proceso: enviar por el cable.
Aún cuando sí se hagan operaciones sobre archivos de texto plano, éstas
casi nunca son operaciones matemáticas, sino movimientos de información
dentro de la memoria (cuando pones echo($_SESSION['valor']); lo único
que hace el PHP internamente es copiar el valor de $_SESSION['valor']
dentro de la salida que mostrará) y las que sí lo son, son comparaciones
(nada más fácil para un procesador que utilizar un campo booleano
conforme se verifica cada uno de los bits que comprenden las dos
variables que comparamos: el caso de preg_match(), por ejemplo), y muy
pocas operaciones de coma flotante.
En el caso de las bases de datos, esto cambia: Primero, existe un
esquema de perfiles reales, y no construidos como los de las páginas
web. Segundo, los archivos no son secuenciales, de sólo lectura para
todos los usuarios externos, sino que son archivos de lectura y
escritura, para los usuarios que tengan permiso para leer y escribir. En
este caso, las operaciones de movimiento de información son más, pero
también lo son, con mucho, las operaciones matemáticas de comparación,
validación, producto cruzado, en el que si quieres optimizar, debes
aprovechar al 100% la coma flotante. Aquí, más que la rapidez está la
precisión del control de concurrencia, el manejo de la memoria no para
entregar datos, sino para hacer pequeñas operaciones de coma flotante
entre ellos.
> nota: javascript es del lado del cliente.
Y HTML también, y nadie te ha dicho nada.
>> > Para las bases de datos (sobretodo con Oracle y PostgreSQL) siempre es
>> > recomendable un Intel por sobre un AMD pues si bien no es más
>> rápido, sí es
>> > más preciso. Para los servidores web, la información no debe ser
>> manejada de
>> > manera tan precisa, pero se requiere mover toneladas de
>> información... para
>> > eso un AMD es mejor.
>> En que te basas para decir esto?
Me baso en varios puntos, que para mí son demasiado coincidentes como
para ser mentira.
¿Personas que trabajan con AutoCAD y Mechanical Desktop? Precisión: Intel.
¿...DIseño Web? Rapidez: AMD.
¿...MatLab? Precisión: Intel.
¿...Juegos? Rapidez: AMD.
¿...Edición de Vídeo? Precisión: Intel.
¿...Servidores Web? Rapidez: AMD.
¿...Servidores de Bases de Datos? Precisión: Intel.
¿...Aplicaciones de Multimedia? Rapidez: AMD.
¿...Interfaces industriales críticas (Léase NI LabView y otros)?
Precisión: Intel.
>> > Ahora es tu decisión, yo no soy ningún experto tampoco :P
>> Mayor razon para no hacer comentarios como el del parrafo anterior.
¿Y a ti quién te hizo el ramo de Sistemas Operativos? ¿Y te aprobó?
Bien... Pues debo decirte que el que sean clones no significa que
implementan las mismas funciones de la misma forma, es algo así como
<?php function sumar($a,$b) { return ($a+$b); } ?> contra <?php function
sumar($a,$b) { $c = $a + $b; return $c } ?>. Ambas funciones hacen lo
mismo, pero de distinta forma. Aparte, los juegos de funciones
específicas de AMD son para rapidez y los juegos de funciones
específicas para Intel son para precisión. Basta ver que el Sempron
Mobile 3000+ anda a 1800 y el Pentium 4 de 3.0 anda a 3 GHz, pero hacen
lo mismo... ¿será porque AMD está retrasado en cuanto a crear
procesadores de alta velocidad real, pero lo compensa con funciones
reducidas que permiten que con menor velocidad se pueda hacer gran
cantidad de movimientos de datos? ¿O es porque Intel es tan malo
desarrollando algoritmos rápidos y óptimos, que aumenta las frecuencias
de sus procesadores para tapar el que sean tan lentos?
>> Tanto Intel como AMD son opciones parejas (mayor performance en un
>> amd),
¿Y después que me rebates todo lo que yo puse en el correo, afirmas lo
que yo digo? Ohhh el borrachito porfiado este ohhh... :P Claro que Intel
y AMD son opciones parejas, lo que uno tiene de rápido, el otro lo tiene
de preciso (a nivel de funciones de procesador... si hablamos de MHz,
los papeles se invierten e Intel es más rápido que AMD), y es
precisamente esa la razón por la cual hay que saber escoger con pinzas
qué máquina destinar para qué cosa. Basta ver la ecuación
lento + funciones de procesador optimizadas para rapidez = rápido +
funciones de procesador optimizadas para precisión (sacrificando rapidez).
Y comprobar que no es cierta pero que las diferencias entre ambos lados
de la misma no pasan del 3% al 6%.
>> pero debes considerar otras cosas, T madre, T red, discos duros,
>> cantidad de Ram?, uso del servidor?, cantidad de usuarios?.
La tarjeta madre también es importante, pero debo comunicarte que el
chipset de ésta no es más que una extensión de las funciones del
procesador, por lo que las reglas dictadas para los procesadores también
se aplican a los chipsets.
Pasando a risas, ¿las tarjetas de red no son estándares? ¿O sea que usas
una marca para Intel y otra distinta para AMD? Tengo una tarjeta de red
Realtek 8139C en mi Pentium 3 de oficina, y tengo el mismo modelo en el
notebook que es un Sempron 3000+ Mobile... Bueno, es un notebook, no le
puedo sacar la tarjeta para hacer las pruebas (ni es mi interés
investigar cosas que se dan por sentado que son así).
Hablando en serio: la cantidad y la calidad de la RAM son
importantísimas... también su velocidad...
Hablando de manera crítica: ¿volviste a considerar lo que puse arriba?
¿Un servidor se puede usar para bases de datos o para servidor web?
¿cierto que sí?... Entonces sí estaba considerando el uso del servidor
(o te refieres a la carga que tendrá el servidor? porque hasta donde yo
sé, no son lo mismo). Sobre la cantidad de usuarios, pues ahí mi socio
verá, pero nunca es malo considerar optimizar.
Y como dijo Patrick Volkerding (Slackware maintainer),
All the best, and don't forget to keep breathing.
Rodrigo.
Más información sobre la lista de distribución PHP