1

An application is running in a high end Linux server with 16 GB RAM and 100 GB Hard Disk. We have following command to run the program.

nohup java -server -Xmn512m -Xms1024m -Xmx1024m -Xss256k -verbose:gc -Xloggc:/logs/gc_log.txt MyClass >> /output.txt

This was written by someone else I'm trying to understand why -verbose:gc -Xloggc: is used. When I checked this command it collects gc logs but does this cause performance issue to application? Also I want to relook at my memory arguments, the application is using complete 16 GB RAM and CPU utilization is less tha 5 percent. We are analyzing the reasons for memory utlization. but Whether we can increase memory parameter values for better performance or existing will suffice?

learner
  • 625
  • 2
  • 11
  • 25

1 Answers1

1

The answer to fist part of your question is -verbose:gc implies that more GC logs will be appended to the file provided in -Xloggc. If the CPU usage is <5%, then there is no issue in keeping gc logs as verbose.

For 2nd part, it is not possible that if you assign 1024m of heap and still application takes 16GB RAM.

sky
  • 417
  • 1
  • 5
  • 13
  • Maybe it isn't Java itself that is taking the 16GB? If the OP is using SQLite, MongoDB, or some other memory-hog of a data store, this may explain what he is observing. – Jesse Webb Dec 27 '12 at 14:30