¿sistema linux mas rapido en arrancar?

buenas. estoy tuneando un PC para habilitarlo como MediaCenter, sintonizador y decodificador de Canal Satelite y estoy barajando entre Freevo y MythTV como mediaCenters.

El problema que me encuentro es que el PC tarda mucho en arrancar para lo que deberia ser un media center (comparado con WinXP en el mismo hard). considero un tiempo 'decente' de encendido unos 20seg. desde que pulso el boton de encendido. he cronometrado el POST y tan solo en llegar a empezar a cargar el bootstrap (llamese LILO, GRUB o NTLDR) tarda 7seg. lo cual deja unos 12-13 seg. para terminar de cargar el Sistema Operativo. WindowsXP termina de cargar el escritorio en 20seg y muestra NeroMediaCenter en 5seg adicionales. Ubuntu DapperDrake (6.06) tarda 30seg. en llegar al escritorio GNOME (con autologin activado) y ubuntu FeistyFawn (7.04, a pesar de tener UpStart que deberia ser una bala cargando) tarda 23seg en llegar al escritorio de Gnome.

¿Que opcion me recomendais para reducir el tiempo de carga del sistema operativo? estoy pensando en Gentoo y activar-desactivar a mano servicios que puedan valerme o no. ¿realmente se nota diferencia en rendimiento con gentoo?

tambien estoy valorando usar Init-ng (la version multithread del init clasico de unix) y Preload (sistema de 'enlazado' dinamico de librerias mas rapido).

¿me podeis contar experiencias?
No hay recetas máginas pero...

1) Usa una shell más ligera para los scripts (bash es pesada, prueba ash)
2) Desactiva todo lo que no uses

- ferdy
Init-ng, prelink, quitar carga de servicios innecesarios en el arranque y usar un escritorio más ligero que gnome. Incluso E17 con todas las pijadillas que tiene carga como un tiro comparado con gnome o kde.

A lo mejor optimizar el kernel para tu equipo quitando el soporte de hardware que no tengas podría ayudar algo también... no se cómo funciona exactamente la inicialización del hardware en el arranque así que tampoco puedo decir seguro que esto vaya a acelerar realmente las cosas.
Ferdy escribió:No hay recetas máginas pero...

1) Usa una shell más ligera para los scripts (bash es pesada, prueba ash)
2) Desactiva todo lo que no uses

- ferdy


¿bash es una shell pesada en un celeron 3000 con 1GB de Ram?
joder, como ha engordado linux, ¿no? [cartman]

es broma...
Sin duda:

[ $ ~ ] ls -lh /bin/bash /bin/dash
-rwxr-xr-x 1 root root 643K 2007-08-08 18:19 /bin/bash
-rwxr-xr-x 1 root root  80K 2007-08-14 13:49 /bin/dash
[ $ ~ ] ls -lh /bin/bash /bin/dash
-rwxr-xr-x 1 root root 643K 2007-08-08 18:19 /bin/bash
-rwxr-xr-x 1 root root 559K 2007-08-14 13:50 /bin/dash
[ $ ~ ]


El primero es para dash enlazado con glibc, el segundo es para dash estático. bash en ambos casos tiene que seguir cargando libc.so y libncurses :

[ $ ~ ] ls -lh /lib/libc-2.5.so /lib/libncurses.so.5.6
-rwxr-xr-x 1 root root 1.2M 2007-08-08 17:04 /lib/libc-2.5.so
-rwxr-xr-x 1 root root 262K 2007-08-08 13:32 /lib/libncurses.so.5.6
[ $ ~ ]


Y ambas no estarán cargadas en memoria al arranque (aunque esto solo afecta al PRIMER script).

Por último, cargar bash implica hacer que el loader haga trabajo reescribiendo y calculando direcciones; cosa que no ocurre en el binario estático... no es que vayas a ganar MUCHO, pero he visto equipos bajar un par de segundos en el tiempo de arranque.

- ferdy
gracias por el apunte, ferdy. desconocia esos entresijos.

lamentablemente necesito Bash para un par de scripts que se encargan de actualizar las keys para el decodificador de D+

y sobre el compilado estatico: lo valorare, aunque creo que prelink (y no preload como dije yo mismo antes) hara que no se note demasiado si es enlazado dinamico o estatico...

como dije, busco el minimo tiempo DE ARRANQUE, no me importa tirarme 4 horas recompilando todo el sistema o esperar 5 minutos para apagar el PC si a cambio el siguiente arranque es 'pseudo-inmediato'

por cierto... ¿alguien ha hecho algo con hibernacion de equipos con linux? en XP esta bien resuelto el tema y en ubuntu he visto algo. quizas la recuperacion de un equipo hibernado sea mas rapida que un arranque en frio.
Exacto, si el cacharro vaa tener alimentacion las 24 H, te recomiendo suspender a ram, asi el inicio sera casi isntantaneo, aunque por contra tendras algo de consumo. Si quieres apagarlo del todo pues lo apagas como lo haces normalmente.
Yo uso MythTV con una Mandriva 2007.1 en un Celeron 2.6GHz 1GB RAM, el arranque desde el cargador de Linux es de unos 20 segundos, no más.

Pero claro, nada de escritorios pesados, uso Fluxbox, y sólo porque MythTV funciona mejor con un gestor de ventanas, sino lo correría directamente sobre el servidor X.

No lo suelo apagar porque hace de servidor del resto de equipos, pero te puedo decir que la hibernación funciona perfectamente en Linux desde hace un par de años al menos (en mi portatil que es donde lo uso).

