zoukankan      html  css  js  c++  java
  • java面试题:Linux

    Q:Linux怎么查端口?端口被占用怎么办?
    netstat -ntulp | grep 2181//查看2181端口号
    netstat -pan | grep 2181 //查看2181端口号
    如下所示,其中的PID是进程号。

    [root@localhost bin]# netstat -pan | grep 2181
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name 
    tcp6       0      0 :::2181                 :::*                    LISTEN      7839/java           
    

    也可以使用以下命令:
    lsof -i:2181 //查看2181端口占用

    [root@localhost bin]# lsof -i:2181
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    java    7839 root   26u  IPv6  85064      0t0  TCP *:eforward (LISTEN)
    

    通过以上命令得到了端口对应的进程7839后,可以使用ps查看进程的使用情况。
    ps -aux | grep 7839 //查看7839进程的使用情况

    [root@localhost bin]# ps -aux | grep 7839
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root      7839  0.1  2.7 3296832 51860 ?       Sl   03:39   0:45  /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg
    

    就可以知道2181端口是被哪个程序占用了,然后判断是否使用KILL命令干掉。
    Q:Linux怎么查看Tomcat端口号?
    步骤跟上面的相反,先得到进程号PID,再根据PID去查看端口号

    ps -ef|grep tomcat
    

    假设查到的进程号为5772,那么如下根据进程号查端口号:

    netstat -anop |grep 5772
    

    Q:Linux怎么查看日志?
    cat filename | tail -n +3000 | head -n 1000 从第3000行开始,显示1000行。即显示3000~3999行
    cat filename| head -n 3000 | tail -n +1000 显示1000行到3000行
    cat -n filename |grep "关键字"
    cat filename | grep -C 5 '关键字' (显示日志里匹配字串那行以及前后5行)
    cat filename | grep -B 5 '关键字' (显示匹配字串及前5行)
    cat filename | grep -A 5 '关键字' (显示匹配字串及后5行)
    也可以用vim打开后,使用/关键字匹配。
    **Q:Linux如何找到 java 程序 CPU 使用率100%的原因? **

    1.用top 命令查看占用资源最多PID(进程): 
             如 pid 为 1000;
    2.再用 top -H -p  1000 命令查看在这个进程中,消耗 cpu 最多 的线程,如 1003;
    3.  最后使用 jstack 1000 > dump_file 把这个进程的堆栈信息 dump 到文件中,
    4.打开 dump_file,找到 id 为1003的线程(要转化为16进制),就能发现是哪个方法占用了 cpu,分析自己的代码 
    

    Q:Linux怎么查看IO负载?
    iostat -x
    Q:有没有用过jstack?怎么排查线上问题?说出排查线上问题的一个完整过程以及相关的Linux命令。
    详情见: https://mp.weixin.qq.com/s?__biz=MzU0OTk3ODQ3Ng==&mid=2247484656&idx=1&sn=f728dc671155fd690a8d38d80c96b11f&chksm=fba6ecf3ccd165e530a95d0e693194a3710bfd352d8b1cb0d18f3c4e57e70698d76fbd5b742b&mpshare=1&scene=1&srcid=#rd
    待补充。

    操作系统

    Q:什么是死锁?
    Q:死锁的四个必要条件是什么?
    1、互斥条件:一个资源每次只能被一个进程使用;
    2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放;
    3、不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺; 
    4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系;

    参考资料: https://blog.csdn.net/hanner_cheung/article/details/6081440

  • 相关阅读:
    django第10天(聚合查询,常用字段)
    django第9天(多表操作)
    django第8天(在测试文件中运行django项目|单表操作)
    django第七天(模板的复用性,include标签和母版)
    django第六天(模板相关,过滤器和标记)
    SparkCore2
    SparkCore
    SQL
    Spark基础
    使用Observer实现HBase到Elasticsearch的数据同步
  • 原文地址:https://www.cnblogs.com/expiator/p/10285405.html
Copyright © 2011-2022 走看看