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

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




El 20/09/2013 15:19, "fernando sainz" <fernandojose.sainz@gmail.com> escribió:
>
> 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.
>
>
> --
> To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> Archive: http://lists.debian.org/CAGwrHho3RBKuCmuVj41vc4c9KJo9YY9U-9NyDTQaaD--k1pw@mail.gmail.com
>

Gracias Fernando. Varias cosas, efectivamente el cuello de botella esta en los discos y como has comentado es mejor separar la bd, asi lo tengo con openvz, el container es independiente y escriben en /var/lib/mysql que es un raid1 con otros 2 discos que comparte o mapea openvz al arranque del mismo. Ya en su dia mejore el numero de threads en mysql pero queria saber si habia alguna forma de optimizarlo mas aun y solo se me ocurre meter bd en ssd raid1 xD.

Aun asi me tunee un poquito el my.cnf.

Muchas gracias por todo, me ha ayudado a comprender mejor lo de la gestion del procesador respecto a los procesos.

Saludos.


Reply to: