[00:28] albet70: 当然不是有界的 [02:29] 开工了 [03:10] contrun[m]: 早就开工了. [03:15] contrun[m]: 我就想要一个简单快乐的文件系统, 不想调参. 用什么好呢? [03:15] contrun[m]: xfs还是ext4呢? [03:16] imadper 调什么参? [03:16] recordsize... [03:16] prefetch distance [03:16] contrun[m]: https://github.com/zfsonlinux/zfs/issues/8381 [03:17] contrun[m]: 说真的, recordsize和prefetch配置的不好, 读放大非常严重. [03:17] contrun[m]: 我针对iqiyi的程序改了好几次参数才让我司os跑的正常一些. [03:18] contrun[m]: 但是吧, pc上面程序众多. 我不想不同程序给个不同的zfs配上不同的参数啊 [03:18] contrun[m]: bt一个, 日常放源码/编译一个, 貌似也不多倒是 [03:19] imadper 我很怀疑你的使用姿势 [03:19] contrun[m]: 你自己看issue啊 [03:19] imadper 你确定是 文件系统的问题? [03:19] contrun[m]: 是啊. [03:19] contrun[m]: 当然确定了. [03:19] contrun[m]: 这个prefetch又不是适合所有的workload的 [03:20] contrun[m]: 默认128K recordsize的时候, 跑一些pCDN程序, 读放大简直爆炸. [03:21] contrun[m]: 关了prefetch, 读放大只有两倍了. 调整了recordsize, 读放大不仅没有了, arc加持下, 已经变成读缩小. [03:21] contrun[m]: 你可以看看你的zfs的prefetch hit%. [03:22] cat /proc/spl/kmem/zfs/prefetchxxxx 里面有统计 [03:31] imadper 不懂你司这么高级的东西啊 [03:32] contrun[m]: 你看看你的zfs prefetch的命中率 [03:32] contrun[m]: 正好我想知道日常使用下, 命中率有多少. [03:32] contrun[m]: 以及你的blocksize是多少? [03:33] contrun[m]: 分出100G弄个zvol, 格式化成xfs, fio测个速度. 再在zfs上直接测速对比一下. [03:33] * contrun[m] uploaded an image: screenshot-2020-02-03-11-32-34.png (19KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/ZPDJnlGSLZmUdbzkrKAZiqzI > [03:33] contrun[m]: zfetchstats [03:33] * contrun[m] uploaded an image: screenshot-2020-02-03-11-33-40.png (24KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/wmYdHrCzsPYQPDziHeRKziqW > [03:34] contrun[m]: 你还是调小prefetch distance吧 [03:34] contrun[m]: 你看看你可怜的命中率 [03:35] 如何? [03:35] contrun[m]: 你是默认blocksize吧? [03:35] contrun[m]: echo "xxx" > /sys/module/zfs/parameters/zfs_prefetch_distance. [03:35] contrun[m]: 差不多这个名字吧, 我把我的zfs给废了, 现在没这个模块了 [03:36] * contrun[m] uploaded an image: screenshot-2020-02-03-11-36-14.png (10KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/WNnCSpLSFVJBMmkMBGpqCcXy > [03:37] blocksize 怎么看 [03:37] contrun[m]: ls | grep distance [03:37] con [03:37] contrun[m]: zfs get recordsize poolname [03:37] contrun[m]: 不用看, 128K [03:37] * contrun[m] uploaded an image: screenshot-2020-02-03-11-37-32.png (8KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/owilxQbbNIBcuNVBaJoWqfpN > [03:39] contrun[m]: 改 [03:39] contrun[m]: 不过我觉得吧, 直接disable就行 [03:39] contrun[m]: 很多业务我都直接disable了. [03:39] contrun[m]: 但是不得不说, arc真是个好东西. [03:40] 怎么查这些参数的意义? [03:40] contrun[m]: 鬼知道. [03:41] contrun[m]: https://www.solaris-cookbook.eu/solaris/solaris-10-zfs-evil-tuning-guide/ 刚搜到的 [03:41] contrun[m]: 我也没试过. [03:42] contrun[m]: 但是有个大佬, dtrace的作者吧, 表示postgresql下要用8k的recordsize [03:42] contrun[m]: bt是16K吧, 我忘了. [03:42] contrun[m]: 所以我就说嘛, 我想要简单快乐. [03:42] contrun[m]: 鬼知道firefox的缓存要用多大合适呢? [03:43] contrun[m]: 我tm买了个读取2800MB/s的nvme, 如果zfs给我弄到只有1400MB/s的速度了, 我心里不舒服啊 [03:44] imadper 换换换 [03:44] contrun[m]: 是啊, 所以要考虑是伟大的xfs, 还是新潮的ext4 [03:45] imadper ntfs 不好用? [03:45] contrun[m]: 不会用 [03:53] imadper 有了 nix 妈妈再也不用担心我不会配开发环境了 我他妈的都不要看 readme 直接起一个 能build zfs的 nix shell 然后 genericBuild; bear make 就能用上 lsp 了 [03:54] 当然有一些地方还是要自己改改 [03:56] contrun 为什么Dependent Type这么重要?做proof assistant需要它? [03:56] 比如证明加法交换律 [03:57] ghc为什么不添加支持DT? [03:58] albet70 这跟要用静态类型没什么差别 用静态类型的好处一是 尽可能地 fail fast 好处二是 https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/ [03:59] dependent type 用来证明 加法交换率? 我不太理解 这完全是两码事 [03:59] contrun[m]: https://www.joyent.com/blog/bruning-questions-zfs-record-size 这个写的好 [04:00] 有人在做 ghc 对 dependent type 的支持 但是改动太大了 [04:00] https://gitlab.haskell.org/ghc/ghc/wikis/dependent-haskell [04:01] imadper 一个上午就这样没有 [04:02] * imadper *nod* [04:02] https://www.codewars.com/kata/59db393bc1596bd2b700007f [04:04] albet70 这是自然数的公理体系里可以得到的结论 使用 dependent types 的时候需要这条性质 [13:19] 这是什么,速度好慢