首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

混沌工程之磁盘

在上一个文章中详细了介绍了什么是混沌工程以及混沌工程执行的原则,和混沌工程实验中数据库调用延迟,下来详细的介绍另外一个混沌实验,也就是云服务器磁盘被写的情况的模拟实验和解决思路。...实验的核心是模拟当服务器的磁盘的情况下,这个时候服务器就会成为只读的属性。...比如举个案例,当DB的服务器磁盘的情况下,那么这个时候DB服务器就成为只读属性,这个时候产品使用的数据库由于成为了只读属性,意味着使用这个DB的服务器就会出现大面积的瘫痪导致服务不可用。...下来首先模拟下磁盘的操作,在操作前首先查看磁盘已使用的空间以及可使用的空间,具体如下: 系统资源整体性的监控信息具体如下图所示。...那么在如上的实验中,需要思考的是在磁盘的情况下需要很快速的触发报警机制,然后来排查到底是什么原因导致磁盘空间写以及针对情况需要给出具体的技术解决方案,同时也要能够快速的切换到一个正常的服务器继续让产品的服务能够提供服务

60930

MySQL中MGR中SECONDARY节点磁盘,导致mysqld进程被OOM Killed

问题描述 MySQL 8.0.26 测试过程 disk full报告过程及何时被oom killed 关注mysqld进程内存消耗变化 GreatSQL 8.0.25测试过程 在MGR测试中,人为制造磁盘问题后...,节点被oom killed 问题描述 在对MySQL 8.0.26 vs GreatSQL 8.0.25的对比测试过程中,有一个环节是人为制造磁盘的场景,看看MGR是否还能正常响应请求。...在实测过程中,最后发现磁盘的那个节点,持续时间足够久后,会因为内存消耗过大而最终被OS给OOM Kill。 这个问题我已报告BUG(#104979),下面是该过程的详细记录。...从日志详情中可以看到,当磁盘空间满了之后,GreatSQL会将那个节点主动退出集群,对整个集群的影响非常小。...P.S,本文即将推送前,收到MySQL官方bug团队的回复,认为这不是一个bug,而应该优先解决磁盘的问题。我补充回复说加个事务缓存上限阈值或许更合理,人继续傲娇的表示我应该先关注磁盘问题。。。

87220

Linux 环境写文件如何稳定跑磁盘 IO 带宽?

在 限制内存 的情况下,假定我们每次写入 4k 的数据,如何保证 kill -9 不丢数据的情况下,仍然稳定的跑磁盘的 IO?...又因为限制内存,所以直观的想法是直接 Direct IO, 但 Direct IO 能否跑磁盘 IO 呢?...1 120 > buffer_io 经过最后的测试数据整理,我们发现 Buffer IO 的性能基本能稳定跑带宽, 其中只有一次 I/O 抖动: ?...通过数据我们发现,单次 4k 的 Direct IO 写入无法跑磁盘I/O 带宽,仅仅只有 800MB/S 实验三: mmap 写入 通过前面这两个实验我们发现,Buffer IO 是可以跑磁盘...4096; } UnMapRegion(base); close(data_fd); } 我们通过 vmstat 来获取写入带宽数据,我们发现 mmap 的 16K 写入可以跑磁盘带宽

6.8K11

Linux索引节点(inode)用导致的一次故障

