常用linux技巧
查看线上日志环境配置
ssh我用的是iTern工具。每次登陆机器都要执行一次下面的命令
ssh [email protected]
对于我这种记性不好的,只能每次去查看ip,这样做很烦。我们可以创建一些快捷方式,以后每次直接点击打开就好,不用再记ip,输入命令了。
打开iTern -> Preferences -> Profiles 界面,左下角点击“+”号,创建一个session快捷方式
这样每次打开,只需要点击new下面login1这个快捷方式,它就会自动执行登陆命令,我们只需要输入密码就可以了,再也不用记住ip了。
如果碰到像跳板机那种,一段时间不操作就退出的,我们还需要在另外一个地方设置一下。
如果是查看线上日志,我们通过这种方式登陆了跳板机,但是还是需要再登陆一次线上机器。但是,每次想要查看线上某台机器的日志,得要去查找线上机器的ip,是不是很麻烦?其实,在跳板机器上,每个人都有自己的用户目录,在这里你可以记录下你常登陆的线上机器的ip。比如我常登陆的线上应用有这些:
[[email protected] ~]$ ls
gembone.sh minerals.sh tpolps.sh train.sh
我把这些会经常登陆的机器的ip放在这里,下次只要登陆上跳板机器就能看到这些应用的线上机器,不用再去psp上查看了。train.sh脚本的内容如下:
#! /bin/bash
echo "minerals-pub 10.176.56.34 "
echo "minerals 10.176.56.33 "
echo "minerals 10.176.56.35 "
echo "please input line number(1,2,3):"
read num
if [ $num -eq 1 ] ; then
ssh 10.176.56.34
elif [ $num -eq 2 ] ; then
ssh 10.176.56.33
elif [ $num -eq 3 ] ; then
ssh 10.176.56.35
fi
常用查看JVM信息命令
jps -v
查看当前用户已经启动的java进程的信息。
[gaea@v125057197 bin]$ jps -v
6674 start.jar -DappName=train -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=196m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseCompressedOops -Ddatabase.codeset=ISO-8859-1 -Ddatabase.logging=false -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dapplication.codeset=GBK -Djava.util.logging.config.file=/home/gaea/train/conf/general/logging.properties -Dcom.sun.management.config.file=/home/gaea/train/conf/jmx/jmx_monitor_management.properties -Dorg.eclipse.jetty.util.URI.charset=GBK -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4078,server=y,suspend=n -Dcom.taobao.pandora.tmp_path=/home/gaea/train/logs/pandora -Dhsf.configuration.dir=/home/gaea/train/.default/tmp -DHSF.LOG.PATH=/home/gaea/train/logs/hsf -Dproject.name=train -Djetty.logs=/home/gaea/train//logs -Djetty.home=/usr/alibaba/jetty -Djava.io.tmpdir=/home/gaea/train/.default/t
29949 Jps -Dapplication.home=/opt/taobao/install/jdk-1.7.0_51 -Xms8m
jstack pid
打印出进程的堆栈信息
jmap
打印出某个进程内存占用情况。
[gaea@v125057197 bin]$ jmap -heap 6674
Attaching to process ID 6674, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.45-b08-internal
using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 1073741824 (1024.0MB)
NewSize = 174456832 (166.375MB)
MaxNewSize = 174456832 (166.375MB)
OldSize = 348913664 (332.75MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 134217728 (128.0MB)
MaxPermSize = 205520896 (196.0MB)
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
New Generation (Eden + 1 Survivor Space):
capacity = 157024256 (149.75MB)
used = 70410920 (67.14908599853516MB)
free = 86613336 (82.60091400146484MB)
44.840791985666215% used
Eden Space:
capacity = 139591680 (133.125MB)
used = 69549448 (66.32752227783203MB)
free = 70042232 (66.79747772216797MB)
49.82349091292547% used
From Space:
capacity = 17432576 (16.625MB)
used = 861472 (0.821563720703125MB)
free = 16571104 (15.803436279296875MB)
4.941736665883458% used
To Space:
capacity = 17432576 (16.625MB)
used = 0 (0.0MB)
free = 17432576 (16.625MB)
0.0% used
concurrent mark-sweep generation:
capacity = 899284992 (857.625MB)
used = 90656392 (86.45667266845703MB)
free = 808628600 (771.168327331543MB)
10.080941281848947% used
Perm Generation:
capacity = 134217728 (128.0MB)
used = 82401568 (78.58425903320312MB)
free = 51816160 (49.415740966796875MB)
61.39395236968994% used
35108 interned Strings occupying 3394024 bytes.
jstat
查看虚拟机垃圾回收的情况
[gaea@v125057197 bin]$ jstat -gcutil 6674 1000
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 4.94 72.36 10.08 61.39 535 6.858 0 0.000 6.858
0.00 4.94 72.36 10.08 61.39 535 6.858 0 0.000 6.858
0.00 4.94 72.36 10.08 61.39 535 6.858 0 0.000 6.858
0.00 4.94 72.36 10.08 61.39 535 6.858 0 0.000 6.858
0.00 4.94 72.36 10.08 61.39 535 6.858 0 0.000 6.858
0.00 4.94 72.36 10.08 61.39 535 6.858 0 0.000 6.858
0.00 4.94 72.36 10.08 61.39 535 6.858 0 0.000 6.858
查看网络命令
netstat
查看端口4078的链接情况
[gaea@v125057197 bin]$ netstat -nalp | grep 4078
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:4078 0.0.0.0:* LISTEN 6674/java
一些常用的jvm查看命令见http://blog.csdn.net/fenglibing/article/details/6411940