服务器集群及优化笔记报告.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

ee88870 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档