smartctl 设置硬盘的 write-caching
sg3
一、sg3查看缓存状态
您可以使用sg_modes
命令来查看SAS盘和SATA盘的缓存状态。例如,要查看/dev/sdb
设备的缓存状态,您可以执行以下命令:
sg_modes -p 8,0 /dev/sdb
二、sg3关闭机械盘写缓存状态(仅适用于SAS盘)
对于SAS盘,您可以按照以下步骤更改其读写缓存状态:
1、编辑缓存状态
使用vi
编辑器创建或编辑一个名为mode_page.dat
的文件,并设置适当的缓存状态值。对于关闭写缓存而开启读缓存,不同的磁盘厂商有不同的设置方式。以下是一些常见磁盘厂商的设置示例:
- WD磁盘:
00
:读缓存开启,写缓存关闭
04
:读写缓存全部打开
01
:读写缓存全部关闭
05
:读缓存关闭,写缓存开启
- Seagate和Toshiba磁盘:
10
:读缓存开启,写缓存关闭
14
:读写缓存全部打开
11
:读写缓存全部关闭
15
:读缓存关闭,写缓存开启
编辑mode_page.dat
文件时,确保第一行包含正确的缓存设置值。例如,对于WD磁盘,关闭写缓存并开启读缓存,第一行可能如下:
88 12 00 00 ff ff 00 00 ff ff ff ff 00 08 00 00 00 00 00 00
请注意,您需要根据具体的磁盘型号选择正确的设置值。
2、将缓存状态写入磁盘
使用sg_wr_mode
命令将编辑后的缓存状态写入磁盘。例如,要将mode_page.dat
中的设置写入/dev/sdb
设备,您可以执行:
sg_wr_mode -p 8,0 -c - -s /dev/sdb < mode_page.dat
3、验证缓存状态
为了确保缓存状态已成功更改,您可以再次使用sg_modes
命令来查看:
sg_modes -p 8,0 /dev/sdb
检查输出中的相关位,以确保写缓存已按预期关闭。
Smartctl
一、使用smartctl
查看和更改磁盘缓存状态
1、查看写缓存状态
您可以使用smartctl
命令来查看SAS盘和SATA盘的写缓存状态。执行以下命令:
smartctl -g wcache /dev/sde
将/dev/sde
替换为您想要检查的磁盘设备名。
2、打开磁盘写缓存
要启用SAS盘或SATA盘的写缓存,执行以下命令:
smartctl -s wcache=on /dev/sde
同样,将/dev/sde
替换为相应的磁盘设备名。
3、关闭磁盘写缓存
要禁用SAS盘或SATA盘的写缓存,执行以下命令:
smartctl -s wcache=off /dev/sde
4、查看读缓存状态(仅限SAS盘)
对于SAS盘,您还可以使用smartctl
查看读缓存状态:
smartctl -g rcache /dev/sde
5、打开磁盘读缓存(仅限SAS盘)
要启用SAS盘的读缓存,执行以下命令:
smartctl -s rcache=on /dev/sde
6、关闭磁盘读缓存(仅限SAS盘)
要禁用SAS盘的读缓存,执行以下命令:
smartctl -s rcache=off /dev/sde
7、查看磁盘基础信息
使用smartctl
的-i
选项,您可以查看磁盘的基础信息,包括型号、大小、容量和固件版本等:
smartctl -i /dev/sdb
请确保将/dev/sdb
替换为您想要查询的磁盘设备名。
注意:
- 使用
smartctl
更改磁盘缓存信息是临时性的。当系统断电或重启后,缓存设置将恢复为原状态。 - 在更改缓存设置之前,请确保您了解这些更改对系统性能和数据完整性的影响。
- 对于某些磁盘,使用
smartctl
更改缓存设置可能不受支持或可能无效。在这种情况下,请参考磁盘的官方文档以获取正确的设置方法。 - 错误的缓存设置可能导致数据丢失或系统不稳定,因此在进行任何更改之前,请务必备份重要数据。
Sdparm
一、使用sdparm
查看和更改SAS磁盘缓存状态
1、查看写缓存状态
使用sdparm
命令可以查看SAS盘和SATA盘的写缓存状态。对于SAS盘,执行以下命令:
sdparm --get=WCE /dev/sdb
对于SATA盘,虽然某些情况下可能也可以使用此命令,但请注意不是所有SATA控制器或驱动器都支持通过sdparm
更改缓存设置。如果返回值为1
,则表示写缓存已开启。
2、打开磁盘写缓存
若要启用SAS盘的写缓存,执行以下命令:
sdparm -s WCE=1 --save /dev/sde
请注意,此命令仅适用于SAS盘,并且需要管理员权限来执行。
3、关闭磁盘写缓存
若要禁用SAS盘的写缓存,执行以下命令:
sdparm -s WCE=0 --save /dev/sde
同样,这也仅适用于SAS盘,并需要相应的权限。
4、查看读缓存状态
对于SAS盘和某些SATA盘,您可以使用sdparm
查看读缓存状态:
sdparm --get=RCD /dev/sdb
返回值0
表示读缓存已开启,而1
则表示读缓存已关闭。
5、打开磁盘读缓存
若要启用SAS盘的读缓存(如果之前被关闭),执行以下命令:
sdparm -s RCD=0 --save /dev/sde
这同样仅适用于SAS盘,并需要管理员权限。
6、关闭磁盘读缓存
若要禁用SAS盘的读缓存,执行以下命令:
sdparm -s RCD=1 --save /dev/sde
这也仅适用于SAS盘,并需要相应的权限。
- 在执行任何缓存更改之前,请确保您了解这些更改对系统性能和数据完整性的影响。
- 并非所有磁盘或控制器都支持通过
sdparm
更改缓存设置。在执行这些命令之前,请查阅您的磁盘和控制器文档以确认兼容性。 - 更改缓存设置可能会影响磁盘性能和数据持久性。务必在了解这些影响之后进行更改,并在进行任何更改之前备份重要数据。
- 某些更改可能是临时性的,并且在重启或断电后可能不会保持。确保测试更改的持久性,并根据需要进行调整。
SATA 盘和 SAS 盘可以分别通过 hdparm 和 sdparm 来设置它的 write-caching 属性。
但是在有的情况下,系统上没有安装这两个工具,还可以考虑使用 smartctl 工具来设置。smartctl 的 –get 和 –set 参数可以用来查询和设置非 SMART 的属性,其中就包括了写缓存属性 wcache。
查看当前硬盘当前的 wcache 值:
[root@chenhong204 ~]# smartctl --get=wcache /dev/sdc
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.10.0-693.el7.x86_64] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.orgWriteback Cache is: Enabled
关闭写缓存:
[root@chenhong204 ~]# smartctl --set=wcache,off /dev/sdc
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.10.0-693.el7.x86_64] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.orgWrite cache disabled
开启写缓存:
[root@chenhong204 ~]# smartctl --set=wcache,on /dev/sdc
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.10.0-693.el7.x86_64] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.orgWrite cache enabled
特别需要注意的是,用 smartctl 设置的值不能持久化,即重启后会恢复默认值。
相关文章:

