2013年8月30日
摘要: 对于网盘系统,每个用户都有自己独立的文件目录,用户可以在自己的根目录下自由建立文件夹,上传文件。对于这样的树形目录结构,一般会建立成如下的表结构:User表:Userid用户IDUsername用户名Rootid根文件夹IDDirectory表:Dirid文件夹IDDirname文件夹名Parenteid父文件夹IDDocument表:Docid文件IDDocname文件名Parenteid父文件夹ID 为了应对未来数据的增长,需要对数据库进行分库,分库方式可以采用以下两种。 第一种方式采用根据用户分库的方案,每个用户的文件信息都处于同一个库中,不同用户可能位于不同的库中。这种分库方式... 阅读全文
posted @ 2013-08-30 10:54 aurawing 阅读(1535) 评论(0) 推荐(0) 编辑
  2013年5月27日
摘要: 一致性哈希算法(Consistent Hashing Algorithm)是一种分布式算法,常用于负载均衡。Memcached client也选择这种算法,解决将key-value均匀分配到众多Memcached server上的问题。它可以取代传统的取模操作,解决了取模操作无法应对增删Memcached Server的问题(增删server会导致同一个key,在get操作时分配不到数据真正存储的server,命中率会急剧下降),详细的介绍在这篇帖 子中http://www.iteye.com/topic/611976(后文指代这篇文章的地方均称为引文)。 [下面以Memcached的分布式问 阅读全文
posted @ 2013-05-27 13:22 aurawing 阅读(1938) 评论(0) 推荐(0) 编辑
  2013年5月21日
摘要: 年初的时候收藏过一篇关于mysqlreport的报表解读,和内置的show status,和show variables相比mysqlreport输出一个可读性更好的报表;但Sundry MySQL提供的脚本相比mysqlreport更进一步:除了报表还进一步提供了修改建议。安装和使用非常简单:wget http://www.day32.com/MySQL/tuning-primer.shchmod +x tuning-primer.sh./tuning-primer.sh和mysqlreport一样,tuning-primer.sh也支持.my.cnf[client]user ... 阅读全文
posted @ 2013-05-21 15:28 aurawing 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 第一步 检查系统的状态... 21.1 使用sar来检查操作系统是否存在IO问题... 21.2 使用vmstat监控内存 cpu资源... 21.2.1 CPU问题... 31.2.2内存问题... 31.3磁盘IO问题... 31.4网络问题... 3第二步 检查mysql参数... 32.1 几个不被注意的mysql参数... 32.1.1 max_connect_errors 32.1.2 connect_timeout 42.1.3 skip-name-resolve. 42.1.4 slave-net-timeout=seconds 42.1.5 master-connect-re 阅读全文
posted @ 2013-05-21 15:13 aurawing 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 在MySQL数据库连接数很多,而且大多属于活跃的状态时MySQL机器基本上负载很高,属于基本上快要死去的状态了.这时怎么办呢?有可能两个办法.第一先限制Innodb的并发处理.如果innodb_thread_concurrency = 0 可以先改成 16或是64 看机器压力,如果非常大,先改成16让机器的压力下来,然后慢慢增达,适应自已的业务.处理方法: set global innodb_thread_concurrency=16;第二: 对于连接数已经超过600或是更多的情况,可以考虑适当的限制一下连接数,让前端报一下错,也别让DB挂了.DB在了,总是可以用来加载一下数据,当数据加载到了 阅读全文
posted @ 2013-05-21 15:06 aurawing 阅读(2448) 评论(0) 推荐(0) 编辑
  2013年3月8日
摘要: 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(主-从)方式进行同步复制,将查询和操作和分别在不同的服务器上进行操作。我推荐的是M-M-Slaves方式,2个主Mysql,多个Slaves,需要注意的是,虽然有2个Master,但是同时只有1个是Active,我们可以在一定时候切换。之所以用2个M,是保证M不会又成为系统的SPOF。Slaves可以进一步负 阅读全文
posted @ 2013-03-08 09:58 aurawing 阅读(379) 评论(0) 推荐(0) 编辑
  2013年3月1日
摘要: 月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历,我在把他的心得做了不多的增改,并根据我的经历增加了“进阶”一节。这是一篇由新手和我这个老家伙根据我们的经历完成的文章。我的这个朋友把这篇文章取名叫Build Your ProgrammingTechni 阅读全文
posted @ 2013-03-01 11:03 aurawing 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 一般来说,按照网上提供的一些方法,将Apache和多个Tomcat通过jk连接,进行集群负载是没有什么大的问题的,但当访问量增加得比较大而且峰值持续时间较长时,默认的一些配置就不够用了。 今天亲身经历了这样一个过程,apache的最大连接数调到了4500,但都还不够用,一会就跑满了。而Tomcat这边压力却不大,同时,发现mod_jk.log里面有很多这样的错误记录: (tomcat) Tomcat is down or refused connection. No response has been sent to the client (yet) 或者connecting to backe 阅读全文
posted @ 2013-03-01 11:01 aurawing 阅读(344) 评论(0) 推荐(0) 编辑
  2013年2月28日
摘要: 当前系统中的日志由各个独立的Tomcat产生,日志存储的比较分散,不便于管理,而且由于采用将文件写入NAS的方式记录日志,当磁盘出现故障的情况下会导致Tomcat异常。为消除日志实体和Tomcat程序的依赖以及解决日志的管理问题,决定采用基于Socket的远程日志收集方案。本方案需要对Tomcat的日志系统做一些改动,具体方案如下:一、Tomcat的改造:Tomcat原生的日志模块是基于java.util.Logging改造的日志收集器,使用和配置均比较简单,但是不适用于一些复杂的日志记录需求,比如此次的远程日志收集方案。为适应当前的需求,采用Log4j作为日志记录器。 首先从Tomcat网站 阅读全文
posted @ 2013-02-28 18:17 aurawing 阅读(1315) 评论(0) 推荐(0) 编辑
  2010年12月23日
摘要: 一、 简介 Berkeley DB Java Edition (JE)是一个完全用JAVA写的,它适合于管理海量的,简单的数据。l 能够高效率的处理1到1百万条记录,制约JE数据库的往往是硬件系统,而不是JE本身。l 多线程支持,JE使用超时的方式来处理线程间的死琐问题。l Database都采用简单的key/value对应的形式。l 事务支持。l 允许创建二级库。这样我们就可以方便的使用一级key,二级key来访问我们的数据。l 支持RAM缓冲,这样就能减少频繁的IO操作。l 支持日志。l 数据备份和恢复。l 游标支持。二、 获取JEJE下载地址:http://www.oracle.com/ 阅读全文
posted @ 2010-12-23 15:43 aurawing 阅读(1089) 评论(1) 推荐(0) 编辑