以下文章摘录自:http://iamzhongyong.iteye.com/blog/1337294 感谢分享
java问题排查常用linux命令
最近部门的测试环境总是半夜挂掉,有感于线上问题排查的种种困惑,所以打算彻底扫盲一下问题排查的一些关键命令,在真正火灾来临的时候,能够迅速的定位问题。
重用的linux命令总体分为几个大类,以前自己觉得,这些命令,在用的时候现查就行,但是经历了几次事情之后,我觉得对于这些工具在问题真正来临的会后需要灵活运用,灵活运用需要平时对这些就很熟悉,自己很多没有熟悉,所系需要恶补一下,在问题真正来临的时候,自己能够冷静准确的处理问题。
(1)ping :
功能是检测主机,执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
(2) netstat:
显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
·netstat –s
本选项能够按照各个协议分别显示其统计数据。如果我们的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么我们就可以用本选项来查看一下所显示的信息。我们需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
·netstat –e
本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。
·netstat –a
本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请(LISTENING)的那些连接。
·netstat –n
显示所有已建立的有效连接。
(3)hostname
显示或设置系统的主机名;如果无任何选项和主机名,则用于显示系统的主机名。
在看这个命令的时候想起了windows中修改host文件来进行测试,这里顺便了解了一下host文件的作用。
Hosts文件的格式:
这个文件包含IP地址到HOST name(主机名)的映射关系.每一条独自占有一行.
IP地址应该放在第一位,后面应该紧跟着Host name. IP地址与Host name之间应该被最少一个空格隔开.对于每行的映射说明,用“#”分割后用文字说明。
Hosts文件在Windows中的用途:
访问某个网站通常是根据域名访问,比如:http://www.9usb.net.我们在浏览器中输入以上域名后,后台就首先通过DNS服务器把网络域名www.9usb.net解析成173.XXX.XXX.XXX的IP地址后,我们的计算机才能访问。要是对于每个域名请求我们都要等待域名服务器解析后返回IP信息,这样访问网络的效率就会降低。
Hosts文件起作用的地方就是在由域名转换成IP的过程中。hosts文件在本地保存了一个域名和IP地址的映射,能提高解析效率。Windows系统在进行DNS请求以前,Windows系统会先检查Hosts文件中是否有这个地址映射关系,如果有则调用这个IP地址映射,如果没有再向已知的DNS服务器提出域名解析。
Hosts的请求级别比DNS高。
Host文件在具体使用中的作用
1.绕开DNS请求,节省域名解析时间
对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,这样当我们输入域名计算机就能很快解析出IP,而不用请求网络上的DNS服务器。在本地进行域名解析比请求DNS服务器进行转换要省时间,这大大加快了访问速度。
2.方便局域网用户
通常局域网一般不会架设DNS服务器,访问某些服务要输入难记的IP地址,这就比较不方便。现在可以分别给这些服务器取个容易记住的名字,然后在Hosts中建立IP映射,这样以后访问的时候我们输入这个服务器的名字就OK了。
3、屏蔽网站和解屏蔽网站
4.顺利连接系统
(4)uptime
linux系统中的uptime命令主要用于获取主机运行时间和查询linux系统负载等信息。
uptime命令可以显示系统已经运行了多长时间,信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
uptime命令用法十分简单:直接输入uptime即可.
例如: 17:07:22 up 79 days, 17:57, 1 user, load average: 0.08, 0.08, 0.02
(5)TOP
TOP显示的内容详解
在TOP命令运行的过程中,点击下面的键,可以进行进一步的显示。
(1)u:指定显示用户进程。
(2)1 :显示每个CPU的统计信息。
(3)P:按%CPU使用率排行。shift+p。
(4)M:按%MEM排行。shift+m。
(5)<Space>:立即刷新。
(6)-H : 显示线程。当这个设定开启时,将显示所有进程产生的线程。
(7)-p : 监控指定的进程。当监控多个进程时,进程ID以逗号分隔。这个选项只能在命令行下使用。
---------------------------------------------------------------------------------------
- 查看java进程中各个线程占用CPU以及内存情况
top -H -p `pgrep java -u admin`
- 加入看到8440这个线程有异常,进制转换
printf '0x%x\n' 8440
- 看这个线程在做什么事情
sudo -u admin /opt/taobao/java/bin/jstack `pgrep java -u admin` | grep -C 20 0x20f8 –color
---------------------------------------------------------------------------------------
(6)sar
sar 的主要作用:
主要负责收集、汇报与存储系统运行信息的。有两个参数非常非常常用,就是“时间间隔”和“输出次数”。默认输出CPU的信息,但是内存、Load、IO的情况都可以查看
1、把sar输出的信息保存到文件中,只要 -o filename即可,不过在看次文件的时候,需要sar -f filename 否则通过cat看到的是乱码
2、CPU是多核的情况下,查看每一下的情况已经统计情况,
sar -P ALL 显示每一核的情况已经总体情况
sar -P 数字 显示特定CPU的情况
3、查看历史的sar的情况
sar -u(r/q/) -f /var/log/sa/sa01 最后一个为具体的日志(sa+日期中的天数)
4、sar -q 查看load的情况
5、sar -r 查看内存
6、sar -n 查看网络情况
(7)vmstat
(8)ps: CPU高的检查思路与实例(Linux)
step 1. 在Linux中检查出占用CPU最多的线程
命令: ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu >/opt/cpu.txt
e.g: root 3449 1 3450 02:05:54 99.2 java -jar .... -->tid=3450的线程占用了单核CPU 99.2%的使用率.
step 2. 使用jdk中自带的工具.jstack转储出jvm中当前pid中的线程
命令: jstack -l pid >/opt/jstack.log
e.g: "main" prio=10 tid=0x000000004142c800 nid=0xd7a runnable [0x0000000000d3f000]....
step 3. 将tid=3450 转换成16进制数即"d7a",从step 2中得到的线程转储文件中,查找"0xd7a"即可得到在java app中
实际的运行线程.即:nid=0xd7a 对应的"main"线程.
(9)grep/egrep/fgrep
(10)awk
(11)kill
(12)mapstat
(13)iostat
(14)df/du
(15)
查看挂接的分区状态: mount | column -t
查看hosts配置:cat /etc/hosts
netstat -anp|grep 端口号 或 lsof -i:端口号
netstat -tln 查看服务监听端口
相关推荐
Linux备忘手册推荐阅读
2. **文件和目录管理**:在Linux中,`mkdir`用于创建目录,`rmdir`或`rm -r`用于删除目录,`touch`用于创建新文件,`mv`用于移动或重命名文件和目录,`cp`用于复制文件和目录。理解文件权限和所有权的概念(如`chmod...
Linux备忘手册分享 在IT领域,Linux是一个广泛使用的开源操作系统,它以其稳定性和灵活性而备受推崇。Linux系统是基于Unix的设计理念,适用于服务器、桌面环境以及嵌入式设备等多种平台。本备忘手册旨在帮助用户更...
Linux备忘手册基础知识
本备忘录旨在帮助对Linux感兴趣的人员快速掌握一些常用命令,以便于日常操作和开发工作。 1. **SSH (Secure Shell)**:SSH是一种加密的网络协议,允许用户进行远程登录和命令执行。在Windows上,可以使用PuTTY和...
2. **权限管理**:理解Linux的权限模型,如rwx权限、文件与目录的权限设置,以及`chown`, `chmod`等命令的应用。 3. **进程管理**:掌握如何查看(`ps`)和管理(`kill`, `nohup`, `bg`, `fg`)系统中的进程,以及...
内容的减少的另一个好处是,让这个linux初级学习备忘手册变的无比轻薄,你上打印店花费2-4元钱就可以打印出成品,并随身携带。 就算丢失或者坏掉,你也不用心疼,直接再打印一张就可以了。如果你一分钱也不想花,还...
《程序员Linux备忘手册》是一份专为程序员设计的实用指南,旨在帮助开发者在Linux环境中高效工作。这个压缩包“linux-memo-master.zip”包含了丰富的Linux相关知识,涵盖了从基础命令到高级操作的各个方面,是程序员...
linux速查备忘手册,程序员必备手册,linux新手指南
它是Linux备忘手册,而不是学习手册。 有些小伙伴可能拿到这个手册后,说完全看不懂,没办法进行学习。这手册就是个垃圾。这可能是你误会了,他是备忘手册,而不是学习手册。也就是说,是你学习完了Linux,在使用中...
Linux命令备忘手册是每一位Linux用户或系统管理员必备的参考资料,它涵盖了在Linux操作系统中进行日常操作、系统管理以及问题排查所需的各种命令。Linux是一种开源的类UNIX操作系统,以其稳定性和灵活性著称,广泛...
这份"Linux速查备忘命令手册"是为那些在Linux环境中工作的人们准备的一份实用工具,无论你是初学者还是经验丰富的系统管理员,都能从中受益。 1. **基础命令** - `ls`:列出目录内容,`-l`选项可以以详细模式显示...
本备忘单将详细介绍Linux命令列表,帮助你更好地理解和掌握Linux操作系统的日常使用。 1. **基本命令** - `ls`: 列出目录内容。 - `cd`: 改变当前工作目录。 - `pwd`: 显示当前工作目录。 - `touch`: 创建新...
常用Linux命令备忘速查手册
为什么程序员要学习Linux? 作为一个程序员,必须要学习Linux。注意我说的是所有程序员,无论你是后端、前端还是算法工程师,无论你是Java、Python、PHP还是Golang...都必须学习Liunx。也许你会反驳我说,Linux不是...
个人总结的Linux关联的一些资料,包括VMware下Linux开发环境的搭建以及网络配置等,常用Linux命令的使用,Linux各种服务器的架构笔记
在本文中,我们将探讨如何使用GTK 2开发一款针对Linux操作系统的备忘录程序。GTK+2是一种广泛使用的开源图形用户界面构建工具包,尤其在GNOME桌面环境中得到广泛应用。由于Linux平台上缺少类似Windows的便捷提醒软件...
个人的Linux常用命令备忘录_linux-command
Linux速查备忘手册是一份关于Linux操作系统的基本命令、操作以及常用工具的使用指南。该手册主要面向Linux系统管理员、开发人员以及对Linux感兴趣的用户,提供快速查阅和参考功能,帮助他们更高效地管理Linux系统和...