→ Applies to: Hyperion 9.x and above
IMPORTANT
An ARC cache (Adaptive Replacement Cache) is a high-speed data caching system used primarily by the ZFS file system. It stores frequently and recently accessed files and metadata in system RAM, making data retrieval much faster than reading it from physical hard drives.
Do not lower the ARC cache reservation below 20 GB. ARC cache directly affects storage read performance — reducing it too far can negatively impact the performance of all VMs running on the system, not just free up capacity.
Step 1. Connect to Hyperion appliance via SSH as admin
ssh admin@<your_ip_address_or_hostname>
Step 2. Become Super User
sudo su -
Step 3. Check the system's memory allocation configuration
syneto-memory-infoEXAMPLE OUTPUT
============================================================ CURRENT SYSTEM MEMORY ALLOCATION DECISIONS ============================================================ 📊 SYSTEM RESOURCES: Total RAM: 250 GB Available Disk: 45 GB (raw) Effective Available Disk: 173 GB (including existing swap) 🧮 MEMORY BREAKDOWN: OS Reserved: 12 GB ARC Cache: 50 GB Usable RAM for VMs: 188 GB 💾 RECOMMENDED SWAP CONFIGURATION: zRAM Size: 15 GB Disk Swap Chunks: 4 × 32 GB Total Disk Swap: 128 GB Total Swap: 143 GB 📋 ACTIVE SWAP CONFIGURATION: zRAM Size: 4 GB Disk Swap Chunks: 4 × 32 GB Total Disk Swap: 128 GB Total Swap: 132 GB 🖥️ VIRTUAL MACHINE CAPACITY: Max VM Memory: 331 GB Memory Efficiency: 1.3x RAM 📈 SWAP UTILIZATION: Disk Utilization: 99.2% of available Swap/RAM Ratio: 0.6:1 ⚙️ CURRENT ARC SETTING: Current ARC Max: 50 GB Recommended ARC: 50 GBIMPORTANT
By default, Hyperion allocates 20% of total system RAM to the ARC cache.
Step 4. Copy the Syneto Diana service configuration template
cp /etc/syneto-diana-memory-sizer.yaml.default /etc/syneto-diana-memory-sizer.yaml
Step 5. Edit the configuration file
vi /etc/syneto-diana-memory-sizer.yamlIMPORTANT
Make sure to copy and paste the exact lines below.# ARC Cache Configuration arc: # Maximum percentage of total RAM that can be used for ARC cache # Default: 20% for systems with virtualization, 90% for systems without max_percentage: 0.08 # Minimum ARC size in bytes (default: 2GB) # min_size_bytes: 2147483648Save and Exit
:wqNOTE
The default value is 20% of available RAM memory. This example sets ARC to 8% of total RAM (20 GB on a 250 GB system). Adjust the value to match the desired ARC size as a percentage of total RAM on the target system.IMPORTANT
The configuration change in/etc/syneto-diana-memory-sizer.yamlis persistent and survives reboots, but it is not applied to the running system immediately. Step 8 applies the new ARC limit to the live system right away, without waiting for a reboot. If Step 8 is skipped, the new configuration will still take effect automatically the next time the system reboots.
Step 6. Restart the Syneto Diana service
systemctl restart syneto-diana.service
Step 7. Verify the new configuration
syneto-memory-infoEXAMPLE OUTPUT
============================================================ CURRENT SYSTEM MEMORY ALLOCATION DECISIONS ============================================================ 📊 SYSTEM RESOURCES: Total RAM: 250 GB Available Disk: 45 GB (raw) Effective Available Disk: 173 GB (including existing swap) 🧮 MEMORY BREAKDOWN: OS Reserved: 12 GB ARC Cache: 20 GB Usable RAM for VMs: 218 GB 💾 RECOMMENDED SWAP CONFIGURATION: zRAM Size: 15 GB Disk Swap Chunks: 4 × 32 GB Total Disk Swap: 128 GB Total Swap: 143 GB 📋 ACTIVE SWAP CONFIGURATION: zRAM Size: 4 GB Disk Swap Chunks: 4 × 32 GB Total Disk Swap: 128 GB Total Swap: 132 GB 🖥️ VIRTUAL MACHINE CAPACITY: Max VM Memory: 361 GB Memory Efficiency: 1.4x RAM 📈 SWAP UTILIZATION: Disk Utilization: 99.2% of available Swap/RAM Ratio: 0.6:1 ⚙️ CURRENT ARC SETTING: Current ARC Max: 50 GB Recommended ARC: 20 GB ============================================================IMPORTANT
The Recommended ARC value now reflects the new configuration (20 GB), but Current ARC Max still shows the old value (50 GB) until applied at runtime — see Step 8
Step 8. Apply the new ARC limit at runtime (replace <value> with the correct information)
echo <value> > /sys/module/zfs/parameters/zfs_arc_maxEXAMPLE
echo 21474836480 > /sys/module/zfs/parameters/zfs_arc_maxIMPORTANT
Calculate the value to set using the formula: x*1024*1024*1024 = 21474836480 (x being the value you want to change it to, in this case 20GB).
Step 9. Verify the runtime change took effect
syneto-memory-infoEXAMPLE OUTPUT
============================================================ CURRENT SYSTEM MEMORY ALLOCATION DECISIONS ============================================================ 📊 SYSTEM RESOURCES: Total RAM: 250 GB Available Disk: 45 GB (raw) Effective Available Disk: 173 GB (including existing swap) 🧮 MEMORY BREAKDOWN: OS Reserved: 12 GB ARC Cache: 20 GB Usable RAM for VMs: 218 GB 💾 RECOMMENDED SWAP CONFIGURATION: zRAM Size: 15 GB Disk Swap Chunks: 4 × 32 GB Total Disk Swap: 128 GB Total Swap: 143 GB 📋 ACTIVE SWAP CONFIGURATION: zRAM Size: 4 GB Disk Swap Chunks: 4 × 32 GB Total Disk Swap: 128 GB Total Swap: 132 GB 🖥️ VIRTUAL MACHINE CAPACITY: Max VM Memory: 361 GB Memory Efficiency: 1.4x RAM 📈 SWAP UTILIZATION: Disk Utilization: 99.2% of available Swap/RAM Ratio: 0.6:1 ⚙️ CURRENT ARC SETTING: Current ARC Max: 20 GB Recommended ARC: 20 GB ============================================================