[Linux]调整swap

在启动Tomcat的过程中,tomcat/catalina.out中报出如下故障:

> /opt/govern/wydaas/logs/catalina.out
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 715653120 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /root/hs_err_pid19148.log

> /root/hs_err_pid19148.log
# There is insufficient memory for the Java Runtime Environment to continue. 
# Native memory allocation (mmap) failed to map 715653120 bytes for committing reserved memory.


1 JRE/JVM 的内存需求大小:715653120Byte/1024/1024=682.5MB ,但内存空间提供不了这么大,导致应用服务启动失败。
2 说明了JRE(JVM)内存不足,但可以通过增大swap的存储空间来解决。

1 环境声明

CentOS7 / x86 / 64bit

2 查看 swap存储空间

[[email protected] ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:          11903       11358         168          71         376         176
Swap:         16383        8569        7814
[[email protected] ~]# swapon -s 
文件名                类型        大小    已用    权限
/tmp/mem.swap                              file    4194300    0    -1
/dev/dm-1                              	partition	8388604	8151604	-2
[[email protected] ~]# cat /proc/swaps
文件名                类型        大小    已用    权限
/tmp/mem.swap                              file    4194300    0    -1
/dev/dm-1                              	partition	8388604	8151604	-2

3 增大 swap存储空间

方式1:文件法

通过新增swap可临时存储的交换文件来增大swap存储空间

  • step1 新创建1个总存储空间为8GB的交换文件(/swap01)
[[email protected] ~]# dd if=/dev/zero of=/swap01 bs=1M count=8192
记录了8192+0 的读入
记录了8192+0 的写出
8589934592字节(8.6 GB)已复制,87.0453 秒,98.7 MB/秒
  • step2 设置交换文件

把这个文件变成swap文件

[[email protected] ~]# mkswap /swap01
正在设置交换空间版本 1,大小 = 8388604 KiB
无标签,UUID=36f7531f-eecc-4133-9b14-0ab163c4cb40
  • step3 立即启用交换分区文件

启用这个swap文件

[[email protected] ~]# swapon /swap01
swapon: /swap01:不安全的权限 0644,建议使用 0600。
  • step4 编辑/etc/fstab文件,使在每次开机时自动加载swap文件
/swap01    swap    swap    default   0 0

方式2:磁盘分区法

通过新增swap磁盘分区来增大swap

  • step1 通过fdisk新增分区
fdisk  /dev/sda
Command (m for help): n

通过n新建分区,选择为主分区,分区ID为82,即swap分区。保存退出。

  • step2 对新建的分区进行【格式化】,并【挂载】
mkswap /dev/sda4
swapon /dev/swap
  • step3 完成后,参照方法一里的查看方法进行查看确认。新增完成后,在/etc/fstab里新增如下配置
/dev/sda4    swap    swap    default   0 0

4 卸载指定的swap区

swapoff /tmp/mem.swap

5 参考文献

[Linux]调整swap


推荐文章
Linux内存机制以及手动释放swap和buffer和cache

本文介绍linux内存机制、虚拟内存swap、buffer/cache释放等原理及实操。 一、什么是linux的内存机制? 二、linux什么时候开始使用虚拟内存(swap)? 三、怎么释放内存? 四

eclipse常用快捷键

Ctrl+T 得到接口的实现类Ctrl+Shift+T 查找类Cril+H查找eclipse常用快捷键,布布扣,bubuko.comeclipse常用快捷键

【Linux】crontab 每隔1小时 2小时的执行job写法

crontab-l crontab-e   每五分钟执行 */5**** 每小时执行    0**** 每2小时执行    0*/2*** 每天执行       00*** 每周执行  

如何删除Mac 的启动台(应用)残留的图标

如何删除MacOs启动台(应用)残留的图标方法很简单,删除“启动台”数据库里对应app的信息即可忘记什么版本的时候以前在“应用程序”删除应用后,启动台自动更新删掉不知道什么时候开始,直接在“应用程序”

(赵小明RHCE笔记)linux基础之一

默认情况下,linux有一个图形界面,五个文本虚拟终端[email protected]#tty 用来查看当前是在哪个tty下ctrl+alt+F1-F7用来切换不同终端startx命令用来启动图形化

kali linux 2019.4设置为中文方法

就在前天,2019年11月26日,kaliLinux官网发布了最新版本:KaliLinux2019.4发行版,此版本和之前相比变动很大,系统界面、主题、壁纸都灿然一新。Kali Linux2019.4

linux和ubuntu区别是什么?有什么关系?

  Ubuntu:是一个以桌面应用为主的开源gnu、Linux操作系统,Ubuntu是基于DebianGNU/Linux,支持x86、amd64(即x64)和ppc架构。首个版本Ubuntu以Debi

Shell高级用法-----函数(function)

函数介绍(function用法)1、function用法1、函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。2、它与shell程序形式上是相似的,不同的是它不是一个

vmware中ubuntu系统扩展磁盘

总体思路:对新增硬盘进行分区(新硬盘可以直接增加逻辑分区挂载目录,老硬盘先删除逻辑分区重新分区再挂载目录),对逻辑分区再进行目录挂载。虚拟机中ubuntu系统扩展磁盘有两种方式:一、添加一块新硬盘,对

Linux环境下安装yum

 若出现以下错误则代表需要重新安装yum: ThissystemisnotregisteredtoRedHatSubscriptionManagement.Youcanusesubscription

Mac的Safari安装油猴插件(Tampermonkey)

Mac的Safari安装油猴插件(Tampermonkey)官方的AppStore是没有油猴插件(Tampermonkey)的,官方插件不仅少,功能被阉割,相对弱小,还收费。嗯,这很苹果第三方拓展。这

关于在linux系统下安装jdk

    今天装jdk遇到了不少的问题,我第一次遇到64位虚拟机中居然装32位操作系统,然后遇到一系列的麻烦,差点有种崩溃的感觉; 对于版本为题是一个很关键的问题,对于jdk安装,不要认为只要java

Linux # kubuntu 14.04 登陆界面乱码,停止,进不了系统

问题描述:             kubuntu14.04登陆界面乱码,停止,进不了系统分析思路: 解决过程: 问题总结: 参考: lubuntu登陆界面乱码,如何解决?-查看主题?Ubuntu中

Linux 安装 SVN

搬运地址: https://www.cnblogs.com/siashan/p/9528669.html 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,

Hibernate的increment主键生成机制带来的问题

      最近给学校做的系统,总出现主键插入冲突的问题。主键是通过hibernate自动生成的,设置increment属性,总出现Duplicate entry的错误。搜到解决方案如下:     

linux目录结构

Linux根目录(/) FHS认为,Linux系统的根目录(/)最为重要(没有之一),其原因有以下2点: 所有目录都是由根目录衍生出来的; 根目录与系统的开机、修复、还原密切相关;因此,根目录必须包含

Mac进行一些操作时提醒Operation not permitted的完美解决

Mac版本10.14.5,向下向上都行:    1.关闭mac的安全机制,首先可以在正常模式下,输入csrutilstatus命令,查看mac安全机制是否开启。    2.如果Protectionst

VMware workstation 14永久激活密钥、注册码

VMwareworkstation14永久激活密钥、注册码CG54H-D8D0H-H8DHY-C6X7X-N2KG6ZC3WK-AFXEK-488JP-A7MQX-XL8YFAC5XK-0ZD4H-0

会话缓存(Session Cache)?

最常用的一种使用Redis的情景是会话缓存(sessioncache)。用Redis缓存会话比其他存储(如Memcached)的优势在于:Redis提供持久化。当维护一个不是严格要求一致性的缓存时,如

Linux iconv使用

iconv[选项】文件输入/输出格式规范:-f, --from-code=名称原始文本编码-t,--to-code=名称 输出编码信息:-l,--list 列举所有已知的字符集输出控制:-c