19-09-2023, 03:07 PM
Cualquier sistema operativo o programa viene siempre configurado al mínimo de cara a obtener el máximo rendimiento y Syncthing no es una excepción, de hecho es un buen candidato para tunearlo por la cantidad de opciones disponibles que tiene.
Syncthing tiene dos sistemas de funcionamiento básicos, el primero consiste en hacer sincronizaciones entre dos equipos que estén en la misma red local y el segundo entre un equipo que esté en la red local y otro que esté fuera de ella, lógicamente también se pueden hacer combinaciones entre esos dos modos.
Al hacer sincronizaciones Syncthing utiliza por defecto el protocolo TCP que los desarrolladores del programa recomiendan para sincronizaciones en la red local pero la cosa cambia si las sincronizaciones son fuera de ella ya que hay otras opciones disponibles, y una de ellas consiste en utilizar el protocolo QUIC en lugar del TCP configurado por defecto.
Una vez que tenemos configurado uno de los Syncthings con el otro Syncthing de otro dispositivo nos aparece esto en la configuración de ese otro dispositivo:
Por defecto la Dirección está configurada como dynamic. Para utilizar el protocolo QUIC tenemos que cambiar ese parámetro en LOS DOS SYNCTHINGS a sincronizar poniendo en cada uno de ellos la ip del otro dispositivo, el protocolo QUIC y el puerto que usa Syncthing que es el 22000
Un ejemplo sería quic://192.168.2.12:22000
Las siguientes configuraciones que paso a explicar las encontramos en el ajuste Avanzado de configuración de Syncthing y al igual que el caso anterior hay que configurarlas en los dos Syncthing a sincronizar variando los parámetros según el dispositivo independiéntemente si las sincronizaciones se hacen en la misma red local o fuera de ella.
Al poner el parámetro Database Tuning en large se obtiene un mayor rendimiento al aumentar el número de búferes y otros ajustes.
El parámetro Max Concurrent Incoming Request aumenta la cantidad de datos que se procesan y se transmiten por la red.
En este mismo apartado pero más abajo modificamos otros dos ajustes:
Al configurar como -1 el parámetro Progress Update Interval lo que hacemos es desactivarlo. El tiempo dedicado a las actualizaciones de progreso es tiempo no dedicado a la sincronización.
Syncthing se ejecuta y funciona con prioridad baja, al desactivar el ajuste Set Low Priority se consigue que Syncthing funcione con prioridad Normal con lo cual utiliza más tiempo de CPU y, por tanto, aumenta el rendimiento.
Los siguientes ajustes a modificar los tenemos que hacer en los dos Syncthings pero en este caso en las opciones de las carpetas a sincronizar:
Syncthing es un programa multinúcleo así que una buena forma de tunearlo es especificar el número de núcleos que tienen los dispositivos en los que está instalado. Tenemos que poner ese número de núcleos en el apartado Copiers.
Al modificar el apartado Copiers estamos obligados a modificar también el apartado Hashers.
Para terminar, todos los parámetros modificados en la configuración avanzada de Syncthing podemos revertirlos sin problemas a los que estaban por defecto en esa misma configuración.
Syncthing tiene dos sistemas de funcionamiento básicos, el primero consiste en hacer sincronizaciones entre dos equipos que estén en la misma red local y el segundo entre un equipo que esté en la red local y otro que esté fuera de ella, lógicamente también se pueden hacer combinaciones entre esos dos modos.
Al hacer sincronizaciones Syncthing utiliza por defecto el protocolo TCP que los desarrolladores del programa recomiendan para sincronizaciones en la red local pero la cosa cambia si las sincronizaciones son fuera de ella ya que hay otras opciones disponibles, y una de ellas consiste en utilizar el protocolo QUIC en lugar del TCP configurado por defecto.
Una vez que tenemos configurado uno de los Syncthings con el otro Syncthing de otro dispositivo nos aparece esto en la configuración de ese otro dispositivo:
Por defecto la Dirección está configurada como dynamic. Para utilizar el protocolo QUIC tenemos que cambiar ese parámetro en LOS DOS SYNCTHINGS a sincronizar poniendo en cada uno de ellos la ip del otro dispositivo, el protocolo QUIC y el puerto que usa Syncthing que es el 22000
Un ejemplo sería quic://192.168.2.12:22000
Las siguientes configuraciones que paso a explicar las encontramos en el ajuste Avanzado de configuración de Syncthing y al igual que el caso anterior hay que configurarlas en los dos Syncthing a sincronizar variando los parámetros según el dispositivo independiéntemente si las sincronizaciones se hacen en la misma red local o fuera de ella.
Al poner el parámetro Database Tuning en large se obtiene un mayor rendimiento al aumentar el número de búferes y otros ajustes.
El parámetro Max Concurrent Incoming Request aumenta la cantidad de datos que se procesan y se transmiten por la red.
En este mismo apartado pero más abajo modificamos otros dos ajustes:
Al configurar como -1 el parámetro Progress Update Interval lo que hacemos es desactivarlo. El tiempo dedicado a las actualizaciones de progreso es tiempo no dedicado a la sincronización.
Syncthing se ejecuta y funciona con prioridad baja, al desactivar el ajuste Set Low Priority se consigue que Syncthing funcione con prioridad Normal con lo cual utiliza más tiempo de CPU y, por tanto, aumenta el rendimiento.
Los siguientes ajustes a modificar los tenemos que hacer en los dos Syncthings pero en este caso en las opciones de las carpetas a sincronizar:
Syncthing es un programa multinúcleo así que una buena forma de tunearlo es especificar el número de núcleos que tienen los dispositivos en los que está instalado. Tenemos que poner ese número de núcleos en el apartado Copiers.
Al modificar el apartado Copiers estamos obligados a modificar también el apartado Hashers.
Para terminar, todos los parámetros modificados en la configuración avanzada de Syncthing podemos revertirlos sin problemas a los que estaban por defecto en esa misma configuración.