无论开拓什么系统,该当都有一条原则便是只管即便用最少系统资源做最多的事情、充分发挥硬件系统的性能。
Web系统最随意马虎碰着系统瓶颈,首先你知道有哪些地方随意马虎产生瓶颈么,知道怎么找到瓶颈么?
以利用比较多的LNMP架构为例。
随着网站访问量的增高,第一个碰着的瓶颈,常常是mysql“too many connections”。涌现这个问题,首先可以考试测验在配置文件中加大最大链接数“max_connections”,一样平常双核4G内存做事器可以设置到500至1000之间,详细值自己可以压测得到;
增加链接数后,访问量再增加,这个时候涌现的问题会开始涌现分支,程序设计太烂的话极有可能涌现500缺点,500缺点一样平常便是php处理涌现了问题,程序逻辑或者数据库操作语句有严重效率问题。涌现这个问题可以先从数据库慢查询语句下手,找到是哪个页面,然后进行优化;
访问量再增加,程序逻辑和数据库操作没有效率问题的话,数据库链接数问题会再次涌现,这个时候就须要考虑实现页面静态化、加入文件缓存或者缓存数据库;
访问量再持续增加,有可能涌现空缺页面,400类缺点,这个时候就须要对Nginx进行优化;
访问量再增加,并且Nginx、php程序和sql语句都已经进行了优化,还是会涌现数据库访问高延迟,这个时候就可以考虑数据库进行主从读写分离,缓存要制订合理的缓存算法提高命中率;
访问量再大幅度提高的话,就得须要根据详细运用处景进行优化,读多的系统和写多的系统架构开始涌现分解。
读多的系统是比较随意马虎办理的,增加Web做事器数量、缓存数量、CDN结点手段方法比较多;
写多的系统就要比较繁芜了,根据详细业务利用不同的方案,比如属于海量日志写入的,可以考虑文本写入然后处理再入库;如果像微博类的实时写入并回显的,就须要利用缓存数据库系统,比如redis、memcache;
系统访问量级再高的话,比如淘宝级的,那你所认识到Web处理流程的每个环节都要进行优化,末了就连宝贝图片存储系统都要进行重新设计优化。
本篇只是概论可能涌现的问题和解决办法,我们后续再详细问题详细剖析。
欢迎留言我们一同磋商问题一同办理问题。