linux的基本操作&问题解答

问题解答

问题:启动服务的时候报:bash: fork: Cannot allocate memory

问题描述:因为进程占用满了,内存被消耗光了,无法进行其他操作。

解答:

1.通过free命令查看内存使用情况

//total:总计物理内存的大小;used:已使用多大;free:可用有多少;Shared:多个进程共享的内存总额;buffers/cached:磁盘缓存的大小;Swap:交换分区。Swap是虚拟内存的使用情况,Mem是实际内存的使用情况。

 2.top展示各进程的资源情况

//PID — 进程id;USER — 进程所有者;PR — 进程优先级;NI — nice值。负值表示高优先级,正值表示低优先级;VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES;RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA;SHR — 共享内存大小,单位kb;S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程;%CPU — 上次更新到现在的CPU时间占用百分比;%MEM — 进程使用的物理内存百分比;TIME+ — 进程使用的CPU时间总计,单位1/100秒;COMMAND — 进程名称(命令名/命令行)

(出现Cannot allocate memory问题,是因为查看日志占用了过多内存,建议查看日志不要用vim,建议用less或者more进行查看,COMMAND可以查看对应进程的名称)通过kill无关的进程释放内存空间。

init 6重启服务器(不建议)

linux基本操作

查看jvm的gc情况使用命令jstat

基本命令: jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]

1.垃圾回收统计:jstat -gc 23594 1000    pid:23594;查询次数:1000

//S0C:第一个幸存区的大小;S1C:第二个幸存区的大小;S0U:第一个幸存区的使用大小;S1U:第二个幸存区的使用大小;EC:伊甸园区的大小;EU:伊甸园区的使用大小;OC:老年代大小;OU:老年代使用大小;MC:方法区大小;MU:方法区使用大小;CCSC:压缩类空间大小;CCSU:压缩类空间使用大小;YGC:年轻代垃圾回收次数;YGCT:年轻代垃圾回收消耗时间;FGC:老年代垃圾回收次数;FGCT:老年代垃圾回收消耗时间;GCT:垃圾回收消耗总时间

 2.堆内存统计:jstat -gccapacity 23594 1000

3.总结垃圾回收统计:jstat -gcutil 23594 1000

//S0:幸存1区当前使用比例;S1:幸存2区当前使用比例;E:伊甸园区使用比例;O:老年代使用比例;M:元数据区使用比例;CCS:压缩使用比例;YGC:年轻代垃圾回收次数;FGC:老年代垃圾回收次数;FGCT:老年代垃圾回收消耗时间;GCT:垃圾回收消耗总时间

TIME_WAIT状态查询

1.netstat -ano/netstat -an查看time_wait

2.统计time_wait的数量:netstat -an | grep -c TIME_WAIT

top命令-快捷方式

1.在top基本视图中,按数字1,可监控每个逻辑CPU的状况

2.按字母b后可以对top命令进行加亮;再按字母x,可以打开/关闭排序列的加亮效果

 

posted @ 2019-08-06 20:12  默晓梦  阅读(122)  评论(0编辑  收藏  举报