No te engañes con XP. XP muestra el escritorio antes de cargar el 75% de los servicios del PC, con lo que no tienes ni red ni cosas esenciales hasta varios segundos después.
Imagen

Prueba hecha en en un PIV 1.4Ghz, 358 Ram, en todos con las distros estándar. Luego siempre puedes dedicarte a eliminar servicios innecesarios para arrancarlos más rápido. Gráfica sacada de aquí
lamentablemente necesito Bash para un par de scripts que se encargan de actualizar las keys para el decodificador de D+


Pues usa bash en esos dos solo. El resto que usen una shell RÁPIDA de cargar, piensa que cada script tiene que cargar la shell al menos una vez.

y sobre el compilado estatico: lo valorare, aunque creo que prelink (y no preload como dije yo mismo antes) hara que no se note demasiado si es enlazado dinamico o estatico...


No creo que ganes mucho en el arranque con esto.

como dije, busco el minimo tiempo DE ARRANQUE, no me importa tirarme 4 horas recompilando todo el sistema o esperar 5 minutos para apagar el PC si a cambio el siguiente arranque es 'pseudo-inmediato'


Por eso te sugerí quitar cuantos más servicios mejor y usar una shell ligera para lanzar los servicios que necesitas.

por cierto... ¿alguien ha hecho algo con hibernacion de equipos con linux? en XP esta bien resuelto el tema y en ubuntu he visto algo. quizas la recuperacion de un equipo hibernado sea mas rapida que un arranque en frio.


http://www.tuxonice.net/

- ferdy
Churly escribió:No lo suelo apagar porque hace de servidor del resto de equipos, pero te puedo decir que la hibernación funciona perfectamente en Linux desde hace un par de años al menos (en mi portatil que es donde lo uso).

Hombre, perfectamente... cuando funciona.
A mí se me cuelga al intentar suspender o hibernar (en windows funciona perfectamente).

Un saludo.
Mi portatil suspende, tanto a disco como a ram, perfectamente.
f5inet, se que no viene mucho al caso pero, que tarjeta usas para sintonizar el D+? es que yo también estoy montando un pc para media center, y es un extra interesante que no se me había ocurrido añadir.

Sobre el arranque no puedo ayudarte.
una skystar2-clone clasica. 40€ me costo. no recuerdo donde la compre, pero fue por internet. creo que a uno de los patrocinadores de EOL.

este es el enlace que segui para configurar feisty y decodificar el famoso proveedor que todos conocemos.
http://www.javipas.com/2007/05/10/digital-en-linux-bajo-mythtv/

por supuesto, las keys, os la teneis que currar vosotros...

el unico problema que le veo al tutorial, es que cuando cambian las keys, la decodificacion se para (o sea, imagen en negro), y para 'rearrancarlo' hay que:
- detener mythtv
- detener la SoftCam (sasc-ng)
- actualizar las keys
- rearrancar la SoftCam
- rearrancar mythtv

con lo cual todo lo que tuvieramos programado de mythv se va a carajillo y se pierde un poco el tema de media center, puesto que tenemos que estar parando y rearrancando mythtv. me curre un script que lo hacia todo y reducia el tiempo de parada a 30 segundillos, pero claro, no era 'profesional'.

ahora quiero hacerlo con freevo, que creo que me ira mejor, porque mythtv era un coñazo configurarlo...
######################
XiuX escribió:La distribución da igual, lo que tienes que hacer es compilar el Kernel a mano y dejarlo como un guante para tu PC, habilitar solo lo que uses y los demás módulos deshabilitados, y verás que rápido arranca... [666]


Irrelevante. Donde más tiempo se 'pierde' es en init.

- ferdy
Existe alguna manera de no ejecutar el rc.hotplug, pero
que me detecte el ratón USB? Es que tarda un poquillo
el arranque!

Grasias
Yo creo que seria una buena idea utilizar tanto la suspensión a RAM como la suspensión a disco.

Cuando lo quieras apagar pero lo dejes enchufado suspendes a ram, el consumo sera minimo y el tiempo de arracnque despues casi nulo. Si va a estar mucho tiempo apagado, suspendes a disco, y no consumira nada.

Creo que es asi como lo configuraria yo :)
Ferdy escribió:
Irrelevante. Donde más tiempo se 'pierde' es en init.

- ferdy


correcto. en un ordenador moderno de mas de 2Ghz, el kernel detecta y configura el hardware en apenas 5-7 segundos. Init, como lo tengas un poco 'caotico' o la tarjeta de red en DHCP cuando no hay ningun server DHCP se come el minuto largo para terminar de arrancar linux. para esto es prudente usar init-ng o upstart, que alivian dicho comportamiento.
Ferdy escribió:
Irrelevante. Donde más tiempo se 'pierde' es en init.

- ferdy


Podrias explicarlo un poco para tontos?
Si, aproximadamente mi Ubuntu tarda en cargar unos 35 - 40 segundos (Athlon 64 3200+, 1Gb RAM)
Saludos.

Si no lo has probado ya, podrías intentarlo con Arch Linux mas un escritorio ligero (xfce4, fluxbox...) Creo que te puede dar muy buenos resultados.

Requiescat In Pain.
No es por hacer porra a mi firma, pero desactivando los servicios innecesarios Slackware Linux es bastante rápida (sin hacerlo también lo es), se puede optimizar hasta los límites.

Saludos.
22 respuestas