Linux(2)
常见的程序的错误:
1、Java.lang.OutOfMemory(内存泄露) —>OOM 数据读写,上传文件的服务,下载文件的服务,淘宝发放优惠卷
2、TimeOut,超时 主要指的是客户端不断的向服务端发送请求,服务端这边的资源有限(内存和CPU),那么有可能会出现超时
3、Java空指针 Java.lang.NullPointException 4、java.StackOverExpection 堆栈溢出
帮助命令
⼀、man
Linux命令的软件开发⼈员编写⼀个⾼度结构化的⽂档⼿册,也就是man的⽂件。所以当⼀个软件在被安装后,它 的man⽂件也会随着安装,所以可以使⽤man命令来查看该命令的具体使⽤⽅法,如man nmon,就会显示输出如下的信息:
man ls:
man mkdir:
⼆、info
使⽤man可以查看⼀个命令的帮助document,但是可以使⽤info,就会进⼊到⼀个完全交互式的环境,具体如 下:
info mkdir:
Linux权限操作
1、chmod修改文件权限
Linux 系统中,⽂件的基本权限由 9 个字符组成,以 rwxrw-r-x 为例,我们可以使⽤数字来代表各个权限,各个权限与数字的对应关系如下: r –> 4 w –> 2 x –> 1
由于这 9 个字符分属 3 类⽤户,因此每种⽤户身份包含 3 个权限(r、w、x),通过将 3 个权限对应的数字累加, 最终得到的值即可作为每种⽤户所具有的权限。 拿 -rw-rw-r–来说,所有者、所属组和其他⼈分别对应的权限值为: 所有者 = -rw = 4+2 = 6 所属组 = rw- = 4+2 = 6 其他⼈ = r– =2 所以,此权限对应的权限值就是 664。
使⽤数字修改⽂件权限的 chmod 命令基本格式为: [root@localhost ~]# chmod [-R] 权限值 ⽂件名 -R(注意是⼤写)选项表示连同⼦⽬录中的所有⽂件,也都修改设定的权限。
既然⽂件的基本权限就是 3 种⽤户身份(所有者、所属组和其他⼈)搭配 3 种权限(rwx),chmod 命令中⽤ u、 g、o 分别代表 3 种身份,还⽤ a 表示全部的身份(all 的缩写)。另外,chmod 命令仍使⽤ r、w、x 分别表示 读、写、执⾏权限。
使⽤字⺟修改⽂件权限的 chmod 命令,其基本格式如图所示。
具体操作如下:
资源占用命令
1、free查看内存
(1) free命令默认是以kb为单位显示的,可以⽤free -m ⽤Mb单位来显示。
(2) Mem⾏ : total = used + free 其中buffers和cached虽然计算在used内, 但其实为可⽤内存。
(3) Mem下⼀⾏:used为真实已占内存,free为真实可⽤内存。
(4)Swap:内存交换区的使⽤情况。
2、top整体负载
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
注解:
PID :进程ID
USER :⽤户名
PR :优先级
NI :负值表示⾼优先级,正值表示低优先级。
VIRT :虚拟内存
RES : 真实内存
SHR :共享内存
S :进程状态 D=不可中断的睡眠状态; R=运⾏; S=睡眠 ;T=跟踪/停⽌; Z=僵⼫进程
参数:
top -d 2 :每隔2秒显式所有进程的资源占⽤情况
top -c :每隔5秒显式进程的资源占⽤情况,并显示进程的命令⾏参数(默认只有进程名)
top -p 12345 -p 6789:每隔5秒显示pid是12345和pid是6789的两个进程的资源占⽤情况
top -d 2 -c -p 123456 :每隔2秒显示pid是12345的进程的资源使⽤情况,并显式该进程启动的命令⾏参数
与上述一致
在top的命令⾥⾯,按m是对内存进⾏排序,按p是按cpu进⾏排序,具体如下:
按CPU排序:
按内存排序
3、uptime查看平均负载
4、nmon
使用该命令可以监控Linux的各个资源信息,输⼊nmon,输出如下:
c m d可查看CPU 内存 磁盘使用情况
端口查看
windows系统中:
netstat -ano | findstr 80:查询端口占用的进程pid 使用进程PID查询那个程序占用 tasklist | findstr “4480”
⼀、lsof
lsof(list open files)是⼀个列出当前系统打开⽂件的⼯具。
lsof 查看端口占用语法格式:lsof -i:端口(需要权限得加上sudo)
mysql:3306
java:8080
注:windows系统中:
netstat -ano | findstr 80:查询端口占用的进程pid 使用进程PID查询那个程序占用 tasklist | findstr “4480”
⼆、netstat
netstat -tunlp ⽤于显示 tcp,udp 的端⼝和进程等相关情况。 netstat 查看端⼝占⽤语法格式: netstat -tunlp | grep 端⼝号
-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建⽴相关链接的程序名
netstat -t:
原创文章,作者:1402239773,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/277942.html