2

I have several java apps running on a machine and atop only tells me CMD java is there a way to get more information about that process, as I have +20 java in the list and I don´t know which one is which software. I know that htop can give me more insight with the tree view, but I would like to know if something similar is possible in atop. :)

Update #1

I tried it with -c which shows me how the app was started, but the problem is that it gets started by a wrapper which starts all apps the same way. Which means that all processes look like this:

$ java -Xms1G -Xmx2G ... 

If I use htop, I can switch to a tree view which gives me more information as I can see how the wrapper was started:

$ bash /path-which-tells-me-the-name-of-the-app/wrapper.sh
|-- java -Xms1G -Xmx2G ... 
|--|--thread1
|--|--thread2
|--|--...`

According to the comments, I would like to be able to get a quick overview which of the 20 processes/apps is causing how much CPU and i/o usage.

slm
  • 363,520
  • 117
  • 767
  • 871
user2693017
  • 285
  • 3
  • 13
  • 2
    I'd also encourage you to check out the other tools that are better suited to showing the happenings for Java based applications that were covered in this Q&A: [How to trace a java-program?](http://unix.stackexchange.com/questions/56940/how-to-trace-a-java-program/88640#88640). Tools such as `jvmtop`, `jvmmonitor`, `visualvm`, `jstat`, `jmap`, & `jstack` are pretty standard in the industry for debugging Java. – slm Mar 16 '14 at 21:26
  • is there any which can give me the overview above more than one and works with command line? I use the remote function of jvmmonitor, but I have to create one tab per app and I just want a quick overview. – user2693017 Mar 16 '14 at 23:53
  • Are you sure the full command is not visible? I can see the entire `azureus` command if I expand the terminal for example: `/usr/lib/jvm/java-7-openjdk-amd64/bin/java -classpath /usr/lib/jni:/usr/lib/java:/usr/share/java/Azureus2.jar:/usr/share/java/log4j-1.2.jar:/usr/share`, or at any rate enough to know the process. Also, does this have to be in `top`? Won't `ps` do? – terdon Mar 17 '14 at 00:13
  • yes, but as I said, the command is executed by the wrapper and so everything looks the same. as the wrapper uses the relative and not absolute path. I would need to see how the wrapper was started. – user2693017 Mar 17 '14 at 00:21

1 Answers1

1

If you check man atop, you'll see that it has the -c flag, like top, that will show the full command line used to launch the program:

   c    Show the command line of the process.

        Per  process the following fields are shown: process-id, the occu‐
        pation percentage for the choosen resource and  the  command  line
        including arguments.

So, either launch it with the flag:

atop -c

Or, hit c while in the interactive atop window.

References

slm
  • 363,520
  • 117
  • 767
  • 871
terdon
  • 234,489
  • 66
  • 447
  • 667
  • 2
    Incidentally, `atop` has a config file, atoprc, which can be configured so that this is the default. http://www.atoptool.nl/download/man_atoprc-5.pdf – slm Mar 16 '14 at 21:34
  • perfect, the only problem is that it looks the same for me :D I think that is because all apps use the same wrapper. What I see with -c is this `java -Xms1G -Xmx2G ....` and that is the same for all apps – user2693017 Mar 16 '14 at 23:42
  • In htop I can enable the tree view and see something like this `bash /path/file.sh` -> `java -Xms1G -Xmx2G ...` and the path tells me which app it is. – user2693017 Mar 16 '14 at 23:47
  • @user2693017 please [edit] your question and include that you tried this and failed. Ideally, also show us how to reproduce the issue. It works fine for me with the java processes I tried. – terdon Mar 16 '14 at 23:49
  • ok, I updated the question, I hope that makes it clearer – user2693017 Mar 17 '14 at 00:00