平时你开发的代码会暂存在磁盘上;开发中用的最多的数据库 MySQL,其数据是持久化到磁盘中的;Redis 的持久化数据是落到磁盘的;Zookeeper 内存中的数据、事务日志、快照会持久化到磁盘;像 RocketMQ 这实际上就是数据被持久化进了磁盘,下次需要文件时再从磁盘中取出来。 这个存、取的过程其实对我们完全无感知的,我们就知道装机的时候安了一块硬盘,其他的啥也不知道。 磁盘结构 那磁盘里究竟长啥样呢? 磁盘性能 了解完一些简单的原理之后,我们终于可以来了解磁盘性能相关的问题了,我们会深入的分析为什么磁盘 IO 是个非常昂贵的操作。 现在思考一个问题,我们要查询数据,底层会怎么做? : 磁头寻道时间:这个延迟一般在 3-15 ms 盘片旋转延迟:这个取决于主轴旋转的速度,随着速度的不同大概在 2-4 ms 数据传输时间:这里平均只用 3 微秒,跟上面两个比起来这里的耗时可以忽略不计 内存的随机读大概在几百纳秒,假设内存的速度是 200 ns、磁盘的速度是 2ms(按上表中转速最高的延迟来算),差了 10000 倍,也就是 4 个数量级。
1、TOP命令查看CPU是否长时间等待IO [root@localhost ~]# top %wa超过30%,说明IO压力很大 2、iostat命令查看磁盘工作时长占比 [root@localhost ~]# iostat -x 1 //1表示1秒刷新一次 3、pidstat命令查看当前进行IO的进程 [root@localhost ~]# pidstat -d 1 4、 dd测试磁盘的读写速度 [root@localhost ~]# time dd if=/dev/vdb1 of=/dev/null bs=8k count=30000 [root@localhost ~ /dev/zero也是一个模拟设备用于产生空字节并不真正进行IO,所以第一条命令相当天测试当前文件夹对应的磁盘的写入性能(711MB/s)。
线上一台Linux服务器最近经常磁盘根分区满告警, 但不是普通的日志文件或数据文件过多过大,现象如下: 1)执行“df -h”查看各分区空间的使用情况 [root@XEN64 lost+found 1 media 1 mnt 32 opt du: cannot access 'proc/17842/task/17842/fd/4' : No such file or directory du: cannot access 'proc/17842/task/17842/fdinfo/4': No such file or directory du: cannot access 'proc/17842/fd/4': No such file or directory du: cannot access 'proc/17842/fdinfo /4': No such file or directory 0 proc 2 root 666 run 0 sbin 1 srv 0
官网地址:https://wiztreefree.com 一款磁盘占用分析工具,速度极快,能够快速分析出磁盘中大文件的位置,十分推荐使用。 通过它清晰直观的可视化扫描结果(可按文件大小排序、修改时间排序),你能非常容易地揪出那些占用硬盘空间的“大流氓”——大型文件和文件夹,快速定位并删除它们,轻松搞定磁盘清理,腾出宝贵的硬盘空间。
-i -f -v /dev/nvme0n1p2 # 扩容; 也可以使用磁盘软件进行调整大小#--- 格式 xfs 磁盘扩容 ---#xfs_growfs /dev/vda1 ,没有权限时候进入pe 修复磁盘 inodee2fsck -f /dev/vdb1 # 修复磁盘fsck.ext4 -a /dev/vda1 # 修复磁盘df -hT # 再次查看文件分区大小。 # 相关链接linux/windows 磁盘分区扩容:ext4 xfs NTFS 磁盘扩容: http://ddoss.cn/read-581-1.htmlparted 磁盘分区-挂载-删除-shell 脚本进行磁盘分区: http://ddoss.cn/read-65-1.html
今天借助overdisk这款免费小工具,让我们能直观的了解磁盘的空间情况。 下载地址 http://dl.dbank.com/c0cb7rz9d0 软件打开之后在左上角选择分区,几秒钟之后便会展现出磁盘空间饼状图。中间灰色区域是当前目录名,根目录时则是盘符。 鼠标悬停在相应色块则会显示文件夹占用空间等详细信息,单击则进入相应目录进行分析。右键点击可以在资源管理器中打开对应目录。
处置分析 症状:cp: 无法创建目录 ‘’: 设备上没有空间 sudo su cd / ls df -h 20210826141836766773.png 很明显,得从 / 根目录着手 du -h -- du 会显示指定的目录或文件所占用的磁盘空间。
在磁盘阵列在线支持的过程中,会遇到一些常见的问题,现将有典型意义的问题分析如下 1.在服务器往盘阵中写入或读出数据时报错(如I/0 error,读写延缓失败等),或不能写入数据,或写入过程中出错 1) 这时一定要提醒用户先关闭服务器,再关闭盘阵,稍等片刻,等静电释放完毕后立即将SCSI线换接到in口 3) 查看通道速度: 正常情况下本公司盘阵的通道频率都为160MHZ(对应传输速率为320MB/s),如果发现磁盘通道频率为 /s速率SCSI卡连接盘阵,会出现服务器不能访问盘阵或读写速率非常慢的情况 3)查看通道速率,如果发现有人为更改过通道频率或自身即显示为80或更低频率,将会导致速率很慢,可尝试将其修改到160MHZ 4) 数据库文件访问:访问次数比较频繁,但每次I/O数据量不大,一般为一个表或某几个字段的修改,这时要求条带比较小,一般设置为8K或更小为宜 在常见的盘阵问题在线支持中,遇到的另一个常见问题就是服务器识别不到盘阵,一般分析思路如下 需要确认 a)HBA卡与盘阵的兼容性 如adaptecSCSI卡与SCSI盘阵不太兼容,详细内容可查相关兼容列表 b)SCSI线或光纤线,SFP有无破损,若路途通过光纤交换机,查看相应的端口指示灯是否正常 4
磁盘I/O 操作系统每一层都存在I/O,CPU和内存都存在I/O,磁盘也有I/O,网络传输也有I/O,内存和CPU的I/O处理可能会产生磁盘I/O,上一篇我们已经分析磁盘进行I/O处理时的总体响应时间, 简而言之: 磁盘的 IOPS,也就是在一秒内,磁盘进行多少次 I/O 读写。 磁盘的吞吐量,也就是每秒磁盘 I/O 的流量,即磁盘写入加上读出的数据的大小。 Linux性能分析 Linux系统使用ps -o来查看某一个进程号为24150的java进程的缺页错误 ps -o min_flt,maj_flt,cmd,args,uid,gid 24150 ? 当这个值接近100%时,表示磁盘I/O已经饱和 sar(System ActivityReporter系统活动情况报告)命令是比较全面的分析系统性能的工具。 保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区) commit 这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值 内存分析
可以得到此时磁盘 hdisk2 吞吐量为 318M。 使用 nmon 收集一个时间段的数据,然后使用 nmon analyzer 进行分析,可以得出更为直接的图表: ? 将收集好的 nmon 文件使用 nmon analyzer 进行分析,得出如下报表: 图 2.nmon 图表显示磁盘性能 ? 我们才会从磁盘 I/O 方面分析 I/O 性能。 通过调整 AIX 参数改善磁盘 I/O 性能 在 AIX 系统中,有关磁盘 I/O 性能相关的参数我们主要调整的参数如下图: 图 4.AIX 常见的磁盘 I/O 性能参数 ? AIX 中定义的每个磁盘在 ODM 库中都有 queue_depth 属性。这个属性限制了 AIX 可以传送到设备的最大命令的数量。 queue_depth 默认数值为 4 ?
前言 不管是使用电脑还是维护服务器,都会遇到一个问题,磁盘空间不足。一般都是通过 du 命令来统计磁盘占用空间。 今天推荐一个非常好用的统计磁盘占用工具 ncdu。 ncdu 项目地址 https://github.com/rofl0r/ncdu ncdu 相对与 du 的优势 优势: 统计的目录以仪表盘展示 可以以磁盘占用大小或者文件名称排序 支持远程导出本地分析
问题背景我的C盘出现了空间不足的警告:于是我向WorkBuddy发出了指令:分析我C盘的磁盘空间占用情况实现过程1.初步尝试-使用PowerShellWorkBuddy首先尝试使用PowerShell命令分析磁盘 可视化分析我进一步要求WorkBuddy生成可视化图表:使用图表对磁盘进行可视化分析,优化磁盘分析报告WorkBuddy立即创建了可视化脚本,使用matplotlib生成多种图表:python复制生成的可视化图表包含 \Cache建议:清理Chrome、Edge等浏览器缓存预期效果清理项目可释放空间清空回收站~4GB清理Downloads~15GB磁盘清理工具~7GB其他清理~4GB总计20-35GB清理后预计剩余空间 :50-65GB✅推荐工具WorkBuddy还推荐了几款实用的磁盘管理工具:WizTree-极速磁盘空间分析工具,秒速扫描整个磁盘CCleaner-系统清理工具,一键清理垃圾文件TreeSizeFree :✅完整的磁盘空间分析✅可视化图表展示✅精美的HTML报告✅分优先级的清理建议✅预计可释放20-35GB空间工作效率提升:传统手动分析需要2-3小时,使用AI只需5分钟!
今天给大家推荐一款关于磁盘整理相关的软件,非常实用方便,提高效率! ---- 工作学习之余,我们打游戏,听音乐,存照片都会占用我们电脑磁盘空间,从而导致磁盘空间不足,也不知道到底是哪些文件占用了大容量。 这时,我们就需要一款强大的工具来帮助我们整理分析磁盘,Tree Size就是这么一款工具,它具有以下功能: 1,整体展现磁盘空间占用情况 我们可以很客观地看到c盘的各个文件夹占用大小以及修改信息; ? 2,扫描磁盘或文件夹,分级展开目录 我们可以查看磁盘的占用信息,也可以查看任一文件夹的占用信息 ? 分级目录 3,视图多种形式展开文件 我们可以以多种形式展开磁盘的文件,采用视图展开,按照文件大小展开等等 ? 多形式展开 最后: 这个软件我日常工作学习都会使用到,对于清理磁盘来说,感觉非常良好!
,不影响系统的连续运行,但是存在冗余开销(效率稍低)以及可用容量空间的减少; 4.可管理性:RAID 是一种虚拟化技术,它对多个物理磁盘驱动器虚拟成一个大容量的逻辑驱动器。 ,存储成本高 应用领域: 适用于存放重要数据,如服务器和数据库存储等领域. 4) RAID01|RAID10 描述:RAID 0+1是先做条带化再作镜像,本质是对物理磁盘实现镜像。 RAID 5磁盘阵列由N(N>=3)块盘组成阵列,一份数据产生N-1个条带,同时还有1份校验数据共N份数据在N块盘上循环均衡存储 RAID5是目前最常见的 RAID 等级,它的原理与 RAID4 相似, 对于数据和校验数据,它们的写操作可以同时发生在完全不同的磁盘上, 因此RAID5 不存在 RAID4 中的并发写操作时的校验盘性能瓶颈问题。 RAID5 还具备很好的扩展性,当阵列磁盘 数量增加时,并行操作量的能力也随之增长,可比 RAID4 支持更多的磁盘,从而拥有更高的容量以及更高的性能。
前言 上篇写了 Spark Shuffle 内存分析 后,有不少人提出了疑问,大家也对如何落文件挺感兴趣的,所以这篇文章会详细介绍,Sort Based Shuffle Write 阶段是如何进行落磁盘的 流程分析 入口处: org.apache.spark.scheduler.ShuffleMapTask.runTask runTask对应的代码为: val manager = SparkEnv.get.shuffleManager writer.stop(success = true).get 这里manager 拿到的是 org.apache.spark.shuffle.sort.SortShuffleWriter 我们看他是如何拿到可以写磁盘的那个 我们分析的线路假设需要做mapSideCombine sorter = if (dep.mapSideCombine) { require(dep.aggregator.isDefined, " 文件被被记录在一个数组里: private val spills = new ArrayBuffer[SpilledFile] 迭代完一个task对应的partition数据后,会做merge操作,把磁盘上的
详细背景:技术分享 | 客户说 insert 慢,我该怎么办 2日志分析 2.1 慢日志分析 发现 MySQL 慢日志中记录的慢日志是一批一批地被记录,并不是实时被记录。 took 12151ms 意义:耗时时间为 12.121s flush 19 and evict 0 pages 意义:InnoDB 尝试刷新 19 个脏页 打印机制 代码解释 每一轮刷脏时间都超过 4s 3持续观测磁盘 IO 通过 iostat 命令看到磁盘确实会出现一段时间的 IO 异常(此时磁盘 IO 使用基本为 0,但是磁盘使用率为 100%)。 4客户诉求 目前已知是磁盘 IO 这块的问题影响到了日常业务运行,还是希望我们能协助继续排查一下是 IO 的哪个环节出现的问题。 5.2.3 也可以通过 blkparse 命令分析 // blkparse 直接进行分析 blkparse -i sda120220915112930 |less // 下图中第六个字段表示 IO 事件
查看磁盘:lsblk 可以看到:nvme1n1是我们要挂载的新磁盘。 红色框是已有磁盘,查看一下两个磁盘: file -s /dev/nvme0n1 file -s /dev/nvme1n1 使用 lsblk -f 命令获取有关连接到实例的所有设备的信息。 file -s /dev/nvme1n1 格式化新磁盘的文件系统: mkfs -t xfs /dev/nvme1n1 再次:lsblk -f 可以看到新磁盘就绪。 mkdir /app mount /dev/nvme1n1 /app 加到/etc/fstab中:(磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载
阅读完本篇文章,我期望你能够在磁盘遇到楼下这种情况的时候,能利用SpaceSniffer冷静分析是谁在搞事情,然后出台相应的措施。
线上的一个问题分析过程 上周五下午的时候,线上的一个服务器出了一个报警,报警内容是CPU利用率大于80%,持续时间五分钟。 于是我上去看了一眼监控,监控中可以看到的数据如下: ? ? 3、从磁盘的状态来看,磁盘的IO负载也是满的,是否产生了大量的慢日志,导致磁盘负载激增? 于是我查询了所有实例的慢日志文件增长情况,发现慢日志的几乎没有什么增长。这个问题就比较奇怪了。 得到的结果是他们正在对一个log库进行数据统计分析,所以将一个月的log进行了一下查询,同时反馈的信息还有,这个查询现在已经过了一个小时了,还没有得到结果。 可以看到,CPU、负载和磁盘使用率发生了一个比较明显的下降。 一点反思: 0、本例子中,CPU的升高和负载的升高其实是由磁盘的IO打满导致其他系统任务出现等待。 之所以能够写出这一篇文章,其实也是由于我有截取日志的习惯,所以提示大家在发现问题的时候,一定要保留现场,即使自己不能解决,也能够让其他人帮助自己进行分析和处理。
如果您熟悉磁盘结构,就知道磁盘是被分解成扇区 的,大小通常是 512 字节;所有读写操作均在成倍大小的扇区中进行。 不过,专用于奇偶检验的空间减少了,可能加快较大磁盘的引入或提高磁盘可靠性。 受测试的文件系统是 ext3fs、ext4fs、ReiserFS(第 3 版)、JFS、XFS 和 Btrfs。计算机运行一个 64 比特 2.6.32.3 Linux 内核。 源 Linux 内核原始码存储在另一个磁盘上,对于读测试,输出指向 /dev/null。在每个写测试之后,测试磁盘被卸载,以确保在 Linux 的磁盘缓存中没有操作。 对原始码提取的影响范围为 1.04(对于 ext4fs)到 25.53(对于 ReiserFS),平均值为 10.9。该测试中第二大性能影响者是 XFS,值为 1.82。