[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


推荐文章
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*** 每周执行  

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

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

Linux下设置环境变量

setenv(setenvironment variable)功能说明:查询或显示环境变量。语  法:setenv [变量名称][变量值]补充说明:setenv为tsch中查询或设置环境变量的指令。

《linux 内核完全剖析》 mktime.c

tm结构体的定义在time.h里面 structtm{ inttm_sec; inttm_min; inttm_hour; inttm_mday; inttm_mon; inttm_year; in

关于在linux系统下安装jdk

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

Linux环境下安装yum

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

linux文件内容查看命令

~~~~~~~1、cat 正序查看文件  1)cat>>文件名   创建一个文件  2)cat  文件名    查看文件 2、tac 倒序查看文件  1)tac 文件名 3、nl添加行号查看  1)n

Mac下搭建react开发环境

安装node 官网下载 https://nodejs.org/en/ 双击安装,接下来都是默认选择即可,直至安装成功 测试是否安装成功,分别输入以下命令: node-v npm-v 如下

关于eclipse的Description:Resource Path Location Type The project cannot be built until build path errors are resolved的问题

问题如上一开始安装也有问题,安装完打不开显示出错,打开eclipe的安装目录,找到eclipse.ini,在最后加上后面这么一行就好了。--add-modules=ALL-SYSTEM百度了一下,发现

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

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

linux详解sudoers

sudo使用  Linux是多用户多任务的操作系统,共享该系统的用户往往不只一个。出于安全性考虑,有必要通过useradd创建一些非root用户,只让它们拥有不完全的权限;如有必要,再来提升权限执行。

【Linux学习】Ubuntu下内核编译(一)

(1)当要执行内核配置时,输入makemenuconfig时出现错误 遇到这个问题,主要是以为没有ncurses库,而makemenconfig需要这个库,因此需要安装ncurses或者ncurse

Linux 安装 SVN

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

Linux系统root密码修改

   重启系统。   进入系统引导界面:      按下e键:      选择第二项,内核启动参数设置,按下e键:      在结尾处,输入数字1或者英文"single",再回车:      按下b键

《鸟哥linux》--第十一章课后习题答案

1.在linux上可以找到哪些shell?哪个档案记录可用的shell?儿linux预设的shell是?  1./bin/bash,/bin/tcsh,/bin/csh  2./etc/shells 

《SLAM机器人基础教程》第五章 Linux基础

第五章Linux基础本章基于树莓派,以ubuntu为例讲解Linux。本章内容规划:5.1节,Linux概述5.2节,系统安装5.3节,Linux指令及ubuntu的使用5.4节,SSH和VNC5.5

eclipse 版本号

Eclipse 3.1 版本代号 IO 【木卫1,伊奥】  Eclipse 3.2 版本代号 Callisto 【木卫四,卡里斯托 】Eclipse 3.3 版本代号 Eruopa 【木卫二,欧罗巴

Linux下 boost库编译并加入到环境变量

1、下载源码:http://www.boost.org/2、tarzxvfboost_1_70_0.tar.gz3、cdboost_1_70_04、./bootstrap.sh--with-libra

linux基础命令学习(一)

pwd输出当前工作路径tree以树状图列出目录的内容ctrl+c取消命令的执行clear 清空屏幕ls列出文件目录蓝色是目录,白色是普通文件aliascls=clear 别名终端:本地终端、远程虚