[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: no se usan todos los recursos de hardware



El día 6 de octubre de 2015, 16:16, Darthcoli - Alejandro Izquierdo 
<darthcoli@gmail.com> escribió:

Corrijo el top-posting y reenvío a la lista el correo que se lo zampó mi 
filtro. Alejandro, hay que darle al botón de "responder a la lista" no al 
de "responder". Si usas el webmail de Gmail tendrás que corregir esto a 
mano ;-)

> El 6 de octubre de 2015, 16:08, Camaleón <noelamac@gmail.com> escribió:

(...)

>> > Pongo un ejemplo: tengo un sencillo script en bash que lee un
>> > archivo de texto y compara lineas de texto. El script no hace nada
>> > mal o complicado ni entra en bucles ni nada parecido. Sin embargo
>> > siempre consume la misma cpu (aprox un 10%) y tampoco genera
>> > elevadas tasas de IO, sobran gb de ram.
>> >
>> > He probado en diferentes maquinas! he probado a cambiar la prioridad
>> > con renice.
>> >
>> > ¿Por que? ¿Por que no usa toda la cpu? ¿Por que si tiene recursos
>> > libres de sobra no los usa?
>>
>> Pues porque la carga a la que el script somete a la CPU no es
>> suficientemente elevada como para tener que usar más ciclos de reloj.
>> Simplemente no lo necesita.
>>
>> Si quieres estresar a tu micro ponte a compilar un kernel desde sus
>> fuentes >:-)

> @camaleon
> perdon por el html!

No problemo.

> Eso de que "no necesite mas" es muy relativo no? quiero decir, no
> quiero estresar mi pc, quiero que tarde menos en ejecutarse!!!!
>
> Es un poco frustrante que tu pc tarde media hora en hacer un par de
> millones de comparaciones, con el 90% de los recursos libres.. :S

Hombre, media hora para leer/operar sobre un archivo de texto que no 
llega al mega (¿con *millones* de registros/comparaciones de cadenas? :-?
) me parece ciertamente excesivo para un micro en un equipo medianamente 
moderno (>2008).

El kernel actual asigna las tareas a los núcleos de la CPU de una manera 
"justa" (bueno, la traducción es literal, se llama "fair-schedule" no sé 
qué) y se supone que el algoritmo que usa debe de repartir el trabajo 
entre todos los núcleos de una manera equitativa pero lo que el kernel 
entiende por equitativo no tiene que coincidir con lo que nosotros 
consideremos como tal, es decir, lo que va a evitar a toda costa es dejar 
al sistema seco, sin recursos porque se estaría suicidando, y ten en 
cuenta que en un sistema en ejecución hay procesos en segundo plano que 
no vemos pero están ahí.

Ahora bien, para afinar más y entender mejor el ejemplo que pones sería 
necesario que dieras datos más precisos como el script que ejecutas, el 
contenido del archivo sobre el que trabajas, las características del 
sistema o el tiempo cronometrado ("time") que tarda en realizar el 
trabajo.

Saludos,

-- 
Camaleón


Reply to: