Linux性能调优指南(2):内存与Swap分区调优

2024-08-22 06:28

本文主要是介绍Linux性能调优指南(2):内存与Swap分区调优,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 二, 内存性能调优
      • 1,增加内存容量:基本流程与考虑因素
        • 大概的流程吧
      • 2,内存压缩技术:在Linux上启用与配置zRAM
        • 如何在Linux系统上启用和配置zRAM的步骤:
      • 3,内存清理工具:编写脚本或安装与使用BleachBi
          • 安装 BleachBit 的步骤:
      • 4,Swap分区调优:前提条件、详细步骤与GParted安装
          • 4.1 前提条件与注意事项
          • 4.2 调整Swap分区的详细步骤
          • 4.3 安装GParted
            • 4.3.1 对于基于Debian的系统(如Ubuntu)
            • 4.3.2 对于基于Red Hat的系统(如CentOS)
            • 4.3.3 对于其他Linux发行版
          • 4.4 使用GParted进行分区管理

二, 内存性能调优

1,增加内存容量:基本流程与考虑因素

增加物理内存容量是提升Linux系统内存性能最直接有效的方法。当系统内存不足时,系统会频繁地进行交换(swapping)操作,将部分内存数据迁移到磁盘上的Swap空间中,这会显著降低系统的响应速度,因为磁盘I/O速度远低于内存访问速度。因此,根据系统负载和应用需求增加物理内存,可以减少交换活动,提高系统整体性能。

大概的流程吧

检查当前内存使用情况
​ 使用free命令可以查看当前的内存使用情况,包括总内存、已用内存、空闲内存等。

free -h

监控内存使用
​ 使用tophtop命令可以实时监控内存使用情况,这有助于你了解系统的内存需求。

htop

确定内存需求
​ 根据你的应用程序和系统负载,估计所需的内存量。如果经常遇到内存不足的情况,那么可能需要增加内存。

购买和安装内存条
​ 根据你的服务器或计算机的规格,购买合适的内存条,并按照制造商的说明进行安装。

配置操作系统以使用新内存
​ 在大多数情况下,Linux会自动识别新安装的内存。但是,你可能需要重新启动系统来确保新内存被正确识别和使用。

验证新内存的使用
再次使用free命令来验证新内存是否已经被系统识别和使用。

2,内存压缩技术:在Linux上启用与配置zRAM

内存压缩技术可以在内存不足时,通过压缩部分内存数据来释放空间,从而提高内存利用率。Linux中常用的内存压缩技术包括zRAM等。zRAM是一种使用压缩算法来减少内存占用的技术,它可以将压缩后的数据存储在内存中,当需要访问这些数据时再进行解压缩。使用内存压缩技术可以减少内存泄漏和内存碎片,提高系统的稳定性和响应速度。

如何在Linux系统上启用和配置zRAM的步骤:
  1. 检查zRAM是否已启用
    首先,你需要检查你的系统是否已经启用了zRAM。你可以通过查看/dev目录下的设备列表来做到这一点。

    ls /dev/zram*
    

    如果列出了zRAM设备,那么zRAM已经启用。如果没有,你需要继续下一步来启用它。

  2. 启用zRAM
    在一些Linux发行版上,zRAM可能已经默认启用。如果没有,你可以通过加载zRAM内核模块来启用它。

    sudo modprobe zram
    

    这将加载zRAM模块并创建默认的zRAM设备。

  3. 配置zRAM
    一旦zRAM设备被创建,你可以通过写入特定的系统文件来配置它们。例如,你可以设置压缩算法、内存大小等。

    echo lz4 > /sys/block/zram0/comp_algorithm  
    echo $((2 * 1024 * 1024 * 1024)) > /sys/block/zram0/disksize  # 设置2GB大小
    

    这将为zRAM设备设置LZ4压缩算法,并分配2GB的内存。

  4. 格式化并使用zRAM设备
    在配置zRAM设备后,你需要格式化它,然后才能像使用普通磁盘一样使用它。

    sudo mkfs.ext4 /dev/zram0  
    sudo mount /dev/zram0 /mnt/zram
    

    这将格式化zRAM设备,并将其挂载到/mnt/zram目录。

  5. 调整系统以使用zRAM作为交换空间
    你可以将zRAM设备配置为系统的交换空间,以便在内存不足时使用。

    sudo mkswap /dev/zram0  
    sudo swapon /dev/zram0
    

    这将设置zRAM设备为交换空间,并启用它。

  6. 持久化配置
    如果你希望在系统重启后保留zRAM配置,你需要将上述步骤添加到系统的启动脚本中。

