首页 > 其他分享 >SSD缓存加速

SSD缓存加速

时间:2023-04-01 20:11:27浏览次数:29  
标签:bcache0 dev 缓存 part SSD bcache disk 加速

内核开启bcache

modprobe bcache
lsmod |grep bcache

安装bcache-tools

apt install bcache-tools

绑定SSD和HDD

bcache有两种设备,一个是backing,一个是cache,backing指的就是存放数据的后端磁盘,cache很好理解,就是高速缓存盘SSD

查看系统中存在的硬盘

fdisk -l

清除磁盘的块信息

wipefs -a /dev/nvme0n1
wipefs -a /dev/sdb

添加数据盘

make-bcache -B /dev/sdb

添加缓存盘

make-bcache -C /dev/nvme0n1

查看块信息

lsblk
root@debian:~# lsblk
NAME                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                     8:0    0   16G  0 disk
├─sda1                  8:1    0  487M  0 part /boot
├─sda2                  8:2    0    1K  0 part
├─sda3                  8:3    0 1023K  0 part
├─sda4                  8:4    0   12G  0 part
│ ├─debian--vg-root   254:0    0 11.5G  0 lvm  /
│ └─debian--vg-swap_1 254:1    0    4G  0 lvm  [SWAP]
└─sda5                  8:5    0  3.5G  0 part
  ├─debian--vg-root   254:0    0 11.5G  0 lvm  /
  └─debian--vg-swap_1 254:1    0    4G  0 lvm  [SWAP]
sdb                     8:16   0  3.7T  0 disk
└─bcache0             253:0    0  3.7T  0 disk
sdc                     8:32   0  3.7T  0 disk
└─sdc1                  8:33   0  3.7T  0 part
nvme0n1               259:0    0  477G  0 disk

查看缓存盘的UUID

bcache-super-show /dev/nvme0n1

最后一行的cset.uuid的值就是我们要找的uuid,然后进行attach操作完成添加缓存磁盘

绑定缓存盘

echo "dcddc3f8-e1d4-4ecf-8510-67158a5e3958" >/sys/block/bcache0/bcache/attach
root@debian:~# lsblk
NAME                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                     8:0    0   16G  0 disk
├─sda1                  8:1    0  487M  0 part /boot
├─sda2                  8:2    0    1K  0 part
├─sda3                  8:3    0 1023K  0 part
├─sda4                  8:4    0   12G  0 part
│ ├─debian--vg-root   253:0    0 11.5G  0 lvm  /
│ └─debian--vg-swap_1 253:1    0    4G  0 lvm  [SWAP]
└─sda5                  8:5    0  3.5G  0 part
  ├─debian--vg-root   253:0    0 11.5G  0 lvm  /
  └─debian--vg-swap_1 253:1    0    4G  0 lvm  [SWAP]
sdb                     8:16   0  3.7T  0 disk
└─bcache0             254:0    0  3.7T  0 disk
sdc                     8:32   0  3.7T  0 disk
└─sdc1                  8:33   0  3.7T  0 part
nvme0n1               259:0    0  477G  0 disk
└─bcache0             254:0    0  3.7T  0 disk

如提示错误以下,可以尝试重启后继续操作

-bash: echo: write error: No such file or directory

查看缓存状态

cat /sys/block/bcache0/bcache/state

no cache:该backing device没有attach任何caching device
clean:一切正常,缓存是干净的
dirty:一切正常,已启用回写,缓存是脏的
inconsistent:遇到问题,后台设备与缓存设备不同步

更改缓存策略

Bcache有三种缓存策略

(1)writeback回写策略:数据先写入到缓存磁盘,再等待系统将缓存磁盘数据刷到后端磁盘
(2)writethrough写通策略:数据会同时写入缓存磁盘和数据磁盘(默认是该模式)
(3)writearound直达策略:数据直接写入后端磁盘

为保证性能,改为writeback回写策略

查看缓存模式

cat /sys/block/bcache0/bcache/cache_mode

改为回写策略

echo writeback > /sys/block/bcache0/bcache/cache_mode

格式化数据盘

mkfs.xfs /dev/bcache0

挂载数据盘

临时挂载

mount /dev/bcache0 /diskb

开机自动挂载

查看设备UUID

blkid /dev/bcache0

添加到/etc/fstab

vi /etc/fstab
UUID=caa8005f-05ce-430d-b133-94f0a3b32f39 /diska                   xfs     defaults        0 0

重启后验证是否正常挂载

