GNU/Linux >> Tutoriales Linux >  >> Cent OS

Centos:¿cómo limitar el ancho de banda utilizado por un proceso?

Tengo un servidor CentOS 5.7 que realizará copias de seguridad de sus archivos todas las noches. Me preocupa que los visitantes de los diversos sitios que aloja el servidor experimenten un rendimiento degradado mientras la copia de seguridad se transfiere a través de la red.

¿Es posible limitar el rendimiento máximo permitido de un proceso a una interfaz de red? Me gustaría limitar la transferencia de archivos basada en SSH a solo la mitad de mi ancho de banda disponible. Esto podría estar en el lado del servidor o del cliente; es decir, estaría feliz de hacer esto en el cliente que inicia la conexión o en el servidor que recibe la conexión.

(Desafortunadamente, no puedo agregar una interfaz para dedicarla a las copias de seguridad. Podría aumentar mi rendimiento disponible, pero eso simplemente significaría que la transferencia de red se completaría más rápido, pero aun así maximizaría la capacidad total de la conexión mientras lo hago .)

Algunos antecedentes

Tal vez algunos antecedentes estén en orden. Retrocediendo, tuve el problema de no tener suficiente espacio local para crear la copia de seguridad. ¡Entra SSHFS! La copia de seguridad se guarda en lo que aparentemente es una unidad local, de modo que nunca haya bits de copia de seguridad en el propio servidor web.

¿Por qué es eso importante? Porque eso parecería invalidar el uso del venerable rsync --bwlimit . rsync en realidad no está haciendo la transferencia ni puede porque ni siquiera puedo prescindir del espacio para guardar el archivo de copia de seguridad.

Puedo oírte preguntar:“Entonces, espera, ¿por qué necesitas hacer un archivo de copia de seguridad? ¿Por qué no simplemente rsync? los archivos y carpetas de origen? ¡Porque una cosa molesta llamada "Plesk" está en la mezcla! Este es mi proveedor de alojamiento web orientado al cliente que utiliza Plesk para mayor comodidad. Como tal, uso Plesk para iniciar las copias de seguridad porque Plesk agrega todo tipo de magia adicional a la copia de seguridad que hace que consumirla durante un procedimiento de restauración sea muy seguro.

cara triste

Respuesta aceptada:

Puedes usar iptables para marcar un paquete (–pid-owner …), luego use tc para dar forma al tráfico.
También se puede usar “–sid-owner” para incluir subprocesos e hijos de ese proceso.

http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#OWNERMATCH

Coincidencia –pid-propietario
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A SALIDA -m propietario –pid-propietario 78
Explicación Esta coincidencia se utiliza para hacer coincidir los paquetes en función del ID de proceso (PID) responsable de ellos. Esta coincidencia es un poco más difícil de usar, pero un ejemplo sería solo permitir que PID 94 envíe paquetes desde el puerto HTTP (si el proceso HTTP no está enhebrado, por supuesto). Alternativamente, podríamos escribir un pequeño script que tome el PID de una salida ps para un demonio específico y luego agregue una regla para él. Por ejemplo, podría tener una regla como se muestra en el ejemplo de Pid-owner.txt


Cent OS
  1. Cómo configurar un servidor OpenVPN en CentOS 7

  2. Cómo instalar el servidor Teamspeak 3 en CentOS 8

  3. Cómo cambiar el nombre de host en CentOS

  4. Configurar el servidor DHCP en CentOS 8:¿cómo hacerlo?

  5. RHEL/CentOS 6,7:cómo calcular el tamaño de una página enorme utilizada por un proceso/aplicación específicos

Cómo instalar Centreon en Centos 7

Cómo instalar el servidor de Minecraft en CentOS

Cómo instalar Nginx en CentOS

Cómo instalar MySQL 8 en CentOS 8

Cómo instalar Shoutcast Server en CentOS 8

Cómo instalar Lighttpd en CentOS