FishEye 2.0 : Fix Out of Memory errors by increasing available memory
This page last changed on Jun 02, 2009 by pkamal.
I am getting Out of Memory errors, how can I allocate more memory to FishEye? Since the default memory setting usually is around 64MB or 128MB, you might have to adjust the settings to run a bigger FishEye instance with sufficient memory. On this page: Out Of Memory ErrorsThere are a number of different memory errors that the JVM will throw. The most common are listed as follows.
OutOfMemoryError: Java Heap Space
To solve this error, you will need to add the argument -Xmx1024m to FISHEYE_OPTS, in addition to any argument you use to set the heap size. Often you need to increase the amount of memory allocated to fisheye during the initial scan and period and once this is completed you can reduce back down. FISHEYE_OPTS="-Xms128m -Xmx1024m -XX:MaxPermSize=128m" OutOfMemoryError: PermGen space, or Permanent Generation Size
FISHEYE_OPTS="-Xms128m -Xmx512m -XX:MaxPermSize=128m" OutOfMemoryError: unable to create new native threadThis error occurs when the operating system is unable to create new threads. This is due to the JVM Heap taking up the available RAM.
For Linux the maximum heap size of the JVM cannot be greater than 2GB. If you only have 2GB RAM in your server, it is not recommended to set the Max size of the JVM that high. To fix this problem, you should reduce the size of your JVM Heap and also the size of the stack per thread. -Xss512k Please refer to this guide as a reference for JVM tuning.
OutOfMemoryError: GC overhead limit exceededThis error indicates that the JVM took too long to free up memory during its GC process. This error can be thrown from the Parallel or Concurrent collectors.
This kind of OutOfMemoryError can be caused if your java process is starting to use swapped memory for its heap. This will cause the JVM to take a lot longer than normal to perform normal GC operations. This can eventually cause a timeout to occur and cause this error. To overcome this issue, you need to make sure that all processes can't allocate more memory than there is system memory. In practice this is impossible to do for all processes. At a minimum you should make sure that all your jvm's do not have a total maximum memory allocation than your normally available system memory. Please refer to this guide for more information.
|
![]() |
Document generated by Confluence on Jul 06, 2009 21:40 |