GlusterFS系统内核调优

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


相关文章:

分布式存储——GlusterFS

关于GlusterFS的卷

GlusterFS—新手陷阱

GlusterFS常用命令集

前言

本文总结GlusterFS系统Linux内核调优的几个重要参数。

1. vm.swappiness=0

在/etc/sysctl.conf修改参数:


vm.swappiness=0 #通过取消swap功能可以降低磁盘IO的占用率来让用户购买更多的内存、提高磁盘寿命和性能。

sysctl -p 生效

vm.swappiness参数解说:

代表了内核对于交换空间的喜好(或厌恶)程度。Swappiness 可以有 0 到 100 的值,默认的大小通常是60,也有的是30。

如果内存较为充裕,则可以将vm.swappiness大小设定为30;如果内存较少,可以设定为60。但将值设置为“0” 性能可得到较大提高。

2. vm.vfs_cache_pressure

设置参数 vm.vfs_cache_pressure 高于100

vm.vfs_cache_pressure参数解说:

vm.vfs_cache_pressure参数表示内核回收用于缓存目录(directory)和索引节点(inode)内存的倾向,默认值值是100

缺省值=100,表示内核将根据pagecache和swapcache,把directory和inode cache保持在一个合理的百分比;

降低该值低于100,将导致内核倾向于保留directory和inode cache;

增加该值超过100,将导致内核倾向于回收directory和inode cache。

该值若设置为0,则永远不会回收directory和inode cache,这容易给内存带来压力,导致OOM。

3. 文件系统缓存参数

参数:

vm.dirty_background_ratio  默认值10(表示内存的10%)
vm.dirty_ratio  默认值20(表示内存的20%)

优化点:
vm.dirty_background_ratio < vm.dirty_ratio,大于等于默认值

vm.dirty_background_ratio: 这个参数指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如5%)就会触发pdflush/flush/kdmflush等后台回写进程运行,将一定缓存的脏页异步地刷入外存;

vm.dirty_ratio: 而这个参数则指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如10%),系统不得不开始处理缓存脏页(因为此时脏页数量已经比较多,为了避免数据丢失需要将一定脏页刷入外存);在此过程中很多应用进程可能会因为系统转而处理文件IO而阻塞。

正常都是先达到vm.dirty_background_ratio的条件然后触发flush进程进行异步的回写操作,但是这一过程中应用进程仍然可以进行写操作,如果多个应用进程写入的量大于flush进程刷出的量那自然会达到vm.dirty_ratio这个参数所设定的坎,此时操作系统会转入同步地处理脏页的过程,阻塞应用进程。

也就是说,正常vm.dirty_background_ratio < vm.dirty_ratio才有意义。在gfs中,比较建议这两个参数值设置在默认值或者比默认值稍高一些。

4. 页面缓存

修改参数:

“1” > /proc/sys/vm/pagecache

页面缓存是一种磁盘缓存,用于保存来自文件和可执行文件的数据 程序,即.pages文件或块设备的实际内容。

页面缓存(磁盘缓存)用于减少磁盘读取次数。一个 值“1”表示 1% 的 RAM

5. I/O调度器参数

调整参数:

“deadline” > /sys/block/sdc/queue/scheduler

I/O 调度程序是 Linux 内核的一个组件,它决定读写缓冲区如何为底层设备排队。从理论上讲,“noop”更适合智能RAID控制器,因为 Linux 对(物理)磁盘几何一无所知,因此它可以 高效地让控制器,充分了解磁盘几何形状,尽快处理请求。但设置“deadline”能在一定程度上增强性能。

6. I/O 请求参数

调整参数:

“256” > /sys/block/sdc/queue/nr_requests

这是在Scheduler将I/O请求传送到磁盘之前进行缓冲的请求的大小。某些控制器的内部队列大小(queue_depth)大于I/O调度器的nr_requests,因此I/O调度器没有太多机会对请求进行正确排序和合并。Deadline或CFQ调度器喜欢将nr_requests设置为queue_depth值的2倍,这是给定控制器的默认值。合并顺序和请求有助于调度器在大负载期间响应更快。

7. page-cluster参数

修改参数:

echo “16” > /proc/sys/vm/page-cluster

page-cluster 控制在一次尝试中写入交换的页的数量。它定义了交换I/O大小,在上面的示例中,根据RAID条带大小64k添加了'16'。在使用了swappiness=0之后,这将没有意义,但是如果定义了swappiness=10或20,那么当RAID条带大小为64k时,使用此值将有所帮助。

