决定每个应用启动多少实例和放在那台机器上
The placement problem is NP hard.
- approximation algorithms 近似算法 [6] A. Karve, T. Kimbrel, G. Pacifici, M. Spreitzer, M. Steinder, M. Sviridenko, and A. Tantawi. Dynamic Application Placement for Clustered Web Applications. In the International World Wide Web Conference (WWW), May 2006. [8] T. Kimbrel, M. Steinder, M. Sviridenko, and A. N. Tantawi. Dynamic Application Placement Under Service and Memory Constraints. In International Workshop on Efficient and Experimental Algorithms, 2005.
[2] background
multi-objective optimization and fuzzy logic
[4]
降低成本,更少的机器、更少的电力消耗,更少的冷却系统,物理空间等
### 启发法(Heuristic techniques)
很多组合问题(combinatorial problems)被分类为NP-hard
- 调度(scheduling)
- 装箱(bin packing)
- 放置(placement) 遗传算法(genetic algorithms)常被用来解决组合问题
###
《A Multi-objective Approach to Virtual Machine Management in Datacenters》
《Dynamic Placement for Clustered Web Applications》
use clustering technology to provide scalability, high availability and load balancing.
《A scalable application placement controller for enterprise data centers》
动态的启动、停止应用
multiple knapsack 多重选择背包问题
increase the total satisfied application demand
《Large-scale cluster management at Google with Borg》
for internal infrastructure services (e.g., BigTable)
限制/约束 分强、弱(hard/soft)
《Borg, Omega, and Kubernetes》
Borg 和 Kubernetes 介绍比较多。 Omega相对比较少
- container 管理系统
《An Overview of Openstack Architecture》
modular & highly configurable architecture
《Dynamic Resource Allocation with Management Objectives— Implementation for an OpenStack Cloud》
descheduling & coscheduling
Microsoft Sys- tems Center (MSC)
Cinder Scheduler
无状态(stateless) & 扩展(scaling) Nova
read nova source code https://www.programmersought.com/article/57984562657/
可观测性
Partition Tolerance
NoSQL databases: AP(abailability * Partition Tolerance)
Monitoring in Azure Kubernetes Services(Prometheus)
- tracks resource usage
- node liveness
- enforces allocation invariant
- arbitrate contention
AM(Application Manager)
YARN framework/application writers
MapReduce
optimistic concurrency
It supports very large deployments.
将集群中的机器分组,分组就是cell,
Heuristic techniques 启发式常用于一种近似方式解决优化问题。
- is not guaranteed to be optimal、perfect、rational
- immediate、short-term goal、approximation
- derived from previous experiences with similar problems
- readily accessible 易接近的
- though loosely applicable 尽管松散的适用
Multi level Feedback Queue Scheduling
Add legends next to architectural diagrams/在建筑图旁添加图例
a picture is worth a thousand words
Azure Function
- receive, filter, transform, route, and deliver events
- 接受,过滤,转换,路由,投递
- http
- MQ
ci/cd
dns
包粒度重传 3/4/7 gateway api gateway lvs
prototype
循环引用的,孤岛问题
分为2个阶段
- 标记
清除 不足
- 标记、清除的效率问题
- 空间碎片
需要双份大小的内存大小
- 高效
- 内存空间大
- 新生代常用
分2个阶段,标记和整理
- 整理直接将对象移动到一起
单线程
新生代(young generation),多线程(parallel threads)
新生代,多线程,主要考虑吞吐量(throughput collector)。用户线程时间/总时间
- 多数jdk8的默认GC,也有将默认设置为CMS的,所以最好明确设置
- the parallel garbage collector for full GCs
-XX:+UseParallelGC
当使用ParallelGC时,可以使用-XX:+UseNUMA
-XX:MaxGCPauseMillis=time Sets a target for the maximum GC pause time (in milliseconds).JVM会努力
达到,但是不一定能达到
CMS(老年代)+ParNew(新生代),java9不建议使用
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC
建议堆大小>6GB时使用
随着服务架构的演进,现在一项服务基本都是分布式的架构,多个微服务可能彼此调用。 限流、服务降级、服务熔断主要使用词场景和目的是什么?
<pre>
+----------------+
| |
| Service A | -----+
| | |
+----------------+ | +----------------+
|---->| |
+----------------+ | Service D |
| | |---->| |
| Service B | -----+ +----------------+
| |
+----------------+
</pre>
- latency tolerance
- fault tolerance
AI > 机器学习 > 深度学习
深度学习 - Deep learning | DL |
长短期记忆网络 - Long short-term memory | LSTM |
生成对抗网络 - Generative Adversarial Networks | GAN |
循环神经网络 - Recurrent Neural Network | RNN |
强化学习-Reinforcement learning | RL |
Transformer BERT | Bidirectional Encoder Representation from Transformers |
朴素贝叶斯 - Naive Bayes classifier | NBC |
支持向量机 - Support Vector Machine | SVM |
传统机器学习: 数据预处理 --> 特征提取 --> 选择分类器
深度学习 : 数据预处理 --> 设计模型 --> 训练
标量只有大小概念,没有方向的概念。
点——标量(scalar) 线——向量(vector) 大小(箭头的长度)和方向(箭头的方向) 面——矩阵(matrix) 体——张量(tensor)
- T=机器判断对不对 T=对,F=不对
- P=机器判断是不是 P=是,N=不是
- TP=对/是 判断是对的,是=1
- FP=不对/是 判断是不对的,所以本身应该是0
- FN=不对/不是 判断是不对的,所以本身应该是1
- TN=对/不是 判断是对的,本身应该是0
无监督学习
| ---> 回归 ---> 线性回归
机器学习--> 监督学习
| ---> 分类 ---> 逻辑回归(二分类)
强化学习
回归的目的是:预测
分类。 根节点、内部节点、叶节点
决策树剪枝,主要目的是对抗「过拟合」
强化学习是机器学习的一种学习方式,它跟监督学习、无监督学习是对应的. 强化学习并不是某一种特定的算法,而是一类算法的统称。
强化学习的主流算法
命名实体识别 - Named-entity recognition | NER |
自然语言理解 - NLU | NLI |
WDWQWT
核心思想:希望用概率模型(Probabilistic Model)来描述查询关键字和目标文档之间的关系。 最简单的类型:
- 查询关键字似然检索模型(Query Likelihood Retrieval Model)。简单来说,一个语言模型就是一个针对词汇表的概率分布。