[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存储空间
[root@hydrant ~]# free -m
total used free shared buff/cache available
Mem: 11903 11358 168 71 376 176
Swap: 16383 8569 7814
[root@hydrant ~]# swapon -s
文件名 类型 大小 已用 权限
/tmp/mem.swap file 4194300 0 -1
/dev/dm-1 partition 8388604 8151604 -2
[root@hydrant ~]# 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)
[root@hydrant ~]# 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文件
[root@hydrant ~]# mkswap /swap01
正在设置交换空间版本 1,大小 = 8388604 KiB
无标签,UUID=36f7531f-eecc-4133-9b14-0ab163c4cb40
- step3 立即启用交换分区文件
启用这个swap文件
[root@hydrant ~]# 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分区
刪除原swap分區,重建swap,步驟如下:1,swapoff -a #停止交換分區2,fdisk /dev/sda #進入fdisk,刪除原swap分區,重新建立新分區(swap分區的系統ID是82 ...
- 调整swap分区大小-Linux下安装Oracle时报swap不够解决方法
调整swap分区大小 方法一:如果磁盘有剩余的空间,用分区工具新建一个swap分区.并写到/etc/fstab里面.再 #swapon -a方法二:可以用一个文件做交换分区. su root cd / ...
- [转]Linux 分区 swap
如何合理设置Linux的swap分区 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://commandos.blog.51cto.c ...
- 揭开Linux操作系统的Swap交换区之谜
揭开Linux操作系统的Swap交换区之谜 Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要.通过调整Swap ...
- 【Linux】Swap与Memory
背景介绍 Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级.所以,程序和数据如果在内存的话,会有非常快的读写速度.但是,内存的造价是要高于磁盘的,且内存的断电丢失数据也 ...
- 【Linux】Linux中Swap与Memory内存简单介绍
背景介绍 对于Linux来说,其在服务器市场的使用已经占据了绝对的霸主地位,不可动摇.Linux的各种设计思想和使用也被传承(当然不乏各种黑Linux,而且黑的漂亮).Linux的很多独特的设计,对性 ...
- linux的swap相关
linux的系统采用的内存方案一般都是 物理内存+swap.物理内存供日常使用,swap用来救急. 但在实际使用的过程中,发现有时候物理内存还没被完全占用的情况下,已经开始使用swap了.而这时候,由 ...
- [svc]Linux中Swap与Memory内存简单介绍
swap区域是干嘛的 cpu 内存(不常用到的进程swap区) 磁盘 当内存没有可用的,就必须要把内存中不经常运行的程序给踢出去.但是踢到哪里去,这时候swap就出现了. 背景介绍 对于Linux来说 ...
- linux 的swap、swappiness及kswapd原理【转】
本文讨论的 swap基于Linux4.4内核代码 .Linux内存管理是一套非常复杂的系统,而swap只是其中一个很小的处理逻辑. 希望本文能让读者了解Linux对swap的使用大概是什么样子.阅读完 ...
- Linux中Swap与Memory内存简单介绍
1.背景介绍 这篇文章介绍一下Linux中swap与memory.对于memory没什么可说的就是机器的物理内存,读写速度低于cpu一个量级,但是高于磁盘不止一个量级.所以,程序和数据如果在内存的 ...
随机推荐
- 解决element-ui表格多重嵌套循环时,添加row-key="id" 出现Duplicate keys detected: 'XXX' 错误的问题
Duplicate keys detected: 'XXX' 错误,怀疑是多重嵌套循环时 :key="item.id或index" 不能重复的问题,但设置了不同的 key 后并未解 ...
- PLC入门笔记6
计数器指令及其应用 计数器指令介绍 很多场合需要进行计数操作.例如电机启动次数.生产线物料经过次数.位置传感器传送的脉冲次数等. 计数器分为普通和高速两种. 比PLC扫描频率远小于用普通,接近或大于用 ...
- 2019 CSP J/S第2轮 视频与题解
CSP入门组和提高组第二轮题解 转自网络
- C++从键盘读取一行的方法
从键盘读取一行的方法 cin类中的成员函数getline()和get()--使用数组来处理字符串 cin.getline(数组,要读入的字符数).getline()将丢弃换行符.这个成员函数通过换行符 ...
- texstudio设置外部浏览器及右侧预览不能使用问题
刚装的texstudio,今天不知什么原因右侧显示的pdf文件一直是以前的,百度了下没找到,自己摸索了下,只需要把构建里面pdf查看器更改下即可 如果想更改外部pdf查看器,只需要设置下命令里面外部p ...
- @Resource 和@Autowired注解
@Autowired注解是根据属性进行注入,例如BaseDAO,BaseDAOImpl继承BaseDAO,可以根据BaseDAO类型进行注入 @Resource 注解是根据属性和名称进行注入,比如Ba ...
- Crypto入门 (十一)easychallenge
前言: 这题跟python有关,可见看懂python代码还是很有必要得,需要有一些python基础才好 easychallenge: 题目: 下载后来发现是一个.pyc为后缀得文件,查找资料可知,该文 ...
- nodejs 利用URL和querystring获取get查询参数
为深入理解request的get url信息及参数传递,利用URL和querystring获取对应的信息,测试成功,记录如下: 1.编写server.js文件 http=require("h ...
- k8s基本操作
注意:k8s的很多操作需要指定命名空间,如果不指定,默认default的命名空间,很多东西就查不出来了 kubectl get cs # 查看集群状态kubectl get nodes # 查看集群节 ...
- webpack之性能优化(webpack4)
在讲解性能优化的方案之前,我们需要了解一下webpack的整个工作流程, 方案一:减少模块解析 也就是省略了构建chunk依赖模块的这几个步骤 如果没有loader对该模块进行处理,该模块的源码就是最 ...