@Korgua
Thanks for posting here.
Here are some approaches to better control the RAM usage:
1. Understanding the Behavior
- Java (especially with `javaw.exe`) often reserves more memory than specified by `-Xmx` for performance optimization
- The Omada Controller may have its own memory requirements that override your settings
2. Effective Tweaks to Try
- Add these JVM options to your `start.bat` (append them to your existing line):
```bat
-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=4 -XX:ConcGCThreads=2 -XX:G1ReservePercent=15
```
(This enables more efficient garbage collection)
- Try these stricter memory limits:
```bat
-Xms128M -Xmx768M -XX:MaxMetaspaceSize=256M
```
3. Omada-Specific Solutions
- Check `C:\Users\...\Omada Controller\properties\system.properties` for any memory-related settings
- Create/Edit `jvm.options` in the same folder with:
```
-Xmx768M
-XX:MaxMetaspaceSize=256M
```
4. Alternative Approaches
- Reduce monitoring intensity in Omada settings (fewer statistics collected = less memory)
- Limit client history retention in Controller Settings → Monitoring → Client History
5. If All Else Fails
- The Omada Controller is known to be memory-hungry. With your device count (11 APs + switch + 30 clients), 1.8GB might be normal operation.
- Consider:
- Running it on more powerful hardware
- Using the Linux version (typically more memory-efficient)
- Setting up the Omada Software Controller on a dedicated device
6. **Verification**
After making changes:
1. Stop the Omada service completely
2. Delete the `temp` folder in the Omada installation directory
3. Restart the service
Monitor with Task Manager → Details tab to see actual memory usage (look at both "Memory" and "Working Set" columns).
For your device count, 1.2GB-2GB is within expected range, but these tweaks should help prevent excessive growth beyond that.