性能之颠-应用程序性能技术

举报
隔壁老汪 发表于 2022/06/24 00:47:32 2022/06/24
【摘要】 5.2 应用程序性能技术 本节讨论了一些提高应用程序性能的常用技术:选择I/O 大小、缓存、缓冲区、轮询、并发和并行、非阻塞I/O 和处理器绑定。参考应用程序文档看看这些技术哪些在应用,看看有没有应用程序其他的独有特性。 5.2.1 选择I/O 尺寸 执行I/O 的开销包括初始化缓冲区、系统调用、上下文切换、分配内核元数据、检查进...

5.2 应用程序性能技术

本节讨论了一些提高应用程序性能的常用技术:选择I/O 大小、缓存、缓冲区、轮询、并发和并行、非阻塞I/O 和处理器绑定。参考应用程序文档看看这些技术哪些在应用,看看有没有应用程序其他的独有特性。

5.2.1 选择I/O 尺寸

执行I/O 的开销包括初始化缓冲区、系统调用、上下文切换、分配内核元数据、检查进程权限和限制、映射地址到设备、执行内核和驱动代码来执行I/O,以及,在最后释放元数据和缓冲区。“初始化开销”对于小型和大型的I/O 都是差不多的。从效率上来说,每次I/O 传输的数据越多,效率越高。

增加I/O 尺寸是应用程序提高吞吐量的常用策略。考虑到每次I/O 的固定开销,一次I/O 传输128KB 要比128 次传输1KB 高效得多。尤其是磁盘I/O,由于寻道时间,每次I/O 开销都较高。

如果应用程序不需要,更大的I/O 尺寸也会带来负面效应。一个执行8KB 随机读取的数据库按128KB I/O 的尺寸运行会慢得多,因为120KB 的数据传输能力被浪费了。选择小一些的I/O尺寸,更贴近应用程序所需,能降低引起的I/O 延时。不必要的大尺寸I/O 还会浪费缓存的空间。

5.2.2 缓存

操作系统用缓存提高文件系统的读性能和内存的分配性能,应用程序使用缓存也出于类似的原因。将经常执行的操作的结果保存在本地缓存中以备后用,而非总是执行开销较高的操作。数据库缓冲区高速缓存就是一例,该缓存会保存经常执行的数据库查询结果。

部署应用程序时,一个常见的操作就是决定用什么样的缓存,或能启用什么样的缓存,然后配置适合系统的缓存尺寸。

缓存一个重要的方面就是如何保证完整性,确保查询不会返回过期的数据。这称为缓存一致性(cache coherency),而且执行的代价不低——理想

文章来源: blog.csdn.net,作者:隔壁老瓦,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wxb880114/article/details/114356204

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。