3,内存清理工具:编写脚本或安装与使用BleachBi

在Linux系统中,定期清理不再使用的内存页面和缓存可以释放内存空间,提高内存分配效率。常用的内存清理方法包括使用syncecho命令清除页面缓存、目录项和inode等。例如,执行sync; echo 1 > /proc/sys/vm/drop_caches可以清除页面缓存,而sync; echo 3 > /proc/sys/vm/drop_caches则会清除页面缓存、目录项和inode。此外,还可以使用如BleachBit等图形界面的清理工具来清理缓存和垃圾文件。

使用syncecho命令来清理内存缓存的方法。下面是一个简单的脚本,用于执行这个任务:

#!/bin/bash  # 同步磁盘缓存到磁盘  
sync  # 清除页面缓存  
echo 1 > /proc/sys/vm/drop_caches  # 或者,要更彻底地清理,包括目录项和inode  
# echo 3 > /proc/sys/vm/drop_caches  # 输出清理后的内存使用情况  
echo "Memory caches cleared. Current memory usage:"  
free -h

保存这个脚本为clear_memory_caches.sh,然后给予执行权限:

chmod +x clear_memory_caches.sh

现在,你可以通过运行这个脚本来清理内存缓存了:

./clear_memory_caches.sh

这个脚本首先使用sync命令将磁盘缓存同步到磁盘,然后使用echo命令将1或3写入/proc/sys/vm/drop_caches文件来清除页面缓存。写入1会清除页面缓存,而写入3会清除页面缓存、目录项和inode。最后,脚本使用free -h命令输出清理后的内存使用情况。

除了这个脚本,你还可以安装像BleachBit这样的图形界面工具来清理缓存和垃圾文件。

安装 BleachBit 的步骤:
  1. 打开终端
    在 Linux 系统上,打开你的终端应用程序。

  2. 更新软件包列表(可选):
    在安装之前,建议先更新你的软件包列表,以确保你安装的是最新版本。可以使用以下命令:

    sudo apt update  # 对于基于 Debian 的系统,如 Ubuntu  
    sudo yum update  # 对于基于 Red Hat 的系统,如 CentOS
    
  3. 安装 BleachBit
    根据你的 Linux 发行版,使用适当的包管理器来安装 BleachBit。

    对于基于 Debian 的系统(如 Ubuntu),使用以下命令:

    sudo apt install bleachbit
    

    对于基于 Red Hat 的系统(如 CentOS),可能需要先启用 EPEL 仓库,然后使用以下命令:

    sudo yum install bleachbit
    

    或者,如果你的系统使用的是 dnf

    sudo dnf install bleachbit
    
  4. 启动 BleachBit
    安装完成后,你可以从终端启动 BleachBit,或者使用你的桌面环境的应用程序菜单来找到并启动它。

    bleachbit
    
  5. 使用 BleachBit
    启动后,BleachBit 会显示一个界面,列出了可以清理的项目。你可以选择要清理的项目,然后点击“清理”按钮来执行清理操作。

4,Swap分区调优:前提条件、详细步骤与GParted安装

Swap分区是Linux系统中用于虚拟内存管理的特殊分区,当物理内存不足时,系统会将部分内存数据迁移到Swap分区中以释放物理内存。合理调整Swap分区的大小对系统性能至关重要。调整Swap分区大小的方法包括使用分区管理工具(如GParted)或命令行工具(如fdiskmkswapswapon)。在调整Swap分区大小时,需要根据系统的实际需求和硬件配置来确定合适的大小,以避免Swap分区过大或过小导致的性能问题。

