




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高性能的服务器的架设对于高性能网站 ,请求量大,如何支撑?1方面,要减少请求对于开发人员-合并css, 背景图片, 减少mysql查询等.2: 对于运维 nginx的expires ,利用浏览器缓存等,减少查询.3: 利用cdn来响应请求4: 最终剩下的,不可避免的请求-服务器集群+负载均衡来支撑.所以,来到第4步后,就不要再考虑减少请求这个方向了.而是思考如何更好的响应高并发请求.大的认识-既然响应是不可避免的,我们要做的是把工作内容”平均”分给每台服务器.最理想的状态 每台服务器的性能都被充分利用.服务器介绍:服务器IP:A 01B 02C 203D204Root: zixue.it1台 ARAM: 2GHD: 500G3台 B, C, DRAM: 8G Hd : 200GC: PHP进程8个PHP-fpmA: mysql请求BNginx:静态缓存D: memcached内存缓存步骤: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 编译 memcached4: B号服:编译nginx ,并配置Cd /app/pcre-8.12./configureMake & make installCd 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_modulePhp 安装配置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 是要读本地文件这两个者限制. index.htmlNginx请求由上图可看出,nginx的问题容易出在2点上:1: nginx接受的tcp连接多,能否建立起来?2: nginx响应过程,要打开许多文件 ,能否打开?第1个问题: 在内核层面(见下)第2个问题 (见下)系统内核层面:net.core.somaxconn = 4096 允许等待中的监听net.ipv4.tcp_tw_recycle = 1 tcp连接快速回收net.ipv4.tcp_tw_reuse = 1 tcp连接重用 net.ipv4.tcp_syncookies = 0 不抵御洪水攻击ulimit -n 30000Nginx层面:解决: nginx.conf 下面: work_connection 加大worker_connections 10240;Worker_rlimit_nofiles 10000;Keepalive_timeout 0;Nginx-php-fpm之间的优化PHP-fpmFpm-子进程Fpm-子进程Fpm-子进程Fpm-子进程nginxn如上图,在很多个nginx来访问fpm时, fpm的进程要是不够用, 会生成子进程.生成子进程需要内核来调度,比较耗时,如果网站并发比较大, 我们可以用静态方式一次性生成若干子进程,保持在内存中.方法 - 修改php-fpm.confPm = static 让fpm进程始终保持,不要动态生成Pm.max_children= 32 始终保持的子进程数量Php-mysql的优化Linux机器下 ,php 通过IP连接其他mysql服务器时,容易出的问题能ping能,但connect不到.一般是由:mysql服务器的防火墙影响的.并发1万连接,响应时间过长.优化思路: 同上的nginx1: 内核层面,加大连接数,并加快tcp回收2: mysql层面,增大连接数3: php层面,用长连接,节省连接数4: 用memcached缓存,减轻mysql负担具体:1.1 , PHP服务器增大 ulimint -n选项1.2 mysql服务器内核配置添加或修改如下选项net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_syncookies = 0# syscttl -p 使修改立即生效2.1 修改fVi /etc/my.conf# service mysqld restart 重启mysql3.1 PHP层面 ,用长连接Mysql_connect - mysql_pconnect注: pconnect 在PHP以apache模块的形式存在时,无效果.Nginx+phjp+mysql+nginx在引入memcached后,性能提升不明显,甚至还略有下降memcach
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北小升初试卷及答案
- 注册岩土师真题及答案
- 农发行北京市东城区2025秋招结构化面试15问及话术
- 内科学考试题库及答案电子版
- 临床检验考试题库及答案
- 考试题库及答案经济法
- 2025年政治初一下册真题及答案
- 2025年河北高一会考真题及答案
- 护师考试题库及答案文库
- 2025年法考客观题《试卷二》模拟题及答案
- 元器件采购基本知识培训课件
- 物业管理员职业技能大赛线上试题及答案
- 2025年江苏省泰州市保安员理论考试题库及答案
- 2025托幼机构卫生保健人员考试题库(附答案)
- 申请增列护理学硕士专业学位授权点的必要性与可行性论证报告
- 文化遗产数字化保护与文化遗产数字化保护的公众认知与接受度研究报告001
- 2024广西公需课高质量共建“一带一路”谱写人类命运共同体新篇章答案
- 《中级财务会计》课件-11收入、费用和利润
- 部编版(2024)七年级上册道德与法治第一单元 少年有梦 单元测试卷(含答案)
- 血液科抗感染病例汇报
- 耳鸣的健康教育
评论
0/150
提交评论