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

Re: Aprovechar todas las cpus para un determinado proceso o servicio



El día 20 de septiembre de 2013 14:57, fernando sainz
<fernandojose.sainz@gmail.com> escribió:
> El día 20 de septiembre de 2013 14:06, Maykel Franco
> <maykeldebian@gmail.com> escribió:
>> Hola muy buenas, siempre que he necesitado dar prioridad a un
>> determinado proceso en ejecución siempre he usado nice pero,y ahí va
>> la pregunta, se podría hacer algo para por ejemplo si tienes un mysql
>> con 8 procesadores, use los 8 procesadores para agilizar cada
>> petición? O eso se administra por una capa inferior a nivel de
>> kernel??
>>
>> Me refiero a sí se hace una query tocha, que use los 8 procesadores a full...
>>
>> He estado buscando info pero solo encuentro nice...En ésa máquina sólo
>> está corriendo un mysql y un ssh, aparte de rsyslog, y los paquetes
>> base de debian en la instalación.
>>
>>
>>
>> Saludos y gracias.
>>
>>
>
> Tradicionalmente los programas eran un solo proceso y cada proceso
> corre en un procesador.  El kernel divide el tiempo de procesador
> entre todos los procesos (Ahí es donde el nice tiene algo que decir).
> Los procesos son secuenciales por lo que si el kernel lo para en un
> momento, cuando vuelve continua a partir de ahí.
>
> Múltiples procesadores tienen sentido cuando hay muchos procesos
> corriendo. Si tienes muchos procesadores el kernel no interrumpirá los
> procesos tan a menudo.
>
> Ahora los procesos pueden tener múltiples "threas" (hilos) que pueden
> ejecutarse cada uno en un procesador distinto (pero eso se realiza a
> nivel de programación, con lo que o el programa está escrito con
> threads o no).
>
> S2.

Otra cosa.
Primero perdona porque el puñetero webmal de gmail hace que a veces se
me olvide borrar a la persona que escribió y te habrá llegado
duplicado.

Solo comentar que hoy por hoy los cuellos de botella no suelen estar
en la velocidad de proceso, sino en los accesos a disco.
Así que si quieres hacer alguna optimización investiga más en ese sentido.

Si tienes varias BD el rendimiento mejoraría si estuvieran en discos distintos.
Una vez hice una pequeña prueba, un script que copia 4 ficheros
grandes, uno secuencial, otro paralelo y gana el secuencial :-)

Secuencial script1.sh
#! /bin/bash
cp ./file1.jpg file1.bak
cp. /file2.jpg file2.bak
cp ./file3.jpg file3.bak
cp ./file4.jpg file4.bak

y

Paralelo scritp2.sh
#! /bin/bash
cp ./file1.jpg file1.bak &
cp. /file2.jpg file2.bak &
cp ./file3.jpg file3.bak &
cp ./file4.jpg file4.bak &

lo ejecutas con:
$ time scritp1.sh
$ time script2.sh

y verás.

S2.


Reply to: