美文网首页
Linux常用命令(更新ing)

Linux常用命令(更新ing)

作者: 天边010 | 来源:发表于2017-02-20 20:37 被阅读0次

    系统常用命令

    grep ^processor /proc/cpuinfo | wc -l    //检测当前VPS/服务器的CPU核心数。
    which java    //查找java所在的目录路径
    df -h  //查看挂载磁盘
    ps -ef | grep nginx   //查看运行情况
    ps -aux | grep tomcat 
    pwd  //显示当前路径
    cat /etc/redhat-release  //查看系统版本
    source /etc/profile    //修改profile文件后使其生效(环境变量)
    echo $PATH //查看环境变量
    clear   //清屏
    

    目录、文件操作

    mkdir test   //创建一个test的文件夹
    rm -fr test // 删除文件,文件夹 -f强制删除 -r是递归
    
    cp -rf abc tempdir //拷贝当前目录abc文件及内容到当前目录的tempdir目录下
    
    mv A B   //重命名文件A为B
    
    chmod -R 777 /home/user 注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx
    chmod -R a-w phpmyadmin/       取消phpmyadmin目录下的所有文件可写权限
    ls -la www.bonavideo.com //查看文件夹权限
    
    find / -name nginx.conf   //查找指定文件名的文件
    

    性能

    top #使用top命令查看资源占用情况
    [root@account-tomcat-01 ~]$ top
    top - 14:51:10 up 233 days, 11:40,  2 users,  load average: 6.85, 5.62, 3.97
    Tasks: 192 total,   2 running, 190 sleeping,   0 stopped,   0 zombie
    %Cpu(s): 97.3 us,  0.3 sy,  0.0 ni,  2.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem : 16268652 total,  5114392 free,  6907028 used,  4247232 buff/cache
    KiB Swap:  4063228 total,  3989708 free,    73520 used.  8751512 avail Mem 
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                               
    14063 root       20   0 9260488 4.627g  11976 S 229.1 29.8 117:41.66 java
    
    pidstat 1 监控实时变化
    [root@iZ2ze5nzoz9lk751zuw65qZ bin]# pidstat 1
    Linux 2.6.32-573.22.1.el6.x86_64 (iZ2ze5nzoz9lk751zuw65qZ)      04/08/2017      _x86_64_        (4 CPU)
    
    07:26:03 PM       PID    %usr %system  %guest    %CPU   CPU  Command
    
    07:26:04 PM       PID    %usr %system  %guest    %CPU   CPU  Command
    07:26:05 PM     19974    0.00    1.00    0.00    1.00     2  pidstat
    
    07:26:05 PM       PID    %usr %system  %guest    %CPU   CPU  Command
    07:26:06 PM     19879    0.00    1.00    0.00    1.00     2  java
    
    07:26:06 PM       PID    %usr %system  %guest    %CPU   CPU  Command
    07:26:07 PM     19974    1.00    0.00    0.00    1.00     2  pidstat
    07:26:07 PM     20915    0.00    1.00    0.00    1.00     1  AliYunDun
    
    ps -mp pid -o THREAD,tid,time 查看该进程的线程情况
    [root@account-tomcat-01 ~]$ ps -mp 14063 -o THREAD,tid,time 
    USER     %CPU PRI SCNT WCHAN  USER SYSTEM   TID     TIME
            361   -    - -         -      -     - 02:05:58
    root       0.0  19    - futex_    -      - 14063 00:00:00
    root       0.0  19    - poll_s    -      - 14064 00:00:00
    root      44.5  19    - -         -      - 14065 00:15:30
    root      44.5  19    - -         -      - 14066 00:15:30
    root      44.4  19    - -         -      - 14067 00:15:29
    root      44.5  19    - -         -      - 14068 00:15:30
    root      44.5  19    - -         -      - 14069 00:15:30
    root      44.5  19    - -         -      - 14070 00:15:30
    root      44.5  19    - -         -      - 14071 00:15:30
    root      44.6  19    - -         -      - 14072 00:15:32
    root       2.2  19    - futex_    -      - 14073 00:00:46
    root       0.0  19    - futex_    -      - 14074 00:00:00
    root       0.0  19    - futex_    -      - 14075 00:00:00
    root       0.0  19    - futex_    -      - 14076 00:00:00
    root       0.7  19    - futex_    -      - 14077 00:00:15
    
    从输出信息可以看出,14065~14072之间的线程CPU占用率都很高
    
    jstack 查看堆栈信息
    [root@account-tomcat-01 ~]$ printf "%x\n" 14065   ##挑选TID为14065的线程,查看该线程的堆栈情况,先将线程id转为16进制,使用printf “%x\n” tid命令进行转换
    36f1
    [root@root-web-01 ~]$ jstack 14063 |grep 36f1 -A 30
    "GC task thread#0 (ParallelGC)" prio=10 tid=0x00007fa35001e800 nid=0x36f1 runnable 
    "GC task thread#1 (ParallelGC)" prio=10 tid=0x00007fa350020800 nid=0x36f2 runnable 
    "GC task thread#2 (ParallelGC)" prio=10 tid=0x00007fa350022800 nid=0x36f3 runnable 
    "GC task thread#3 (ParallelGC)" prio=10 tid=0x00007fa350024000 nid=0x36f4 runnable 
    "GC task thread#4 (ParallelGC)" prio=10 tid=0x00007fa350026000 nid=0x36f5 runnable 
    "GC task thread#5 (ParallelGC)" prio=10 tid=0x00007fa350028000 nid=0x36f6 runnable 
    "GC task thread#6 (ParallelGC)" prio=10 tid=0x00007fa350029800 nid=0x36f7 runnable 
    "GC task thread#7 (ParallelGC)" prio=10 tid=0x00007fa35002b800 nid=0x36f8 runnable 
    "VM Periodic Task Thread" prio=10 tid=0x00007fa3500a8800 nid=0x3700 waiting on condition 
    JNI global references: 392
    
    从输出信息可以看出,此线程是JVM的gc线程。此时可以基本确定是内存不足或内存泄露导致gc线程持续运行,导致CPU占用过高。
    
    使用jstat -gcutil命令查看进程的内存情况
    [root@account-tomcat-01 ~]$ jstat -gcutil 14063 2000 10
      S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
      0.00   0.00 100.00  99.99  26.31     42   21.917   218 1484.830 1506.747
      0.00   0.00 100.00  99.99  26.31     42   21.917   218 1484.830 1506.747
      0.00   0.00 100.00  99.99  26.31     42   21.917   219 1496.567 1518.484
      0.00   0.00 100.00  99.99  26.31     42   21.917   219 1496.567 1518.484
      0.00   0.00 100.00  99.99  26.31     42   21.917   219 1496.567 1518.484
      0.00   0.00 100.00  99.99  26.31     42   21.917   219 1496.567 1518.484
      0.00   0.00 100.00  99.99  26.31     42   21.917   219 1496.567 1518.484
      0.00   0.00 100.00  99.99  26.31     42   21.917   220 1505.439 1527.355
      0.00   0.00 100.00  99.99  26.31     42   21.917   220 1505.439 1527.355
      0.00   0.00 100.00  99.99  26.31     42   21.917   220 1505.439 1527.355
    从输出信息可以看出,Eden区内存占用100%,Old区内存占用99.99%,Full GC的次数高达220次,并且频繁Full GC,Full GC的持续时间也特别长,平均每次Full GC耗时6.8秒(1505.439/220)。根据这些信息,基本可以确定是程序代码上出现了问题,可能存在不合理创建对象的地方。
    

    配置开机启动SVN

    # vim /etc/rc.d/rc.local
    
    添加内容
    
    svnserve -d -r /data/svn/project/
    注意:升级CentOS7后,原来习惯向/etc/rc.d/rc.local直接添加启动脚本/程序的方法无效了,这是需要给/etc/rc.d/rc.local赋予可执行权限
    
    # chmod +x /etc/rc.d/rc.local
    

    防火墙

    查看当前打开的端口

    [root@iz2zeesqjkzuv817drjml8z opt]# firewall-cmd --list-ports
    3690/tcp
    

    添加新的端口

    [root@iz2zeesqjkzuv817drjml8z opt]# firewall-cmd --permanent --add-port=9000/tcp                                          
    success
    

    重启

    [root@iz2zeesqjkzuv817drjml8z opt]# firewall-cmd --reload                                                                                                                               
    success
    

    其他命令
    https://blog.csdn.net/Joe68227597/article/details/75207859

    查看端口使用情况

    netstat -tnlp
    

    相关文章

      网友评论

          本文标题:Linux常用命令(更新ing)

          本文链接:https://www.haomeiwen.com/subject/ctnewttx.html