Reduce memory usage

From VuzeWiki
Jump to: navigation, search

Since many users have trouble with excessive memory usage that's caused by Azureus here are some rules of thumb how to reduce the required memory size.

Note: Most settings require the advanced user mode

  1. Get a current Azureus version, they're usually more optimized than older ones
  2. Update your Java version
  3. Disable plugins you don't need under Tools -> Options -> Plugins or even uninstall them via Plugins -> Uninstallation wizard. All plugins use up memory, especially the Safepeer plugin which uses quite a bit. Instead of safepeer, it might be better to use an external IPblocker tool or at least use only one blocklist and not the "paranoid" set.
    Note: Some plugins are used for day-to-day operation and shouldn't be removed, mainly those labeled as built-in.
  4. Make sure you have good settings, esp. the number of connections and active torrents determines the memory usage since every peer connection and every running torrent creates management overhead.
    • Many users overestimate the importance of the number of peer connections since they think more peers = more download, but that's a misconception. Peers will only be willing to give data to you if you give data to them. Since your upload speed likely has a low cap, it is in your best interest to connect to only a few peers and send them as much data as possible, so they will reciprocate. More peers = more memory used + less available bandwidth due overhead of the BitTorrent protocol.
      Generally 90-120 connections should be enough under most circumstances.
  5. Disable logging under Tools -> Options -> Logging
  6. Disable Tools -> Options -> Interface -> Display -> Show program icons in name column
  7. Switch to the classic UI under Tools -> Options -> Interface -> Start -> Vuze UI Chooser
  8. Set your disk cache size under Tools -> Options -> Files -> Performance Options to reasonable settings (4MB cache, 1MB read queue, 1MB write queue)
  9. in case you have enabled the save peer connections feature under tools -> options -> files either disable it (but not the Fast Resume mode) or set a reasonable limit... something that equals the number of peer max. connections.
  10. make sure the built-in tracker is disabled by unchecking both Enable Tracker on ... options under tools -> options -> tracker -> server
  11. make sure the checkbox under Tools -> Options -> Plugins -> Distributed Tracker is set
  12. create a link that calls Azureus.exe -J-Xmx64m to launch Azureus with a JVM heap size that's restricted to 64MB
  13. If you have the Advanced Statistics plugin installed, review its configuration settings and also decide whether you really need the plugin, as it uses a lot of memory.

Remember to restart Azureus, so that all the new settings get applied.

If that doesn't cut it then there also is the next, more experimental chapter:


You can try a current Vuze, sometimes nasty bugs and memory leaks that could only be discovered in a widespread release are fixed shortly thereafter.

If you have Sun Java Runtime Environment 6 Update 21 you can use the following parameters to tune it, note that this will require the server VM which is not shipped with all JREs, but is usually included in the JDK:

  • *nix: edit the startup script to set the JVM parameters below
  • windows: create an Azureus.exe.vmoptions file in the azureus directory and add the JVM parameters
 -Xmx64m -Xms10m -server -XX:MaxDirectMemorySize=512m -XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+UseParallelOldGCCompacting -XX:+UseParallelOldGCDensePrefix -XX:+UseParallelDensePrefixUpdate -XX:+UseAdaptiveSizePolicy -XX:+UsePSAdaptiveSurvivorSizePolicy -XX:+ResizeTLAB -XX:+DoEscapeAnalysis -XX:+AdjustConcurrency -XX:+UseThreadPriorities -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseDepthFirstScavengeOrder

omit the following parameters if you do not want to use the server VM:

-server -XX:+DoEscapeAnalysis

In case you like to try betas you can try a Development Build of the SWT graphics library that Vuze uses for displaying the user interface.

Since those are unstable versions you risk system instabilities, visual bugs or other issues that wouldn't occur when you use stable builds of SWT.

See also[edit]

Reduce CPU usage