smartctl 设置硬盘的 write-caching
sg3 一、sg3查看缓存状态 您可以使用sg_modes命令来查看SAS盘和SATA盘的缓存状态。例如,要查看/dev/sdb设备的缓存状态,您可以执行以下命令: sg_modes -p 8,0 /dev/sdb 二、sg3关闭机械盘写缓存状态(仅适用于SAS盘)…...

【Spring AI】Java实现类似langchain的向量数据库RAG_原理与具体实践
介绍一下RAG: 检索增强生成(RAG)是一种技术,它结合了检索模型和生成模型来提高文本生成的质量。通过从企业私有或专有的数据源中检索相关信息,并将这些信息与大型语言模型相结合,RAG能够显著减少模型产生幻…...
linux下使用systemctl设置开机自动运行程序
本文介绍在Linux下,使用systemctl设置开机自动运行程序,实现创建一个systemd服务单元文件,并启用该服务的方法。 1、创建.service文件 在/etc/systemd/system/目录下创建一个以.service结尾的文件,例如myapp.service:…...

复位电路的亚稳态
复位导致亚稳态的概念: 同步电路中,输入数据需要与时钟满足setup time和hold time才能进行数据的正常传输(数据在这个时间段内必须保持不变:1不能变为0,0也不能变为1),防止亚稳态; …...

