Look like a nice tools provide more information for performance issue - http://oprofile.sourceforge.net/examples/

Check CPU problem with prstat
http://javaeesupportpatterns.blogspot.ca/2011/12/prstat-solaris-pinpoint-high-cpu-java.html
http://javaeesupportpatterns.blogspot.ca/2012/02/prstat-linux-how-to-pinpoint-high-cpu.html
http://javaeesupportpatterns.blogspot.ca/2011/12/prstat-aix-how-to-pinpoint-high-cpu.html

http://www.thegeekstuff.com/2012/03/reverse-engineering-tools

If we like to trace process detail flow, system call and file opened - http://www.ussg.iu.edu/UAU/advcomm/truss.html http://fuse4bsd.creo.hu/localcgi/man-cgi.cgi?truss+1 


     -l    Includes the id of the responsible lightweight process
           (LWP)  with  each  line of trace output. If -f is also
           specified, both the  process-id  and  the  LWP-id  are
           included.



If the process hang and we like to check why, can try pstack - http://www.google.com/search?client=opera&rls=en&q=pstack&sourceid=opera&ie=utf-8&oe=utf-8

Check where is the core dump to - http://groups.google.com/group/comp.unix.solaris/browse_thread/thread/9f46dfb277c72cc8#

Use gcore to generate coredump for running process - http://www.gsp.com/cgi-bin/man.cgi?section=1&topic=gcore

If we like to check the which process id using which port, we can use lsof or "pfiles /proc/*"
1) save the output of "pfiles /proc/*" to a file
2) grep the file for that port, then find the PID, e.g., say here is the part of the output:
<pre>
5859:   java -Djava.awt.headless=true -DX_R_BRGD -Xms512M -Xmx1024M -Djava.io.
  Current rlimit: 1024 file descriptors
   0: S_IFCHR mode:0666 dev:85,0 ino:980953 uid:0 gid:3 rdev:13,2
      O_RDONLY|O_LARGEFILE

....... ( 125 FD after) ......

 125: S_IFSOCK mode:0666 dev:313,0 ino:40404 uid:0 gid:0 size:0
      O_RDWR
        sockname: AF_INET 10.152.22.22  port: 18075
        peername: AF_INET 169.19.21.63  port: 41792
</pre>
Then PID 5859 is the process working with the port 18075, however, it only work for process which is viewable according to your permission setting

Another probably easier way, and provide more information, is using <pre>lsof -i :[port]</pre> - http://javarevisited.blogspot.com/2015/11/how-to-find-pid-of-process-listening-on-a-port-unix-netstat-lsof-command-examples.html

If we like to check the which process id using which file, we can use fuser - http://linuxcommand.org/man_pages/fuser1.html

Check host and port that any process accessing using lsof - http://www.geekology.co.za/blog/2009/10/checking-which-processes-are-accessing-internet-on-unix-machine/

How do I monitor or view the thread count of a certain process - ps -o pid,comm,user,thcount -p <process id> - http://superuser.com/questions/49408/how-do-i-monitor-or-view-the-thread-count-of-a-certain-process-on-aix

Examples of using strace, use -e to trace function call is useful - http://www.thegeekstuff.com/2011/11/strace-examples

The nm commands provides information on the symbols being used in an object file or executable file. - http://www.thegeekstuff.com/2012/03/linux-nm-command/

Use pmap -s -x to look at what's in the virtual address space of yr process and what portion thereof is resident in physical memory.