4.1 前提条件与注意事项
  • 确保你有足够的磁盘空间来创建或扩展Swap分区。
  • 在进行任何分区操作之前,备份重要数据。
  • 你可能需要root权限来执行这些命令。
  • 再次提醒!!!调整Swap分区大小是一个涉及磁盘分区和格式化的高级任务,需要谨慎操作。以下是一个基本的命令行指南,用于调整Swap分区的大小。这个过程通常包括创建一个新的Swap分区(如果需要的话),以及启用或禁用现有的Swap分区。
4.2 调整Swap分区的详细步骤
  1. 查看当前的Swap使用情况

    swapon --show  
    free -h
    
  2. 关闭现有的Swap分区(如果你打算重新调整它的大小)

    sudo swapoff /dev/sdXN  # 替换/dev/sdXN为你的Swap分区标识
    
  3. 调整分区大小

    使用fdiskpartedgparted等工具来调整分区大小。这一步的具体操作取决于你的磁盘布局和你想要达到的目标。

    例如,使用fdisk删除并重新创建Swap分区(注意:这会导致数据丢失):

    sudo fdisk /dev/sdX  # 替换/dev/sdX为你的磁盘标识
    

    fdisk命令中,使用d来删除分区,然后使用n来创建一个新分区。确保将新分区设置为Swap类型(类型代码82)。

  4. 格式化新的Swap分区

    sudo mkswap /dev/sdXN  # 替换/dev/sdXN为你的新Swap分区标识
    
  5. 启用新的Swap分区

    sudo swapon /dev/sdXN  # 替换/dev/sdXN为你的新Swap分区标识
    
  6. 更新/etc/fstab文件

    编辑/etc/fstab文件,以确保在重启后自动启用新的Swap分区。找到旧的Swap条目,并用新的分区标识替换它。

    sudo nano /etc/fstab
    

    在文件中找到类似这样的行:

    /dev/old/swap partition swap sw 0 0
    

    并将其替换为:

    /dev/sdXN none swap sw 0 0  # 替换/dev/sdXN为你的新Swap分区标识
    
  7. 验证Swap分区

    swapon --show  
    free -h
    

    如果你不熟悉命令行工具或磁盘分区,建议使用图形界面的分区管理工具,如GParted

4.3 安装GParted
4.3.1 对于基于Debian的系统(如Ubuntu)
  1. 打开终端。

  2. 更新软件包列表(可选):

    sudo apt update
    
  3. 安装 GParted:

    sudo apt install gparted
    
4.3.2 对于基于Red Hat的系统(如CentOS)
  1. 打开终端。

  2. 如果你使用的是 CentOS 或其他没有默认包含 GParted 的 Red Hat 衍生版,你可能需要先启用 EPEL 仓库。

  3. 安装 GParted:

    sudo yum install gparted
    

    或者,如果你的系统使用的是

    dnf
    

    sudo dnf install gparted
    
4.3.3 对于其他Linux发行版

请查看你的 Linux 发行版的官方文档或软件包管理器

4.4 使用GParted进行分区管理

安装完成后,你可以从终端启动 GParted,或者使用你的桌面环境的应用程序菜单来找到并启动它。

gparted

启动后,GParted 会显示一个图形界面,列出了你的磁盘和分区。你可以右键点击一个分区来选择调整大小、移动、复制或删除等操作。在进行任何更改之前,请确保你已经备份了重要数据,并且了解你的操作对系统的影响。

这篇关于Linux性能调优指南(2):内存与Swap分区调优的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1095496

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Spring Boot结成MyBatis-Plus最全配置指南

《SpringBoot结成MyBatis-Plus最全配置指南》本文主要介绍了SpringBoot结成MyBatis-Plus最全配置指南,包括依赖引入、配置数据源、Mapper扫描、基本CRUD操... 目录前言详细操作一.创建项目并引入相关依赖二.配置数据源信息三.编写相关代码查zsRArly询数据库数