8. 修改块设备参数

修改块设备参数:

blockdev --setra xxx /dev/vadxxx

# 例如:
[root@test001 ~]# blockdev --getra /dev/vda1   #查询扇区
256
[root@test001 ~]# blockdev --setra 4096 /dev/vda1  #设置扇区
[root@test001 ~]# blockdev --getra /dev/vda1
4096
[root@test001 ~]#

默认块设备设置通常会导致性能不佳,修改扇区参数能增加速度,具体的参数值根据需求而定。

以上为GlusterFS官网给的Linux内核优化参数,可根据自身环境,酌情使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/429614.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习预测分析API:金融领域的Game Changer

&#x1f680; 引言 在这个AI遍地开花的时代&#xff0c;谁能成为金融领域的真正Game Changer&#xff1f;那必然是是深度学习预测分析API。如大脑般高效运转的系统不仅颠覆了传统操作&#xff0c;更是以无与伦比的速度和精度赋予了金融数据以全新的生命。 &#x1f4bc; 广泛…

Doris实战——特步集团零售数据仓库项目实践

目录 一、背景 二、总体架构 三、ETL实践 3.1 批量数据的导入 3.2 实时数据接入 3.3 数据加工 3.4 BI 查询 四、实时需求响应 五、其他经验 5.1 Doris BE内存溢出 5.2 SQL任务超时 5.3 删除语句不支持表达式 5.4 Drop 表闪回 六、未来展望 原文大佬的这篇Doris数…

C# Winform画图绘制圆形

一、因为绘制的圆形灯需要根据不同的状态切换颜色,所以就将圆形灯创建为用户控件 二、圆形灯用户控件 1、创建用户控件UCLight 2、设值用户控件大小(30,30)。放一个label标签,AutoSize为false(不自动调整大小),Dock为Fill(填充),textaglign为居中显示。 private Color R…

LLM春招准备(1)

llm排序 GPT4V GPT-4V可以很好地理解直接绘制在图像上的视觉指示。它可以直接识别叠加在图像上的不同类型的视觉标记作为指针&#xff0c;例如圆形、方框和手绘&#xff08;见下图&#xff09;。虽然GPT-4V能够直接理解坐标&#xff0c;但相比于仅文本坐标&#xff0c;GPT-4V在…

【探索AI】二十一 深度学习之第4周:循环神经网络(RNN)与长短时记忆(LSTM)

循环神经网络&#xff08;RNN&#xff09;与长短时记忆&#xff08;LSTM&#xff09; RNN的基本原理与结构LSTM的原理与实现序列建模与文本生成任务实践&#xff1a;使用RNN或LSTM进行文本分类或生成任务步骤 1: 数据准备步骤 2: 构建模型步骤 3: 定义损失函数和优化器步骤 4: …

我选项目和做项目的两大准则

一、项目不在多&#xff0c;做精做透最重要 其实我们做生意做项目的一定要记住&#xff0c;手头上永远要有一样东西&#xff0c;即便是天塌下来你也能挣钱的&#xff0c;我经常称其为基本盘。比如我们手上的CSGO游戏搬砖&#xff0c;可能在经营这个项目的过程中会或多或少的接…

蓝桥杯练习题——dp

五部曲&#xff08;代码随想录&#xff09; 1.确定 dp 数组以及下标含义 2.确定递推公式 3.确定 dp 数组初始化 4.确定遍历顺序 5.debug 入门题 1.斐波那契数 思路 1.f[i]&#xff1a;第 i 个数的值 2.f[i] f[i - 1] f[i - 2] 3.f[0] 0, f[1] 1 4.顺序遍历 5.记得特判 …

项目管理:实现高效团队协作与成功交付的关键

在当今竞争激烈的市场环境中&#xff0c;项目管理已成为企业成功的关键因素之一。项目管理不仅涉及时间、成本和资源的有效管理&#xff0c;还涉及到团队协作、风险管理、沟通和交付。本文将探讨项目管理的核心要素&#xff0c;以及如何实现高效团队协作和成功交付。 一、明确项…

es集群的详细搭建过程

目录 一、VM配置二、集群搭建三、集群配置 一、VM配置 VM的安装 VMware Workstation 15 Pro的安装与破解 VM新建虚拟机 VM新建虚拟机 二、集群搭建 打开新建好的服务器&#xff0c;node1&#xff0c;使用xshell远程连接 下载es&#xff1a;https://www.elastic.co/cn/down…

