当Memcached缓存失效时,容易出现高并发的查询DB,导致DB压力骤然上升。这篇blog主要是探讨如何在缓存将要失效时,及时地更新缓存,而不是如何在缓存失效之后,如何防止高并发的DB查询。解决这个问题有四种思路:比如一个key是aaa,失效时间是30s。1.定期从DB里查询数据,再刷到memca...
分类:
数据库 时间:
2014-05-16 05:08:26
阅读次数:
349
一、服务器配置优化我们需要根据应用服务器的性能和并发访问量的大小来规划应用服务器的数量。有一个使用原则是:单台应用服务器的性能不一定要求最好,但是数量一定要足够,
最好能有一定的冗余来保障服务器故障。特别是,在高并发访问峰期间,适当增加某些关键应用的服务器数量。比如在某些高峰查询业务上,可以使用多台...
分类:
Web程序 时间:
2014-05-15 16:26:44
阅读次数:
319
《高并发Web系统的设计与优化》的读后感一口气看完了《高并发Web系统的设计与优化》,感觉受益匪浅,作者从高并发开始讨论问题,并逐步给出了非常有建设性的想法和建议,是值得我们进一步去思考的。我们都知道,高并发必然带来服务器的高压力,高压状态下单个服务器随时可能宕机,减少压力的性价比较高的办法就是分而...
分类:
Web程序 时间:
2014-05-15 16:05:43
阅读次数:
549
最近在infoq上面看到 ebay介绍其系统架构变迁以及系统设计分享方面的讲座,其中陈述了ebay从1995年到2006年之间系统架构的变化过程。从这里,我们可以学习到许多宝贵的经验来设计一个大容量,高并发,分布式的系统。
ebay的系统架构的变迁主要经历了4个阶段,下面一幅图展现了ebay系统架构变迁的时间表
在ebay的V1版本,ebay采用的是FREEBSD + APACHE + PERL +DGBM,这是一个比较原始的模型,而且相对比较简单,操作系统,应用服务器,web服务器 以及 数据库服...
分类:
其他好文 时间:
2014-05-13 15:01:52
阅读次数:
343
在上一篇博客中,一个简单的AIOweb处理例子,可以看到AIO异步处理,依赖操作系统完成IO操作的Proactor处理模型确实很强大,可以是实现高并发,高响应服务器的不错选择,但是在tomcat中的connector的处理模型还依旧是基于NIO的处理,当然,我认为这可能会在以后的版本进行改进,但另一方面,我更认为AIO的负载控制方面的处理可能是比较难的,因为AIO api并没有提供我们对分配线程组的处理,而只是提供一个线程组,交给操作系统去解决io处理上的问题,所以,这可能会给需要复杂处理的负载均衡带来一定...
分类:
Web程序 时间:
2014-05-11 22:07:20
阅读次数:
385
绝大多数对于Node.js的讨论都把关注点放在了处理高并发能力上,做开发的时候一定要明白node内部做出的权衡,以及node应用性能好的原因。
node采用一个长期运行的进程
而php在apache中会产生多个进程...
分类:
Web程序 时间:
2014-05-09 02:11:13
阅读次数:
311
第六章
任务执行大多数并发应用程序是围绕执行任务进行管理的。设计任务时,要为任务设计一个清晰的任务边界,并配合一个明确的任务执行策略。任务最好是独立的,因为这会提高并发度。大多数服务器应用程序都选择了下面这个自然的任务边界:单个客户请求。任务时逻辑上的工作单元,线程是使任务异步执行的机制。应用程序内...
分类:
编程语言 时间:
2014-05-08 18:38:07
阅读次数:
425
前两天跟同事讨论,说到高并发系统如何做优化,提到这个问题,他说他有些茫然,有点不知道该如何下手。
我想了想这几年做的各种系统优化工作,正好也简单总结一下,总结起来就是:一个核心,N种手段。 一个核心就是:多、快、准。 N种手段就要围绕上面的核心做的各种处理。
上面这个核心字多点说也就是:更多用户访问...
分类:
编程语言 时间:
2014-05-08 10:39:16
阅读次数:
297
大数据量引起的高并发处理:
1、数据量超过百万时增加集群服务器,比如使查询和操作分别在不同服务器上执行,如果数据量超过千万时这样会增加服务器间相互复制数据的资源开销,这时考虑把数据资源比如用户表根据ID放在不同的数据库集群中。
2、是页面静态化,因为html比jsp更节省资源和性能,考虑将页面做成html返回给客户,比如用freemarker工具
3、缓存技术,集群中采用memcached...
分类:
其他好文 时间:
2014-05-08 04:18:07
阅读次数:
361
1,遇到的问题就是 redis 2.8 版本依赖 Google 的 TCMalloc
TCMalloc(Thread-Caching Malloc)是google开发的开源工具──“google-perftools”中的成员。与标准的glibc库的malloc相比,
TCMalloc在内存的分配上效率和速度要高得多,可以在很大程度上提高MySQL服务器在高并发情况下的性能,降低系统负载...
分类:
其他好文 时间:
2014-05-07 05:41:35
阅读次数:
344