# centos设置缓存区

# 起源

曾经,体验过手机通过ssh登录服务器,使用vim进行开发,如果是前端的东西或写博客还好(手机-ssh-vim ),但如果是Java开发的话vim还真有点吃力。

今天,我突发奇想,给服务器装了gnome桌面,通过vnc链接上去。安装idea也能顺利打开。

How To Install and Configure VNC Remote Access for the GNOME Desktop on CentOS 7

事情讲到这儿,形式似乎一篇大好,似乎如同灰姑娘和王子过上了幸福的生活,但现实不是童话

当我一旦用idea得开某个项目的时候整个系统会进去假死状态😳

一旦进去假死状态,整个服务器便无任何反应(ssh无法登陆、telnet无法连接、uptime监控报502

由于腾讯云无法收集到假死期间的任何日志、监控,想借助监控来排查的方案看来是走不通了😌

# 排查

排查思路有两个方向:

  1. CPU资源不足
  2. 内存不足

机器配置是4C4G,配置也还行,这配置原价购买的话一年得一千多,作为个人博客使用绰绰有余。

通过brew安装htop看看系统运行情况:

brew install htop

赫然发现,swap 0️⃣😲,4G内存本身并不少,但是运行idea这样重量级的软件还是有点捉襟见肘,同时没有设置任何交换区 导致运行既卡死。

# 设置交换区

系统在物理内存不够时可以通过设置交换区将内存中部分资源放置到交换区中,从而突破物理上的内存限制。

交互区对linux系统的性能至关重要。

# 查看交换区设置

首先确定下,设置交换区必须是root账号或有sudo权限的账号。

sudo swapon --show

通过swapon可以查看已设置的交换区

如上图,我已经给服务器设置了三块交互区,共计6.5G空间

# 创建swap文件

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k

通过dd命令创建一个大小1G的交换区文件

# 设置权限

sudo chmod 600 /swapfile

通过修改权限,使得该文件仅root账号可读写

# 激活交换区

sudo mkswap /swapfile
sudo swapon /swapfile

此时,交换区文件已激活,程序可用的内存已经不再受限于物理内存

通过swapon可以查看当前已设置的交换区

sudo swapon --show

# 持久化交换区

以上交换区已设置好,但一旦系统重启交换区配置会丢失,为此可以通过一下命令持久化交换区配置。

sudo echo "/swapfile swap swap defaults 0 0" >> /etc/fstab

支持,交换区已设置好

至此,使用idea打开任何项目都没问题啦~

同时,由于交换区的存在,系统平均内存使用量也有大幅度的下降。

# 交换区大小

那具体到每个人,交换区应该设置多大比较合适呢?

交换区大小没有绝对正确的设置, 不过根据红帽 建议:系统内存的20%大小。 centos 则建议:内存小于2G则交换区设置为内存的两倍, 内存大于2G则交换区为内存+2G

# 其他

删除交换区

sudo swapoff -v /swapfile
sudo rm /swapfile

gnomegnome.org

最后更新: Sun, 13 Aug 2023 07:08:36 GMT

0 评论

加载中...
访问量:-