- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
服务器集群及优化笔记报告
高性能的服务器的架设
对于高性能网站 ,请求量大,如何支撑?
1方面,要减少请求
对于开发人员合并css, 背景图片, 减少mysql查询等.
2: 对于运维 nginx的expires ,利用浏览器缓存等,减少查询.
3: 利用cdn来响应请求
4: 最终剩下的,不可避免的请求服务器集群+负载均衡来支撑.
所以,来到第4步后,就不要再考虑减少请求这个方向了.
而是思考如何更好的响应高并发请求.
大的认识既然响应是不可避免的,我们要做的是把工作内容”平均”分给每台服务器.
最理想的状态 每台服务器的性能都被充分利用.
服务器介绍:
服务器IP:
A 01
B 02
C 203
D204
Root: zixue.it
1台 A
RAM: 2G
HD: 500G
3台 B, C, D
RAM: 8G
Hd : 200G
步骤:
1:A号服务器
1.1安装 mysql
1.2并导入数据.
注意:先把表中的索引去掉,加快导入速度
2: C号服务器:
2.1: 编译PHP
注意: enbale-fpm , with-mysql=mysqlnd (编译成独立fpm进程,支持mysql,)
2.2: 下载第3方的memcached扩展 编译进来
3: D号服:
3.1 编译 memcached
4: B号服:
编译nginx ,并配置
Cd /app/pcre-8.12
./configure
Make make install
Cd nginx-1.2.7
./configure --prefix=/usr/local/nginx --add-module=/app/ngx_http_consistent_hash-master
注:红线部分是nginx的第3方模块,需要自己下载.
安装统计模块,便于观察nginx的状态
./configure --prefix=/usr/local/nginx/ --add-module=/app/ngx_http_consistent_hash-master --with-http_stub_status_module
Php 安装配置
1 tar -xzvf /path/’
2 cd /path/
3 .configure --prefix=/usr/local/php --
服务器集群与负载均衡搭建完毕
1:问题 C--A 的mysql连接很慢
解决: f中的[mysqld]节点中,添加
skip-name-resolve // 这句话使mysql连接时忽略解析域名,在制定Mysql权限时,只能根据IP限制,不能根据域名限制.
2: 问题 当memcache中没有相应的数据,从后台回调数据时,
http的状态码是404,(虽然内容正常),这样不利于SEO
解决: nginx/conf/nginx.conf
error_page 404 =200 /callback.php; // 这样 404被改写成200来响应中
压力测试:
模拟 前0-10万是热数据,
10-20万是冷门数据
请求热数据 0-10,请求9次
请求准予数据 请求1次, 100万次的请求.
优化思路:
nginx响应请求
1:建立socket连接
2: 打开文件,并沿socket返回.
排查问题,也要注意观察这两点,
主要从系统的dmesg ,和nginx的error.log来观察
优化过程
1:判断nginx的瓶颈
1.1: 首先把ab测试端的性能提高,使之能高并发的请求.
易出问题: too many open files
原因 : ab在压力测试时,打开的socket过多
解决: ulimit -n 30000 (重启失效)
观察结果: nginx 不需要特殊优化的情况下, 5000个连接,1秒内响应.
满足要求,但 wating状态的连接过多.
1.2: 解决waiting进程过多的问题.
解决办法: keepalive_timeout = 0;
即: 请求结果后,不保留tcp连接.
在高并发的情况下, keepalive会占据大量的socket连接.
结果: waiting状态的连接明显减少.
1.3: 解决服务端 too many open files
分析: nginx要响应,
1是要建立socket连接,
2 是要读本地文件
这两个者限制.
由上图可看出,nginx的问题容易出在2点上:
1: nginx接受的tcp
您可能关注的文档
- 理解JavaScript中的作用域和上下文分解.doc
- 理解MySQL分解.doc
- 氯气的制备及性质分解.ppt
- 有译文小古文100篇报告.doc
- 有趣的半圆形报告.doc
- 有限元上机第2周报告.docx
- 有限元基础理论教程_lecture06报告.ppt
- 理解概念和语句切忌以偏概全和断章取义分解.ppt
- 有限元f复习报告1报告.doc
- 有限合伙、公司制与契约型在私募基金中的区别和联系(龚华飞2015-10-28)报告.doc
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)