(Reproducido) El uso del límite de la CPU

Tres métodos (de transferencia) a uso de la CPU límite bajo Linux
woodcol original, finalmente puestos en libertad el 04/11/2017 21:58:30 leer la colección número 6701
puesto en marcha
en el servidor de la nube estantes alquilados BTCC reciben un programa de servidor de datos de comercio en tiempo real, Debido a que se usa un bucle while para procesar la información de datos, el uso del procesador en el servidor de la nube ha sido superior al 90%. Recibí correos electrónicos con un alto uso de CPU en el buzón durante dos días. Encontré lo siguiente en Internet. Formas de limitar el uso de la CPU. Utilicé el método cuplimit a continuación. Hubo un error del compilador de Python al instalar usando apt-get, así que simplemente descargué el código fuente de cpulimit y lo hice yo mismo.

De: http://blog.163.com/song_0803/blog/static/4609759720091014106684/

3 formas de limitar el uso de CPU en Linux

1, Limite la función de Apache (RLimitCPU)

http://www.wrensoft.com/forum/archive/index.php/t-12.html

Cita esta publicación en el extranjero

Ray03-19-2008, 05:20 AM
La prueba de PHP se puede utilizar para mostrar que el problema es evidente, pero no es concluyente para demostrar que no hay un límite establecido.

La razón es que depende de cómo esté configurado PHP en el servidor. Si el motor de secuencias de comandos PHP está configurado como una aplicación CGI que está bifurcada por Apache, entonces los operativos RLimit * se aplicarán y la secuencia de comandos PHP puede probarlo. sin embargo, dentro de httpd, los límites no se aplicarían al motor PHP.
Este límite se aplicará al proceso derivado de la solicitud del subservicio Apache, no al subproceso Apache en sí. Este alcance incluye scripts CGI y comandos de ejecución SSI, pero no incluye todos los procesos derivados del proceso padre Apache. Por ejemplo, registros de tuberías.

Si ningún proceso hijo no genera un proceso, o si este proceso que ocupa muchos recursos no pertenece a un proceso generado, ¿no es así? Entonces, este método no funciona.

2. Limite el uso de recursos a través del comando ulimit del sistema

El archivo de configuración está en:

/etc/security/limits.conf

Por ejemplo:

xok_la hard cpu 1 
xok_la hard fsize 50000 
xok_la hard memlock 1000 
xok_la hard nofile 50 
xok_la hard nproc 50

Es posible limitar de esta manera, se basa en el límite del usuario, puede limitar la memoria, el tiempo de CPU, el número de archivos abiertos, etc. La premisa es que debe iniciar sesión en este sistema. Si solo ejecuta archivos como este usuario Si no funciona, entonces ... así que todavía tengo que rendirme.

3, Limitador de uso de CPU Aso para Linux

¿Qué es?
cpulimit es un programa simple que intenta limitar el uso de CPU de un proceso (expresado en porcentaje, no en tiempo de CPU). Esto es útil para controlar trabajos por lotes, cuando no quieres que coman demasiada CPU. No actúa sobre el valor agradable u otras cosas de prioridad de programación, sino sobre el uso real de la CPU. Además, es capaz de adaptarse a la carga general del sistema, de forma dinámica y rápida.
可以 限制 程序 使用 CPU 的 百分比, 而 不是 时间. 很好, 很 舒服.

Comience la instalación.

Dirección oficial: http://cpulimit.sourceforge.net/

cd / root / install / 
svn checkout https://cpulimit.svn.sourceforge.net/svnroot/cpulimit/trunkcpulimit 

cd cpulimit 
make 

cp ./cpulimit / usr / sbin

Tan simple, ¿es agradable?

Método de restricción:

Si limita el nombre del proceso, por ejemplo, limite la CPU del nombre del proceso httpd al 40%

cpulimit --exe httpd --limit 40 
cpulimit --exe / usr / local / bin / httpd --limit 40

Limite la CPU del proceso con pid 2960 a 55%

cpulimit --pid 2960 --limit 55

Compare lentamente los cambios de CPU en el comando superior. Hey, ¿es efectivo?

Otro perfecto

Limite automáticamente el proceso actual para usar procesos con más del 200% de CPU, limítelo al 100%

para x en `ps -aux | awk '{if ($ 3> 20) print $ 2}' '; do cpulimit --pid $ x --limit 100; hecho

 

comando cpulimit:

Error: debe especificar un proceso de destino, por nombre o por PID
Uso: cpulimit TARGET [OPTIONS ...]
   TARGET debe ser exactamente uno de estos:
      -p, --pid = N pid del proceso (implica -z)
      - e, --exe = nombre de ARCHIVO del archivo de programa ejecutable o nombre de ruta absoluto
   OPCIONES
      -l, --limit = N porcentaje de CPU permitido de 0 a 100 (requerido)
      -v, --verbose muestra estadísticas de control
      -z, - -salida lenta si no hay un proceso de destino adecuado, o si muere
      -h, - ayuda a mostrar esta ayuda y salir

Supongo que te gusta

Origin www.cnblogs.com/luruiyuan/p/12676758.html
Recomendado
Clasificación