对于DB Server 来说,删除大表来说是很棘手的。本文引用地址:http://www.eepw.com.cn/article/201610/305499.htm

删除大表的话,可以对原有表的.ibd文件建立硬链接。当多个文件名指向同一个Node时,删除任何一个文件名都很快,因为直连的物理文件没有删除只是删除了一个指针而已。当Node引用数为1的时候,删除文件需要把文件相关的所有数据块都删除。

具体参考:

今天我们只讨论,如果我们利用了以上方法建立了硬链接文件,那么删除该大文件的时候,如何避免IO hang呢?

答案是 coreutils 工具集中的 truncate 工具

wget

tar -zxvf coreutils-8.9.tar.gz

cd coreutils-8.9

./configure

make

sudo cp src/truncate /usr/bin/

truncate 收缩或扩展文件至指定大小

语法: truncate option ... file ...

如果文件不存在的话会被创建。

如果一个文件的size比指定的size大,则该文件会被截断丢是一部分数据,如果size比指定的小,那么他会0字节填充。

option:

-c

--no-create 如果没有该文件的话也不会创建

-o

--io-blocks 对于文件的size大小以I/O block来对待

-r rfile

--reference=file Base the size of each file on the size of rfile

-s size

--size=size 根据下面的选项,调整文件的大小

‘KB’ => 1000 (KiloBytes)

‘K’ => 1024 (KibiBytes)

‘MB’ => 1000*1000 (MegaBytes)

‘M’ => 1024*1024 (MebiBytes)

‘GB’ => 1000*1000*1000 (GigaBytes)

‘G’ => 1024*1024*1024 (GibiBytes)

或者是 T P E Z这样的单位

根据下面的符号,根据他们本身的size来调整大小

+ 扩展

- 缩小

至多

> 至少

/ 向下舍入的倍数

% 向上的倍数

简单举例:

touch abc

truncate -s +1KB abc

truncate -s +1KB abc

ll abc

-rwxrwxrwx 1 root root

io hang linux 原理,Linux 避免IO hang相关推荐

  1. 操作系统与存储:解析Linux内核全新异步IO引擎io_uring设计与实现

    作者:draculaqian,腾讯后台开发工程师 引言 存储场景中,我们对性能的要求非常高.在存储引擎底层的IO技术选型时,可能会有如下讨论关于IO的讨论. http://davmac.org/dav ...

  2. linux 服务hang住原因,Python主进程hang住的两个原因

    最近使用Python遇到两个非常不好定位的问题,表现都是Python主进程hang住.最终定位出一个是subprocess模块的问题,一个是threading.Timer线程的问题. subproce ...

  3. 如何提高Linux下块设备IO的整体性能?

    编辑手记:本文主要讲解Linux IO调度层的三种模式:cfp.deadline和noop,并给出各自的优化和适用场景建议. 作者简介: 邹立巍 Linux系统技术专家.目前在腾讯SNG社交网络运营部 ...

  4. linux 重定向_Unix/Linux编程实践之IO重定向和管道

    I/O重定向的原理模型 ls > test.file是如何工作的?shell是如何告诉程序把结果输出到文件,而不是屏幕? 在who | sort > user.file中,shell是如何 ...

  5. Linux中的基础IO(二)

    Linux中的基础IO(二) 文章目录 Linux中的基础IO(二) 一.基本接口 二.文件描述符 三.文件描述符的分配规则 四.重定向 五.dup2系统调用 六.minishell 一.基本接口 i ...

  6. Linux中的文件IO

    1.什么是文件IO (1)IO就是input/output,输入/输出.文件IO的意思就是读写文件. 2.linux常用文件IO接口 (1)open.close.write.read.lseek 3. ...

  7. Linux系统进阶-基础IO

    Linux系统进阶-基础IO 文章目录 Linux系统进阶-基础IO C语言中的文件接口 对文件进行写入 对文件进行读取 什么是当前路径 默认打开的三个流 stdout & stderr 系统 ...

  8. Linux 查看CPU 内存 IO使用率,linux 查看CPU内存 网络 流量 磁盘 IO

    使用vmstat命令来察看系统资源情况 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? Q: 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? A: 在命 ...

  9. 【Linux】【基础IO】

    目录 一.什么是文件 如何在系统角度理解文件? 什么是一切皆文件 二.复习一下C的接口 perror fwrite.fprintf.fputs 要不要+1的问题 ①w模式 ②a模式追加 fgets按行 ...

最新文章

  1. iOS HitTest 机制
  2. 第60天:js常用访问CSS属性的方法
  3. jboss7 应用详解_COMSOL Multiphysics多物理场仿真技术与应用光电专题线上培训
  4. Hadoop中-put和-copyFromLocal的区别
  5. BestCoder Round #85
  6. USTC English Club Note20171013(2)
  7. python 扯线木偶_Python计算器求助~求大神指导~QAQ急!
  8. ThinkPHP简单的验证码实现
  9. python如何运用ols_使用OLS回归(Python,StatsModels,Pandas)预测未来值
  10. 回答嵌入式初学者的一些问题
  11. 性能测试小总结(四) 结果分析(未完成)
  12. 子程序调用编程序例子_汇编程序设计:LCD1602静态显示
  13. 学习马士兵Java教程
  14. Python调用WebService接口
  15. Mac 下修改eclipse内存设置
  16. 计算机系统 ahci模式,ahci模式,教您怎样开启ahci模式
  17. 面试:如何用最少的老鼠试出有毒的牛奶?
  18. Microsoft SQL Server 2012(附序列号)
  19. 微信小程序图片无法存入云开发数据库,求解决
  20. 如何成为一位数据科学家

热门文章

  1. Comparable和Comparator接口是干什么的?列出它们的区别。
  2. 使用JDBC处理Oracle大数据
  3. 微信小程序中rpx与rem单位使用
  4. 分层贝叶斯模型——结构
  5. Win8 64位安装Oracle 11g时错
  6. 面向对象的七种设计原则
  7. java+tomcat(apr,native)
  8. 利用navicat for mysql实现mysql数据库表结构复制
  9. [Winodows Phone 7控件详解]Silverlight toolkit for Windows Phone 7.1控件-5
  10. Django-04-路由系统