常见的程序的错误:

1、Java.lang.OutOfMemory(内存泄露) --->OOM 数据读写,上传文件的服务,下载文件的服务,淘宝发放优惠卷

2、TimeOut,超时 主要指的是客户端不断的向服务端发送请求,服务端这边的资源有限(内存和CPU),那么有可能会出现超时

3、Java空指针 Java.lang.NullPointException

4、java.StackOverExpection 堆栈溢出

帮助命令

man

man ls

man rm 

info

info ls

 info rm

Linux权限操作

chmod:读:r-->4 写:w-->2 执行:x--->1

chmod使用数字修改权限

chmod使用数字修改文件的权限

 第一个“-”为空,表示非目录(即文件);

第一组[rw-]表示所有者具有读写权限,权限值为6;

第二组[rw-]表示所属组具有读写权限,权限值为6;

第三组[r--]表示其他人具有读权限,权限值为4。

chmod使用数字修改文件夹的权限

 

对⽂件来讲,其可拥有的最⼤默认权限是 666,即 rw-rw-rw-。也就是说,使⽤⽂件的任何⽤户都没有执⾏(x)权限。原因很简单,执⾏权限是⽂件的最⾼权限,赋予时绝对要慎重,因此绝不能在新建⽂件的时候就

默认赋予,只能通过⽤户⼿⼯赋予。

对⽬录来讲,其可拥有的最⼤默认权限是 777,即 rwxrwxrwx。

chmod使用字母修改权限

 

 

资源占用命令

1、free

 free -h 以M(兆)为单位显示内存的占用情况

 

2、uptime

平均负载(load average):最近1分钟、5分钟、15分钟系统的资源

 

3、nmon

nmon :查看系统的资源,需要额外的安装(是一个第三方的工具)

下载网址为:http://nmon.sourceforge.net/pmwiki.php

使⽤该命令可以监控Linux的各个资源信息,输⼊nmon,输出如下:

分别输入c(查看系统cpu)、m(查看系统内存)、d(查看系统磁盘)

4、top整体负载

  (1)第⼀⾏: 系统时间 + 系统运⾏时间 + ⼏个⽤户 + 1/5/15分钟系统平均负载

(2)第⼆⾏:进程总数(total) + 正在运⾏进程数(running) + 睡眠进程数(sleeping) + 停⽌的进程数(stopped)+ 僵⼫进程数(zombie)

(3)第三⾏:⽤户空间CPU占⽐(us) + 内核空间CPU占⽐(sy)+ CPU空置率(id)

 

 

 htop(yum install htop)

atop(yum install atop)

常见的进程的状态

进程状态 D=不可中断的睡眠状态; R=运⾏; S=睡眠 ;T=跟踪/停⽌; Z=僵⼫进程

top -d 2 :每隔2秒显式所有进程的资源占⽤情况

top -p 2538(PID)

top -p 2538 :显示pid是2538进程的资源占⽤情况

 在top的命令⾥⾯,按m是对内存进⾏排序,具体如下:

 按c是按cpu进⾏排序,具体如下:

端口查看

lsof

lsof(list open files)是⼀个列出当前系统打开⽂件的⼯具。

lsof 查看端⼝占⽤语法格式:lsof -i:端⼝

 

netstat

-t (tcp) 仅显示tcp相关选项

-u (udp)仅显示udp相关选项

-n 拒绝显示别名,能显示数字的全部转化为数字

-l 仅列出在Listen(监听)的服务状态

-p 显示建⽴相关链接的程序名

 

 

 grep为过滤的意思,可使用grep将想显示的过滤

Windows系统查询端口占用

netstat -ano | findstr 80:查询端口占用的进程pid

使用进程PID查询那个程序占用 tasklist | findstr "4480"

场景思考:

如果半夜三点,程序崩溃了,早上知道了,那么需要测试反馈问题给开发,然后开发来解决,可使用cat命令来查看半夜三点的程序崩溃的日志上下文,提交给开发,开发修改完后,和开发一同排查定位可能是哪些逻辑错误导致的问题,再根据这些逻辑错误去一一验证具体是哪个步骤导致的问题。