加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 站长资讯 > 评论 > 正文

这些安全技巧你了解吗?

发布时间:2021-02-06 14:37:42 所属栏目:评论 来源:互联网
导读:这样的配置有以下特点: 当脏数据达到可用内存的60%时唤醒回刷进程 当脏数据达到可用内存的80%时,应用每一笔数据都必须同步等待 每隔60s唤醒一次回刷进程 内存中脏数据存在时间超过120s则在下一次唤醒时回刷 当然,为了避免重启后丢失优化结果,我们在/etc/

这样的配置有以下特点:

  • 当脏数据达到可用内存的60%时唤醒回刷进程
  • 当脏数据达到可用内存的80%时,应用每一笔数据都必须同步等待
  • 每隔60s唤醒一次回刷进程
  • 内存中脏数据存在时间超过120s则在下一次唤醒时回刷

当然,为了避免重启后丢失优化结果,我们在/etc/sysctl.conf中写入:
 

页缓存

页缓存在FS与通用块层之间,其实也可以归到通用块层中。为了提高IO性能,减少真实的从磁盘读写的次数,Linux内核设计了一层内存缓存,把磁盘数据缓存到内存中。由于内存以4K大小的 页 为单位管理,磁盘数据也以页为单位缓存,因此也称为页缓存。在每个缓存页中,都包含了部分磁盘信息的副本。

如果因为之前读写过或者被预读加载进来,要读取数据刚好在缓存中命中,就可以直接从缓存中读取,不需要深入到磁盘。不管是同步写还是异步写,都会把数据copy到缓存,差别在于异步写只是copy且把页标识脏后直接返回,而同步写还会调用类似fsync()的操作等待回写,详细可以看内核函数generic_file_write_iter()。异步写产生的脏数据会在“合适”的时候被内核工作队列writeback进程回刷。

那么,什么时候是合适的时候呢?最多能缓存多少数据呢?对此次优化的服务器而言,毫无疑问延迟回刷可以在频繁的删改文件中减少写磁盘次数,缓存更多的数据可以更容易合并随机IO请求,有助于提升性能。

在/proc/sys/vm中有以下文件与回刷脏数据密切相关:

配置文件功能默认值dirty_background_ratio触发回刷的脏数据占可用内存的百分比0dirty_background_bytes触发回刷的脏数据量10dirty_bytes触发同步写的脏数据量0dirty_ratio触发同步写的脏数据占可用内存的百分比20dirty_expire_centisecs脏数据超时回刷时间(单位:1/100s)3000dirty_writeback_centisecs回刷进程定时唤醒时间(单位:1/100s)500

对上述的配置文件,有几点要补充的:

  1. XXX_ratio 和 XXX_bytes 是同一个配置属性的不同计算方法,优先级 XXX_bytes > XXX_ratio
  2. 可用内存并不是系统所有内存,而是free pages + reclaimable pages
  3. 脏数据超时表示内存中数据标识脏一定时间后,下次回刷进程工作时就必须回刷
  4. 回刷进程既会定时唤醒,也会在脏数据过多时被动唤醒。

dirty_background_XXX与dirty_XXX的差别在于前者只是唤醒回刷进程,此时应用依然可以异步写数据到Cache,当脏数据比例继续增加,触发dirty_XXX的条件,不再支持应用异步写。

更完整的功能介绍,可以看内核文档Documentation/sysctl/vm.txt,也可看我写的一篇总结博客《Linux 脏数据回刷参数与调优》

对当前的案例而言,我的配置如下:
 

ext4挂载参数:inode_readahead_blks

ext4从inode表中预读的indoe block最大数量。访问文件必须经过inode获取文件信息、数据块地址。如果需要访问的inode都在内存中命中,就不需要从磁盘中读取,毫无疑问能提高读性能。其默认值是32,表示最大预读 32 × block_size 即 64K 的inode数据,在内存充足的情况下,我们毫无疑问可以进一步扩大,让其预读更多。
 

ext4挂载参数:delalloc

delalloc是 delayed allocation 的缩写,如果使能,则ext4会延缓申请数据块直至超时。为什么要延缓申请呢?在inode中采用多级索引的方式记录了文件数据所在的数据块编号,如果出现大文件,则会采用 extent 区段的形式,分配一片连续的块,inode中只需要记录开始块号与长度即可,不需要索引记录所有的块。这除了减轻inode的压力之外,连续的块可以把随机写改为顺序写,加快写性能。连续的块也符合 局部性原理,在预读时可以加大命中概率,进而加快读性能。

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读