做为一名优秀的后端工程师-兼公司网管,这些 Linux 指令需要了解下

前言 本文收录了 linux 常用指令,这里面有个小技巧,基本上所有指令后面跟上 –h 可以显示其使用方法。故不必死记硬背,知其意乃通其形。 分类如下: 文件 & 目录操作(16 个) 查看文件 & 内容处理(18 个) 文件压缩 & 解压缩(3 个) 信息显示(11 个) 搜索文件(4 个) 进程管理(11 个)...

Linux下tomcat JVM内存 配置

常见的内存溢出有以下两种: java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemoryError: Java heap space 一、java.lang.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。解决方法: 手动设置MaxPermSize大小建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。 二、java.lang.OutOfMemoryError:...

配置tomcat服务器内存大小中的Xms、Xmx、PermSize、MaxPermSize 详解

JVM按照其存储数据的内容将所需内存分配为堆区与非堆区两个部分: 所谓堆区即为通过new的方式创建的对象(类实例)所占用的内存空间, 堆是运行时数据区域; 非堆区即为代码、常量、外部访问(如文件访问流所占资源)等。 配置堆区的(-Xms 、-Xmx、-XX:newSize、-XX:MaxnewSize、-Xmn) 配置非堆区(-XX:PermSize、-XX:MaxPermSize) 一. 堆区配置参数:     1、-Xms :表示java虚拟机堆区内存初始内存分配的大小,虚拟机在启动时向系统申请的内存的大小   2、-Xmx: 表示java虚拟机堆区内存可被分配的最大上限,通常为操作系统可用内存的1/4大小。但是开发过程中,通常会将 -Xms 与 -Xmx两个参数的配置相同的值,其目的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源。 如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始化,虚拟机就必须重复地增加内存来满足使用。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的大小。而堆的最大值受限于系统使用的物理内存。一般使用数据量较大的应用程序会使用持久对象,内存使用有可能迅速地增长。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。 说明:如果-Xmx 不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM,不是Throwable的,无法用try…catch捕捉。     -XX:newSize、-XX:MaxnewSize、-Xmn:新生代、中生代、老生代。java中每新new一个对象所占用的内存空间就是新生代的空间,当java垃圾回收机制对堆区进行资源回收后,那些新生代中没有被回收的资源将被转移到中生代,中生代的被转移到老生代。    ...

PVE Proxmox Tips

PVE Proxmox is Linux + KVM (or LXC) virtualization. It is freely available from: https://www.proxmox.com/en/downloads Tested version: pveversion pve-manager/5.1-41/0b958203 (running kernel: 4.13.13-2-pve) Notable highlights: HTML5/js...