测试缓存性能

apt install fio

读取测试

无缓存时数据盘

fio -filename=/dev/sdb -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=4k -size=200G -numjobs=10 -runtime=60 -group_reporting -name=mytest

加了缓存的数据盘

fio -filename=/dev/bcache0 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=4k -size=200G -numjobs=10 -runtime=60 -group_reporting -name=mytest

写入测试

无缓存时数据盘

fio -filename=/dev/sdb -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=200G -numjobs=10 -runtime=60 -group_reporting -name=mytest

加了缓存的数据盘

fio -filename=/dev/bcache0 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=200G -numjobs=10 -runtime=60 -group_reporting -name=mytest

标签:bcache0,dev,缓存,part,SSD,bcache,disk,加速
From: https://www.cnblogs.com/byzora/p/17279254.html

相关文章

  • junit单元测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
    今天在复习的时候对对一些知识点进行巩固,用到了junit-4.12.jar,手动导入jar包,然后运行然后报错:java.lang.NoClassDefFoundError:org/hamcrest/SelfDescribing。刚开始我以为代码错了,看了看发现不是代码的问题,是导包的问题。然后查询了百度,发现了是版本的问题:然后说换个低版本的就......
  • 清理缓存的问题ctrl+F5或者引入外部js的时候?加任意数字
    系列文章目录文章目录系列文章目录==注意ctrl+F5连同js一起刷新,这样就不用清理缓存了====还有一种方式:引入外部js的时候?加任意数字,如下==注意ctrl+F5连同js一起刷新,这样就不用清理缓存了我们有时候刷新之后,页面不生效,甚至我们要清理缓存页面才生效原因是因为浏览器会缓存js文......
  • 项目一众筹网05_02_[树形开发]菜单管理、API文档发布到web服务器、配置文件里面修改to
    系列文章目录文章目录系列文章目录08-页面显示树形结构-前端-使用真实数据09-准备zTree的API文档(因为现在没有图标)==API文档发布到web服务器上去==配置文件里面修改tomcat的默认端口号(只需改动3个地方)10-前端-显示图标-分析思路(-页面显示树形结构)11-前端-显示图标-代码实现(-页面......
  • CentOS 7 yum加速
    cd/etc/yum.repos.d/mkdirbakmvCentOS-Base.repo./bak/wgethttp://mirrors.163.com/.help/CentOS7-Base-163.repoyuminstallepel-releasesed-e's!^metalink=!#metalink=!g'\-e's!^#baseurl=!baseurl=!g'\-e's!http:/......
  • Redis基于@Cacheable注解实现接口缓存
    说明@Cacheable注解在方法上,表示该方法的返回结果是可以缓存的。也就是说,该方法的返回结果会放在缓存中,以便于以后使用相同的参数调用该方法时,会返回缓存中的值,而不会实际执行该方法。属性名称属性描述举例value/cacheNames指定缓存组件的名字@Cacheable(value="......
  • 专业的Tiktok加速器是什么?Tiktok加速器有什么优势?
    在使用国际版抖音TikTok时,很多人会遇到网络缓慢的问题,这会影响他们的使用体验。为了解决这个问题,很多人开始寻找Tiktok加速器来加速网络。而在市场上,有一些专业的Tiktok加速器,具有海外静态独享节点IP可供选择、线路自由切换等功能,可以提供更好的加速效果。 本文将介绍一些专业......
  • 缓存行与伪共享问题
    局部性原理时间局部性:如果数据正在被访问,那么在近期它很可能还会被再次访问。比如循环、方法的反复调用等。空间局部性:如果存储器的位置被引用,那么将来他附近的位置也会被引用。比如顺序结构、数组。CPU缓存执行程序是靠CPU执行主存中代码,但是CPU和主存的速度差异是非常大的,为......
  • 缓存更新策略
      TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChineseSimplifiedHungarianRuss......
  • 拒绝“爆雷”!GaussDB(for MySQL)新上线了这个功能
    摘要:智能把控大数据量查询,防患系统奔溃于未然。本文分享自华为云社区《拒绝“爆雷”!GaussDB(forMySQL)新上线了这个功能》,作者:GaussDB数据库。什么是最大读取行一直以来,大......
  • 后端手册--18--redis缓存
    Redis缓存yudao-spring-boot-starter-redis (opensnewwindow)技术组件,使用Redis实现缓存的功能,它有2种使用方式:编程式缓存:基于SpringDataRedis框架的Redi......