针对考研的C语言学习(循环队列-链表版本以及2019循环队列大题)
题目 【注】此版本严格按照数字版循环队列的写法,rear所代表的永远是空数据 图解 1.初始化部分和插入部分 2出队 3.分部代码解析 初始化 void init_cir_link_que(CirLinkQue& q) {q.rear q.front (LinkList)malloc(sizeof(LNode));q.front->next NULL…...
系统架构设计师教程 第12章 12.4 信息系统架构案例分析 笔记
12.4 信息系统架构案例分析 ★★★★☆ 12.4.1 价值驱动的体系结构——连接产品策略与体系结构 1.价值模型概述 价值模型核心的特征可以简化为三种基本形式。 (1)价值期望值:表示对某一特定功能的需求,包括功能、质量和不同 级别质量的实用性。 (2)…...
web1.0,web2.0,web3.0 有什么区别 详解
Web 的发展经历了多个阶段,每个阶段都有其独特的特点和技术进步。下面是 Web 1.0、Web 2.0 和 Web 3.0 之间的主要区别和详细解释: Web 1.0 时间范围:大约在 1991 年至 1995 年。 Web 1.0 是互联网的最初形态,也被称为静态 Web…...

将图片添加到 PDF 的 5 种方法
需要一种称为 PDF 编辑器的特定工具才能将图片添加到 PDF。尽管大多数浏览器在查看和注释 PDF 文件方面都非常出色,但如果您使用图像到 PDF 技术,则只能将照片放入 PDF 中。无需修改即可将 PDF 文件恢复为原始格式的能力是使用此类软件程序甚至在线服务的…...

TiDB 优化器丨执行计划和 SQL 算子解读最佳实践
导读 在数据库系统中,查询优化器是数据库管理系统的核心组成部分,负责将用户的 SQL 查询转化为高效的执行计划,因而会直接影响用户体感的性能与稳定性。优化器的设计与实现过程充满挑战,有人比喻称这是数据库技术要持续攀登的珠穆…...
初学51单片机之I2C总线与E2PROM以及UART简单实例应用
这是I2C的系列的第三篇,这篇主要是写一个简单的程序来实践一下相关的内容。前面博主写过一个电子密码锁的程序初学51单片机之简易电子密码锁及PWM应用扩展_51单片机设计电子密码锁-CSDN博客 本篇主要是在此基础上修改下程序,让密码存储在E2PROM中&#…...
软考高级软件架构师论文——论Web系统的测试技术及其应用
【摘要】 本人于2023年8月参与了某地级市的市级机关电子政务信息系统的建设工作,该项目是该市机关的电子政务网建设计划的一部分,笔者在该项目中担任项目经理和系统分析师一职,主要负责项目的日常全面管理和质量保证与质量控制工作。该项目是基于WEB系统的,由于WEB系统具有…...

快速总结AFPN
AFPN: Asymptotic Feature Pyramid Network for Object Detection 解决的问题 特征金字塔架构的提出是为了解决尺度变化的问题,图像中物体真正有用的特征在顶部最高层需要通过多个中间尺度传播,并与这些尺度的特征交互,才能与底部的低层特征…...
Linux 内核中USB鼠标枚举失败问题总结
一、环境: 机器平台:linux 内核版本:linux-3.4 二、问题: USB鼠标接入后报错,log显示设备无法枚举 usb 1-1: new low-speed USB device number 10 using musb-hdrc hub 1-0:1.0: unable to enumerate USB device o…...
十六进制转二进制
128 64 32 16 8 4 2 1 十六进制:0~9ABCDEF(A是10、B是11、C是12、D是13、E是14、F是15) 每一个十六进制位转换成4个二进制位,左边不足4个补0 示例: 109CBE:0001 0000 1001 1100 1011 1110 8 4 2 1 1 …...
Python保存CSV文件,Excel打开后中文乱码
情况描述 在做多语言文件处理时, 使用 pandas, 并且指定了encoding为 UTF-8, 在 IDE, Sublime等编辑器上查看都显示正常,使用Excel打开非英文字符, 例如汉字, 阿拉伯文, 希伯来文等显…...

数据湖数据仓库数据集市数据清理以及DataOps
一提到大数据我们就知道是海量数据,但是我们并不了解需要从哪些维度去考虑这些数据的存储。比如 数据湖、数据仓库、数据集市,以及数据自动化应用DataOps有哪些实现方式和实际应用,这篇文章将浅显的做一次介绍。 数据湖 数据湖是一种以自然…...

「Ubuntu」文件权限说明(drwxr-xr-x)
我们在使用Ubuntu 查看文件信息时,常常使用 ll 命令查看,但是输出的详细信息有些复杂,特别是 类似与 drwxr-xr-x 的字符串,在此进行详细解释下 属主:所属用户 属组:文件所属组别 drwxr-xr-x 7 apps root 4…...
JS-学生管理系统(功能实现)
基础知识点掌握: 1.DOM节点 首先DOM树当做一颗到着生长的树,DOM树里面的每一个内容称为节点 节点类型: 属性节点元素节点文本节点其他 2.查找节点: 查找节点分为3个类型: 父节点子节点兄弟节点 (1&…...

C# 屏幕录制工具
屏幕录制工具 开发语音:C# vb.net 下载地址:https://download.csdn.net/download/polloo2012/89879996 功能:屏幕录制,声卡采集,麦克风采集。 屏幕录制:录制屏幕所有操作,并转换视频格式&…...

前端开发攻略---前端ocr图片文字提取功能
1、引入资源 通过链接引用 <script src"https://cdn.bootcdn.net/ajax/libs/tesseract.js/5.1.0/tesseract.min.js"></script> npm或其他方式下载 npm i tesseract 2、示例 <!DOCTYPE html> <html lang"en"><head><meta…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...

恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...