【自然语言处理六-最重要的模型-transformer-下】

自然语言处理六-最重要的模型-transformer-下 transformer decoderMasked multi-head attentionencoder和decoder的连接部分-cross attentiondecoder的输出AT(Autoregresssive)NAT transformer decoder 今天接上一篇文章讲的encoder 自然语言处理六-最重要的模型-transformer-…

Carbondata编译适配Spark3

背景 当前carbondata版本2.3.1-rc1中项目源码适配的spark版本最高为3.1,我们需要进行spark3.3版本的编译适配。 原始编译 linux系统下载源码后&#xff0c;安装maven3.6.3&#xff0c;然后执行&#xff1a; mvn -DskipTests -Pspark-3.1 clean package会遇到一些网络问题&a…

SpringCloud-RabbitMQ消息模型

本文深入介绍了RabbitMQ消息模型&#xff0c;涵盖了基本消息队列、工作消息队列、广播、路由和主题等五种常见消息模型。每种模型都具有独特的特点和适用场景&#xff0c;为开发者提供了灵活而强大的消息传递工具。通过这些模型&#xff0c;RabbitMQ实现了解耦、异步通信以及高…

如何远程连接MySQL数据库?

在现代互联网时代&#xff0c;远程连接MySQL数据库成为了许多开发者和管理员必备的技能。这不仅方便了数据的共享和管理&#xff0c;还可以使多个团队在全球范围内协同工作。本文将介绍如何通过天联组网实现远程连接MySQL数据库&#xff0c;并实现高效的信息远程通信。 天联组网…

tomcat nginx 动静分离

实验目的:当访问静态资源的时候&#xff0c;nginx自己处理 当访问动态资源的时候&#xff0c;转给tomcat处理 第一步 关闭防火墙 关闭防护 代理服务器操作&#xff1a; 用yum安装nginx tomcat &#xff08;centos 3&#xff09;下载 跟tomcat&#xff08;centos 4&#xff0…

Shell管道和过滤器

一、Shell管道 Shell 还有一种功能&#xff0c;就是可以将两个或者多个命令&#xff08;程序或者进程&#xff09;连接到一起&#xff0c;把一个命令的输出作为下一个命令的输入&#xff0c;以这种方式连接的两个或者多个命令就形成了管道&#xff08;pipe&#xff09;。 重定…

关于 CTF 中 php 考点与绕过那些事的总结

关于 CTF 中常见 php 绕过的总结可以参考我之前的博客&#xff1a; CTF之PHP特性与绕过 PHP特性之CTF中常见的PHP绕过-CSDN博客 其中主要介绍了 md5()、sha1()、strcmp、switch、intval、$_SERVER 函数、三元运算符、strpos() 、数组、非法参数名传参等相关的绕过。 在此基础上…

vue点击按钮同时下载多个文件

点击下载按钮根据需要的id调接口拿到返回需要下载的文件 再看返回的数据结构 数组中一个对象&#xff0c;就是一个文件&#xff0c;多个对象就是多个文件 下载函数 // 下载tableDownload(row) {getuploadInventoryDownload({ sysBatch: row.sysBatch, fileName: row.fileName…

Linux 进程间通信

目录 管道 匿名管道&#xff08;pipe&#xff09; 有名管道&#xff08;fifo&#xff09; 小结 共享内存 消息队列 信号量 System V IPC的结构设计 Posix与System V的关系 管道 匿名管道&#xff08;pipe&#xff09; 我们知道&#xff0c;在Linux中通过fork创建的子…

YOLOv5优化改进:下采样创新篇 | 新颖的下采样ADown | YOLOv9

💡💡💡本文独家改进:新颖的下采样ADown来自于YOLOv9,助力YOLOv5,将ADown添加在backbone和head处,提供多个yaml改进方法 💡💡💡在多个私有数据集和公开数据集VisDrone2019、PASCAL VOC实现涨点 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/categ…

MongoDB 快速入门

&#x1f4d5;作者简介&#xff1a; 过去日记&#xff0c;致力于Java、GoLang,Rust等多种编程语言&#xff0c;热爱技术&#xff0c;喜欢游戏的博主。 &#x1f4d7;本文收录于MongoDB系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏Rust初阶教程、go语言基础…