From 1eae205e7d941d6a6554be4231362555c1891cea Mon Sep 17 00:00:00 2001 From: Menno van Leeuwen Date: Tue, 24 Jun 2025 11:06:24 +0200 Subject: [PATCH] Optimize JuiceFS performance settings and mount options The changes tune TCP buffers and enhance JuiceFS mount options for better throughput and caching behavior. --- config/ansible/tasks/servers/juicefs.yml | 16 +++++++++++++++- config/ansible/templates/juicefs.service.j2 | 14 +++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/config/ansible/tasks/servers/juicefs.yml b/config/ansible/tasks/servers/juicefs.yml index ba9d3a1..de42c1f 100644 --- a/config/ansible/tasks/servers/juicefs.yml +++ b/config/ansible/tasks/servers/juicefs.yml @@ -31,10 +31,24 @@ mode: "0755" become: true +- name: Configure JuiceFS network performance optimizations + ansible.builtin.sysctl: + name: "{{ item.name }}" + value: "{{ item.value }}" + state: present + reload: true + become: true + loop: + - { name: "net.core.rmem_max", value: "16777216" } + - { name: "net.core.wmem_max", value: "16777216" } + - { name: "net.ipv4.tcp_rmem", value: "4096 87380 16777216" } + - { name: "net.ipv4.tcp_wmem", value: "4096 65536 16777216" } + - name: Set JuiceFS facts ansible.builtin.set_fact: hetzner_access_key: "{{ lookup('community.general.onepassword', 'mfk2qgnaplgtk6xmfc3r6w6neq', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='AWS_ACCESS_KEY_ID') }}" - hetzner_secret_key: "{{ lookup('community.general.onepassword', 'mfk2qgnaplgtk6xmfc3r6w6neq', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='AWS_SECRET_ACCESS_KEY') + hetzner_secret_key: + "{{ lookup('community.general.onepassword', 'mfk2qgnaplgtk6xmfc3r6w6neq', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='AWS_SECRET_ACCESS_KEY') }}" redis_password: "{{ lookup('community.general.onepassword', '4cioblm633bdkl6put35lk6ql4', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='password') }}" diff --git a/config/ansible/templates/juicefs.service.j2 b/config/ansible/templates/juicefs.service.j2 index a13d071..a6d9fe7 100644 --- a/config/ansible/templates/juicefs.service.j2 +++ b/config/ansible/templates/juicefs.service.j2 @@ -5,7 +5,19 @@ Before=docker.service [Service] Type=simple -ExecStart=/usr/local/bin/juicefs mount redis://:{{ redis_password }}@localhost:6379/0 /mnt/object_storage --cache-dir=/var/jfsCache --buffer-size=1024 --prefetch=4 --cache-size=131072 --attr-cache=3 --entry-cache=3 --open-cache=3 +ExecStart=/usr/local/bin/juicefs mount redis://:{{ redis_password }}@localhost:6379/0 /mnt/object_storage \ + --cache-dir=/var/jfsCache \ + --buffer-size=4096 \ + --prefetch=16 \ + --cache-size=131072 \ + --attr-cache=4 \ + --entry-cache=4 \ + --open-cache=4 \ + -o writeback_cache \ + --max-uploads=80 \ + --max-deletes=80 \ + --writeback \ + --upload-delay=30s Restart=on-failure [Install]