当前位置:网站首页>openEuler 资源利用率提升之道02:典型应用下的效果
openEuler 资源利用率提升之道02:典型应用下的效果
2022-08-08 19:06:00 【InfoQ】
案例 1:CPU 调度敏感型应用
- 在线业务选用 「Web Serving」
- 测试套[3]:模拟用户向社交网络服务器发送不同请求的场景,服务端基于社交网络引擎(Elgg)实现,客户端根据 Faban工作负载生成器实现。业务性能度量指标为平均每秒操作数、响应时延等。
- 离线业务选用 「In-Memory Analytics」
- 测试套[4]:通过 Apache Spark在内存中运行协作过滤算法训练用户电影评级模型,生成测试用户推荐电影列表。业务性能度量指标为计算电影推荐的时间(以秒为单位)。
- 在线业务单独运行时,在线业务 Web Serving 的性能数据
- 在离线业务混部、无混部 QoS 特性干预下,在线业务 Web Serving 的性能数据
- 在离线业务混部、有混部 QoS 特性干预下,在线业务 Web Serving 的性能数据

案例 2:CPU 限流敏感型应用
- 单个应用实例 CPU 规格较小 ,使用率较低,有规律突发增长
- 应用长期平稳运行,运行过程中突发 CPU 使用飙升
- 应用总体使用率较低,但启动时使用率较高
- 通过 Stress 工具来担任在线业务,模拟业务流量短时冲高的场景。在平稳运行时仅占用 1 个 CPU ,每 30 秒规律突发时长为 1ms 的高峰流量,在高峰时期会占用 3 个 CPU
- 将该在线业务部署于 Kubernetes 集群,并限制该业务最大可用 CPU 数为 2 个 CPU

案例 3:内存敏感型应用

- 在线业务(nginx):因其对时延敏感,担任在线业务。测试时下载用户指定的文件并连续进行传输
- 离线业务(stress):对时延不敏感,但会大量使用内存,担任离线业务。测试时让其同时进行内存和磁盘写、占用一定数量的匿名内存和
- 客户端(siege):由其模拟用户行为,对在线业务 nginx 发送 HTTP 请求 在测试时,重点观测点是在线业务的
- 在离线业务混部,不开启混部 QoS 的 FSSR 特性
- 在离线业务混部,开启混部 QoS 的 FSSR 特性
- 仅运行在线业务

- 如左半图所示,随着测试时连续下载次数的增加,在线业务的 QoS(下载耗时)开始下降。相比于没有开启 FSSR 策略的测试1,在开启了 FSSR 策略的测试 2 里,在线业务的 QoS 得到了显著的提升。这意味着,当请求下载次数增加,开启 FSSR策略时,在线业务的内存上限会随着使用量增大而增大,page cache中会缓存大量已经读取的文件,从而减少了磁盘读写的次数,保障了在线业务的 QoS
- 如右半图所示,当开启 FSSR 策略时(测试 2 ),在线业务的 QoS 能够与仅运行在线业务(测试3)的内存使用量相近。这意味着在线应用会尽可能的利用内存的资源,从而在和离线应用竞争时能够处于竞争优势地位
案例 4:网络 IO 敏感型应用

- 通过 rubik 开启 Pod 带宽管理特性,设置 node 上的离线业务的总体带宽和在线业务的限流水位
- 给在离线业务容器所在的 cgroup 设置不同的 qos_level,进行在离线业务的标识
- 在测试刚开始时,在线业务尽可能的占据网络带宽,而离线业务未启动
- 时刻 1 ,在第 5 秒时,离线业务上线。此时在离线业务开始竞争网络资源
- 时刻 2 ,在第 10 秒时,在线业务下线。此时仅留离线业务继续运行 时刻 3 ,在第 15秒时,在线业务上线。此时在离线业务再次竞争网络资源
- 时刻 4 ,在第 20 秒时,离线业务下线。此时仅留在线业务继续运行
- 时刻 1 时,离线业务开始竞争网络资源。在测试 1 ,在线业务的带宽受到了影响;而测试 2 ,在线业务的带宽几乎不受影响;
- 时刻2 时,在线业务停止处理请求。在测试 2 里,之前一直被压制的离线业务,终于获得更多的网络带宽;
- 时刻 3时,在线业务恢复处理请求。测试 2 的在线业务马上获得了尽可能多的网络带宽,同时离线业务的带宽受到了压制。相比之下,测试 1 的在线业务始终没法获得充足的网络带宽;
- 时刻 4 时,离线业务停止竞争网络资源。此时测试 1 的在线业务才可以获得足够的网络带宽

总结
- openEuler 资源利用率提升之道 01:概论:https://mp.weixin.qq.com/s/x9sdogEslRJJ5mDbs5bxgQ
- CloudSuite | A Benchmark Suite for Cloud Services:https://www.cloudsuite.ch/
- Web Serving:https://github.com/parsa-epfl/cloudsuite/blob/main/docs/benchmarks/web-serving.md
- In-Memory Analytics:https://github.com/parsa-epfl/cloudsuite/blob/main/docs/benchmarks/in-memory-analytics.md
- iPerf - The TCP, UDP and SCTP network bandwidth measuremen t tool:https://iperf.fr/
系列文章回顾
加入我们
边栏推荐
- USB CY68013设备描述符识别失败
- Dry goods: design high concurrency architecture from scratch
- [MRCTF2020]你传你码呢
- 黑猫带你学Makefile第10篇:如何将未被编译的代码/自己写的驱动编译进uboot
- Lecture 4: Database Definition Language of DDL Type of SQL Statements
- Qt界面优化:Qt窗体控件设置
- 工程 (六) ——PointNet点云分类
- 如何在Firewalld中为特定IP地址开放端口
- 能力一般,却可以大厂随便横跳?强在哪里?
- Learn about layered architecture & SOA architecture together
猜你喜欢
数据库学习之表的操作
C language elementary - structure
重读GPDB 和 TiDB 论文引发的 HTAP 数据库再思考
[BJDCTF2020]Easy MD5
Dry goods: design high concurrency architecture from scratch
The history of cartoon rendering
shell九九乘法口诀表
Goose Factory Robot Dog Fancy Crossing 10m Plum Blossom Pile: Front Flip, Single Pile Jump, Get Up and Bow... No stumble in the whole process
Implementing Forward+ in Unity URP
Build DG will increase the amount of lead to archive log problem
随机推荐
BP neural network
制造企业为什么要部署数字化工厂系统
使用 lua 运行 fscript
nyoj 712 Exploring treasure
[BJDCTF2020]Easy MD5
Redis之SDS数据结构
Redhat 7 Maria DB installation and configuration
El - tree set radio, click finish after assemble
软考中级网络工程师全面学习笔记第2版(5万字)+配套视频及课件
BP神经网络
Lecture 4: Database Definition Language of DDL Type of SQL Statements
uniapp parent component uses prop to pass asynchronous data to child components
软件测试基础笔记
C语言初阶-结构体
What are the benefits of knowledge sharing for businesses?
Excuse me, during the mongoshake synchronization process in the shake database, src_mongo hangs up, will the synchronization service not exit?
大学生图书馆网页设计模板代码 DIV布局书店网页作业成品 学校书籍网页制作模板 学生简单书籍阅读网站设计成品
计算机网络面试常问知识
laravel run scheduler command on weekdays (except holidays)
ptorch