linux java 选择题_java面试题:Linux

本文介绍了在Linux系统中如何检查端口占用、查看Tomcat端口号、查阅日志以及定位Java程序高CPU使用率的问题。通过netstat、lsof、ps和top等命令,可以有效地监控系统状态和诊断问题。同时,对于IO负载的检查,使用iostat命令可以获取相关信息。在排查线上问题时,jstack工具用于获取Java进程的堆栈信息,帮助分析CPU占用高的原因。
摘要由CSDN通过智能技术生成

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命令。

待补充。

操作系统

Q:什么是死锁?

Q:死锁的四个必要条件是什么?

1、互斥条件:一个资源每次只能被一个进程使用;

2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放;

3、不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺;

4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值