东丽区装饰网站建设,网站排名5118,镇江网站建设网站,网站制作明细清单1. 相关概念 1.1 内存数据库 关系型数据库处理永久、稳定的数据#xff0c;内存数据库就是将其数据放在内存中#xff0c;活动事务只与内存数据打交道#xff0c;重新设计了体系结构并且在数据缓存、快速算法、并行操作方面也进行了相应的改进#xff0c;所以数据处理速度比… 1. 相关概念 1.1 内存数据库 关系型数据库处理永久、稳定的数据内存数据库就是将其数据放在内存中活动事务只与内存数据打交道重新设计了体系结构并且在数据缓存、快速算法、并行操作方面也进行了相应的改进所以数据处理速度比磁盘数据库要快很多一般都在10倍以上。但它不容易恢复可能暂时不一致或非绝对正确的要求较大的内存量而64位操作系统可以支持更大的地址2T为内存数据库的实现提供了可能。 1.2 计算密集型 计算密集型是指每个请求的命令中大都包含不同的参数值很难重用前一次计算的结果所以要按照约定的业务逻辑重新计算并按照约定的格式返回数据且计算在总耗时中占比较大。 2. 数据存储 2.1 DB 数据存储在DB中直接访问数据库。但数据库压力太大系统瓶颈明显。 2.2 DB All In One Cache 将DB中的数据加载到节点的内存中并定时从数据更新日志库中读取来更新内存的数据极大减轻数据库的压力。 但随着数据的膨胀节点启动加载慢升级时间长宕机恢复难等。 2.3 DB File All In One Cache 每天晚上从DB读取数据生成带有数据同步标识的数据文件分发到各个服务器节点。节点启动时直接从本地数据文件加载大大提高了启动速度。 但随着DB中数据的更新实例间数据不一致性严重。 2.4 DB File All In One Cache AMQ Sync 通过DP服务定时监控数据更新日志库中的记录通过AMQ发布给订阅的每个节点节点根据当前同步的标识决定是否处理消息记录根据消息记录的属性执行具体的增删改操作使得数据的一致性较好。 但单个节点内存过大大数据量时仍会变慢卡顿现象频繁且耗时较长。 2.5 DB File Distributed Cache AMQ Sync 按照业务将数据拆分到不同的节点上通过管理节点分配任务使得内存大小可控卡顿频率和耗时明显减少。 但生产bug、业务逻辑变更或新增需求时只能重启服务不够灵敏可维护性差。 2.6 DB File Distributed Cache AMQ Sync CodeDom 利用CodeDom实现动态编译在运行时增加或修改业务逻辑。 另外可以为每个节点对应一个独立的DataProcess。 3. 数据运算 3.1 存储过程 将业务逻辑写到存储过程中难以维护请求排队现象严重。 3.2 内存运算 通过缓存节点的中间层对外提供服务在缓存数据的基础上提供获取单个运算结果的API对外获取数据集合的Enumerator对内获取数据运算结果集合的Report对外内存读取速度较快。 但很难有效的负载均衡无法高效并行。 3.3 负载均衡并行 通过Master节点将请求分给对应的若干工作节点并行处理再对结果进行合并和归纳返回给客户端实现高效并行处理。 延伸数据运算的耗时大都在查找、比较、排序、序列化、压缩、加密处理等根据性能分析逐个调优。 4. 系统调优 4.1 GC 当内存越大时二代回收耗费几秒甚至十几秒会挂起所有线程而使节点在这段时间内不能正常工作。 1.可设置多核并发的Server GC模式为每个核创建单独的大小堆和GC线程减少回收的粒度和影响。 2.监控将要发生回收的工作节点通知Mater并暂停该工作节点提供服务直至GC完成。 4.2 Cache 1.运行时内存的增加主要是因为创建了很多临时对象。所以要尽量少用Linq尽量避免创建不必要的对象。2.频繁使用的字符串可尝试采用驻留机制。3.将不常用的历史数据以文件方式存储和更新而不放入内存。4.业务拆分减少每个节点要加载的数据。5.尽量避免创建大对象必要时通过弱引用延迟加载处理大对象。 原文地址http://www.cnblogs.com/LoveOfPrince/p/6336472.html.NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注