2016-04-20 Wenjie Yao
本文翻译自文章Service Discovery via Consul with Amazon ECS   现如今随着微服务架构的出现,很多应用都是以一套分布式组件的形式来部署。在这样的架构中,你需要在多个EC2实例上的多个Docker容器中,配置和协调各种各样的应用程序。   亚马逊EC2容器服务(ECS)提供了一个用于管理资源、任务以及容器调度的集群管理框架。但是,很多应用仍然需要额外的组件来管理分布式组件之间的联系。服务发现的概念就是用来定义这种帮助管理这些联系的组件。 继续阅读 »
2014-07-30 Lingxian Kong
eventlet中的backdoor OpenStack中编程模型中大量使用了GreenThread,使用eventlet库实现,关于eventlet可以参考官方文档。这里单独说一说backdoor的使用。 OpenStack每一个服务在创建时,都会根据backdoor_port配置项决定是否创建backdoor server,允许telnet到服务所在的节点进行调试,主要用于获取某个长时间运行的进程的状态。其原理是这样的:在程序的代码中,专门运行一个协程,这个协程一般不会被调度到,所以不会影响程序的正常运行。这个协程中跑了一个backdoor_server,比如下面的这行代码: eventlet.spawn(backdoor 继续阅读 »
2018-09-04 Vaniot
算法:由输入经过一系列的计算步骤得到输出 排序问题:将无序的输入经过处理按照一定的孙徐输出 优秀的算法: - 正确性(思路清晰) - 高效(算法分析) - 易于实现(现成的算法) 算法的用处: - 生物信息学 - 网络(图论,字符串查找) - 信息安全(RSA..) - 优化(调度) 算法问题: - 图论(最短路径...) - LCS(动态规划...) - 拓扑排序 - 凸包 数据结构: C++ STL 优缺点 效率 难解问题: 并行算法 CPU效率 算法技术 算法的效率 渐近记号 问题规模量 时间T(n) 数组去重 继续阅读 »
2015-03-24 Lingxian Kong
总结: 各个厂商对Nova社区的参与依然如火如荼,积极将自身虚拟化产品作为driver与Nova对接。其中VMware、Hypver-V两家的积极性最高,不断弥补自身产品与社区KVM特性的差距,向A类driver看齐; Nova社区开始关注NFV特性,引领开源云计算向电信领域拓展; 随着OpenStack大规模部署,调度瓶颈开始凸显,社区已经启动新的项目Gantt,逐步将nova-scheduler剥离; 社区已经找到版本间兼容的新的方式:microversion,特性扩展更加严格; 随着Nova代码规模的上涨,社区开始有意识的进行内部重构,优化代码逻辑 详细分析: 继续阅读 »
2016-09-04 craneyuan
在了解堆排序之前,我们有必要清楚“什么是堆呢?”。 堆(英语:Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问题设计的一种数据结构。 堆的逻辑定义: 堆的实现通过构造二叉堆(英语:binary heap),实为二叉树的一种;由于其应用的普遍性,当不加限定时,均指该数据结构的这种实现。这种数据结构具有以下性质。 任意节点小于(或大于)它的所有后裔,最小元(或最大元)在堆的根上(堆序性)。 堆总是一棵完全树。即 继续阅读 »
2016-09-30 ruki
原子操作,线程间交互数据最细粒度的同步操作,它可以保证线程间读写某个数值的原子性。 由于不需要加重量级的互斥锁进行同步,因此非常轻量,而且也不需要在内核间来回切换调度,效率是非常高的。。 那如何使用原子操作了,各个平台下都有相关api提供了支持,并且向gcc、clang这些编译器,也提供了编译器级的__builtin接口进行支持 windows的Interlockedxxx和Interlockedxxx64系列api macosx的OSAtomicXXX系列api gcc的__sync_val_compare_and_swap和__sync_val_compare_and_swap_8等__builtin接口 x86和x86_ 继续阅读 »
2019-05-11 geekspeng
隔离CPU核心 从一般内核 SMP 平衡和调度算法中删除指定的 cpu (由cpu_number定义)。 将进程移动到或移出“独立” CPU 的唯一方法是通过 CPU 亲和系统调用。 cpu 数量从0开始,因此最大值比系统上的 cpu 数量少1 此选项是隔离 cpu 的首选方法。 另一种方法是手动设置系统中所有任务的 CPU 掩码,这可能会导致问题和次优的负载均衡器性能 继续阅读 »