一、发现问题:   在一台配置较低的Linux服务器(内存、硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66%,还有...二、分析问题:   后来用df -i查看了一下/data分区的索引节点(inode),发现已经用(IUsed=100%),导致系统无法创建新目录和文件。 ?   ...inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。...而这台服务器的Block虽然还有剩余,但inode已经用,因此在创建新目录或文件时,系统提示磁盘空间不足。

2.6K20

Linux磁盘空间管理:释放空间、避免硬盘、提高性能

Linux下常用的文件系统有Ext2、Ext3、Ext4、Btrfs等,其中Btrfs相对比较新,支持快照、检查和修复能力。...在Linux系统下,可以使用logrotate工具定期轮换和清理日志文件。...五、使用du和df命令查看磁盘使用情况 在Linux系统下,可以使用du和df命令查看磁盘使用情况。其中,du命令用于计算文件和目录的磁盘空间使用情况,df命令用于报告文件系统的磁盘空间使用情况。...六、设置Quota配额 使用Quota配额可以限制磁盘空间的使用,避免硬盘的情况发生。在Linux系统下,需要安装quota工具并配置文件系统才能启用配额功能。...七、定期进行磁盘碎片整理 在磁盘使用过程中,文件会被删除或修改,导致磁盘出现碎片。碎片会降低文件读写的效率,影响系统性能。在Linux系统下,可以使用e4defrag工具定期进行磁盘碎片整理。

65770

数据库PostrageSQL-磁盘失败

磁盘失败 一个数据库管理员最重要的磁盘监控任务就是确保磁盘不会写。一个写满了的数据磁盘可能不会导致数据的崩溃,但它肯定会让系统变得不可用。...如果保存 WAL 文件的磁盘,会发生数据库服务器致命错误并且可能发生关闭。 如果你不能通过删除一些其他的东西来释放一些磁盘空间,那么你可以通过使用表空间把一些数据库文件移动到其他文件系统上去。...有些文件系统在快的时候性能会急剧恶化,因此不要等到磁盘完全的时候才采取行动。 如果你的系统支持每用户的磁盘份额,那么数据库将自然地受制于用户所处的服务器给他的份额限制。...超过份额的负面影响和完全用光磁盘是完全一样的。

73730

记一次 mysql 磁盘解决过程

来源:https://testerhome.com/topics/23049 问题: 使用命令发现磁盘使用率为100%了,还剩几十兆。...一系列神操作 备份数据库,删除实例、删除数据库表、重启mysql服务.结果磁盘空间均为释放 怎么办 网上查了很多资源,说要进行磁盘碎片化整理。原因是datafree占据的空间太多啦。...正在这时,有个不好的消息发生了,那张表格给删掉了,但是磁盘空间还是没有释放啊。所以对表进行碎片化整理的路也走不通了,因为表没了。。。.../abc 5、重新启动mysql 发现磁盘空间释放了 service mysql start 磁盘空间终于释放了 下一步数据库还原 1、采用navicate备份工具,进行数据库备份 ?...就形成了碎片; (3)当MySQL对数据进行扫描时,它扫描的对象实际是列表的容量需求上限,也就是数据被写入的区域中处于峰值位置的部分; 清除碎片的优点: 降低访问表时的IO,提高mysql性能,释放表空间降低磁盘空间使用率

2K10

Kubernetes之容器数据写磁盘解决方法

磁盘引发的后果 容器数据磁盘造成的后果: Pod 不能删除 (一直 Terminating) Pod 不能被创建 (一直 ContainerCreating) 磁盘写满分两种情况: 磁盘空间全部使用完...0 100% / 判断磁盘方法 下面命令能快速的排查磁盘占满原因: docker info | grep 'Docker Root Dir' # 检查 Docker 存储目录 docker...system df # 查看容器磁盘使用情况 df -hT # 检查宿主机 磁盘空间 使用情况 df -i # 检查宿主机 Inode 使用情况 解决方法 PS:保证业务能正常使用为第一原则解决问题...# 取消不可调度的标记 $ kubectl uncordon ${node-name} 定位问题根本原因及解决思路 日志输出量大,导致磁盘 减少日志输出,调整应用日志输出级别 增大磁盘空间 日志输出到统一日志收集中心...容器镜像占满磁盘 配置k8s垃圾回收策略 节点运行 images 定时清理脚本 可写层量大导致磁盘: 优化程序逻辑,不写文件到容器内或控制写入文件的大小与数量 具体优化方法 配置 Docker日志轮转

2.6K10

Kubernetes 最佳实践:处理容器数据磁盘被写

容器数据磁盘被写造成的危害: 不能创建 Pod (一直 ContainerCreating) 不能删除 Pod (一直 Terminating) 无法 exec 到容器 判断是否被写: 容器数据目录大多会单独挂数据盘...将该 node 标记不可调度,并将其已有的 pod 驱逐到其它节点,这样重启dockerd就会让该节点的pod对应的容器删掉,容器相关的日志(标准输出)与容器内产生的数据文件(可写层)也会被清理: kubectl...restart dockerd 取消不可调度的标记: kubectl uncordon 10.179.80.31 定位根因,彻底解决 问题定位方法见附录,这里列举根因对应的解决方法: 日志输出量大导致磁盘...: 减少日志输出 增大磁盘空间 减小单机可调度的pod数量 可写层量大导致磁盘: 优化程序逻辑,不写文件到容器内或控制写入文件的大小与数量 镜像占用空间大导致磁盘: 增大磁盘空间 删除不需要的镜像...附录 查看docker的磁盘空间占用情况 $ docker system df -v [docker-system-df.png] 定位容器写磁盘的原因 进入容器数据目录(假设是 /var/lib/

3.8K32

Kubernetes 最佳实践:处理容器数据磁盘被写

容器数据磁盘被写造成的危害: 不能创建 Pod (一直 ContainerCreating) 不能删除 Pod (一直 Terminating) 无法 exec 到容器 判断是否被写: 容器数据目录大多会单独挂数据盘...将该 node 标记不可调度,并将其已有的 pod 驱逐到其它节点,这样重启dockerd就会让该节点的pod对应的容器删掉,容器相关的日志(标准输出)与容器内产生的数据文件(可写层)也会被清理: kubectl...restart dockerd 取消不可调度的标记: kubectl uncordon 10.179.80.31 定位根因,彻底解决 问题定位方法见附录,这里列举根因对应的解决方法: 日志输出量大导致磁盘...: 减少日志输出 增大磁盘空间 减小单机可调度的pod数量 可写层量大导致磁盘: 优化程序逻辑,不写文件到容器内或控制写入文件的大小与数量 镜像占用空间大导致磁盘: 增大磁盘空间 删除不需要的镜像...附录 查看docker的磁盘空间占用情况 $ docker system df -v [docker-system-df.png] 定位容器写磁盘的原因 进入容器数据目录(假设是 /var/lib/

97111

Linux磁盘配额

概念——磁盘配额是啥???...由于我们使用的Linux系统是多用户任务的操作系统(也就是说我们同一个系统下的多个用户共同使用着相同的硬盘空间),这就难免出现了多个用户共享磁盘的情况,这种情况会导致什么问题呢?...比如用户A在磁盘内存放了大型文件,导致用户B在需要存储文件时发现磁盘已经被写无法进行保存…。那么如何使多个用户公平地分配磁盘空间呢?这就是磁盘配额要解决的问题。...实现磁盘配额需要什么前提条件呢? 1.需要Linux内核的支持。 2.安装quota软件包 在RHEL6系统中,磁盘配额的内核支持和quota软件包已经默认配置好了,所以我们不用另行设置。...磁盘配额有什么特点呢?

6.2K20

linux磁盘简介

本文主要从以下几个方面介绍Linux磁盘磁盘的接口 硬盘的设备名称 文件系统 RAID独立冗余磁盘阵列 磁盘的接口 现在磁盘最常用的可简单分为普通的机械盘和SSD(Solid-state drive...更多磁盘知识可参考Wiki百科。 硬盘设备名称 在linux中世界中,一切皆文件,设备也是文件。...格式化磁盘可以用mkfs命令-->make filesystem的缩写;用来在特定的分区格式化并建立Linux文件系统。...RAID0 将所在磁盘条带化后组成大容量的存储空间(如图 2 所示),将数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并读访问。由于可以并发执行 I/O 操作,总线带宽得到充分利用。...就该这么学》 书籍《鸟哥的Linux私房菜》

7.7K30
领券