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…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
