• coyang
    2019-01-15
    1.用iostat看磁盘的await,utils,iops,bandwidth
    2.用smartctl看磁盘的health status
    3.用iotop/pidstat找出持续读写的进程做优化
    
     10
  • DJH
    2019-01-14
    有一个纠正一下:ISCSI访问的是块设备,不是NAS。

    作者回复: 是的,这里有些不准确,原来的意思是想表达网络存储,用 NAS 这样的专业术语就不准确了。谢谢指出。

    
     7
  • JohnT3e
    2019-01-14
    工作中经常看到使用多线程读写单个磁盘中不同文件的实现,个人认为这种方法并不能有效地提高性能,因为每个线程读写磁盘的位置可能差异很大,且每个线程的数据的空间局部性和时间局部性存在差异,导致磁盘调度优化不足。不知道对不对

    作者回复: 实际上这是可以提高性能的,一方面,文件的读写是有操作系统缓存的,每次文件读写调用并不是立刻对应一个磁盘IO操作,在文件系统和块设备层依然可以作很多优化(比如最基本的排序、合并)。另一方面,如果是逐个来写的话,多个线程的工作就有可能被这一系列的文件读写阻塞,而分开来每个线程就只需要阻塞自己所读写的文件(假设采用阻塞I/O)

    
     7
  • 萨拉热窝的棒小伙儿
    2019-01-14
    老师,想问一下,如果申请的测试环境资源与生产环境资源是有差异的,那么在测试环境上做性能测试的话,是否可以按照资源差异同比例缩小,这个通过准则?
    例如,生产环境10个cpu,5G 内存,期望能并发100用户,满足1秒响应。。。测试环境5个cpu,2.5G,,那么并发50用户,满足1秒响应就行了,,有这个说法嘛?

    作者回复: 没有,性能跟资源之间的关系不是线性的

    
     4
  • Utopia
    2019-10-27
    作为一个非科班出身,学习一年的程序员来说,看到这里,犹如打穿了任督二脉,叹为观止,太过瘾了。
    
     2
  • 我来也
    2019-01-14
    [D24打卡]
    以前其实并没太注意到磁盘I/O的性能.
    平常就正常存储下程序的日志,程序的日志量也不大.
    但是有一次在某云上,生产环境中的程序卡了持续3分多钟.
    后来才发现是程序中有人打了一个超级大(其实也就2-3M)的日志,😁.
    然后程序就在这里阻塞了几分钟.
    展开
     2
     2
  • 划时代
    2019-01-14
    打卡总结
    
     2
  • Cranliu
    2019-01-14
    最最常用的是iostat了吧?还有pidstat,sar等

    作者回复: 是的 这三个都是最常用的

    
     2
  • 腾达
    2019-01-16
    系统从上到下一级级都有缓存,如果另外一个进程更新了数据,如何做到缓存失效的?

    作者回复: 这就是内存回收的逻辑了,比如 LRU 算法

    
     1
  • 小老鼠
    2019-01-14
    固态硬盘有扇区和磁道吗?

    作者回复: 没有,SSD读写的基本单位是页

    
     1
  • 金波
    2019-01-14
    有个问题一直没弄明白,想借此机会请老师解答下,
    大家经常用select来多路复用读写管道,socket等类型的文件,
    请问select可否用于普通磁盘文件的读写? 不行的话为什么?
    多谢

    作者回复: 碰到这种问题最好的方法是查手册,比如在 select 的文档(https://linux.die.net/man/3/select)中你可以看到:

    File descriptors associated with regular files shall always select true for ready to read, ready to write, and error conditions.

    也就是普通文件读、写总是 Ready 的,所以用 select 也就没有意义。当然,在编程接口上,你可以还是调用它的。

    
     1
  • Richard
    2020-01-17
    IO 栈中的通用块层是否对应着前面讲的 buffer 呢?应用程序通过 cache 和文件系统交互,那么从图中看文件系统是否也通过 buffer 与设备层交互呢?我这样理解是否正确?
    
    
  • lanco
    2019-12-05
    请问老师关于有没有课外的扩展读物,I/O篇不是那么熟悉,看起来还是似懂非懂样子
    
    
  • Boy-struggle
    2019-04-02
    通用块层是属于内核调度吗?raid 应该属于哪一层?

    作者回复: 嗯,是的。RAID分软件RAID和硬件RAID,其中软件RAID属于bio层

    
    
  • lidashuang
    2019-03-20
    👏
    
    
  • 如果
    2019-03-08
    DAY24,打卡
    
    
  • Lance_zhong
    2019-03-04
    老师,您好。请教一下,什么是随机IO和连续IO。谢谢。

    作者回复: 访问地址连续的时候就是连续I/O,否则就是随机I/O

    
    
  • 肘子哥
    2019-02-23
    smartctl工具有缺陷,对于虚拟机和做了raid的机器是失效的

    作者回复: 嗯嗯,谢谢指出

     1
    
  • Something
    2019-01-16
    老师请问,buffer工作在通用块设备层之上还是之下?图上没看出来
    
    
  • 玉剑冰锋
    2019-01-16
    老师您好,文中提到的I/O调度机械盘和SSD都适用吗?另外在实际生产环境中有没有针对不同场景适用哪种调度方法?使用后每种方法如何调优?

    作者回复: 继续看后面的几篇,有讲到的

    
    
我们在线,来聊聊吧