SlideShare uma empresa Scribd logo
1 de 16
LAMP 优化过程


                       周灵杰
  http://blog.netzhou.net
高性能
   非代码层面
   对系统的设计
   对开源软件方案的选择
   对系统的监控
   对服务器设置,优化
架
         构设计原则
   易于扩展
   结构简单
   采用成熟的开源软件及解决方案
   层次清晰
   先可用,抗住,再优化
   过度设计比不设计更龌龊
现代硬件架构
   CPU 转向多核,非提高 CPU 的主频
   内存是新的磁盘,大内存多核 NUMA
   磁盘,提高容量,非转速, IOPS 不高
   新型 SSD , PCI-E 型 SSD ,混合存储
   网卡的多通道, 10G
Web Server
   Nginx + php-fpm
   Nginx + php-cgi
   Apache + mod_php
   Apache + php-cgi
   …
Nginx Tips
   worker_processes
   worker_cpu_affinity
   open_file_cache max=xx inactive=xxs;
   open_file_cache_valid xxs;
   open_file_cache_min_uses 2;
   sendfile           on;
   keepalive_timeout xx;
   tcp_nopush on;
   tcp_nodelay on;
PHP-fpm Tips
   <value   name="listen_address">/dev/shm/php.socket</value>
   <value   name="max_children">512</value>
   <value   name="request_slowlog_timeout">1s</value>
   <value   name="slowlog">logs/slow.log</value>
   <value   name="rlimit_files">65535</value>
DB Cache
   Redis
   Memcached
MySQL
   MySQL Server tunning
   分库,分表
   索引 &Explain
   主从同步,读写分离
   Query Cache
   FlashCache 混合存储
OS
   EXT4 , XFS 文件系统
   CPU IO 调度算法
   IO 队列长度
   Raid 卡 Cache 策略,电池放电对于磁盘 IO 的影
    响
   多核大内存 NUMA
   网卡软中断多核( RPS , RFS , RSS )
   Iptables 调整
   Ulimit
TCP
   net.ipv4.tcp_max_syn_backlog = 65536
   net.core.netdev_max_backlog = 32768
   net.core.somaxconn = 32768

   net.core.wmem_default = 8388608
   net.core.rmem_default = 8388608
   net.core.rmem_max = 16777216
   net.core.wmem_max = 16777216

   net.ipv4.tcp_synack_retries = 1
   net.ipv4.tcp_syn_retries = 1

   net.ipv4.tcp_tw_recycle = 1
   net.ipv4.tcp_tw_reuse = 1
   net.ipv4.tcp_timestamps = 0

   net.ipv4.tcp_congestion_control = bic
   net.ipv4.tcp_ecn = 0

   net.ipv4.tcp_mem = 94500000 915000000 927000000
   net.ipv4.tcp_max_orphans = 3276800

   net.ipv4.tcp_keepalive_intvl = 15
   net.ipv4.tcp_keepalive_probes = 3
   net.ipv4.tcp_keepalive_time = 60

   net.ipv4.tcp_fin_timeout = 30
   net.ipv4.ip_local_port_range = 1024 65535
无处
              不在的 cache
   Browser cache
   Page cache
   PHP 的 Realpath Cache
   Nginx 的 facgi-cache
   PHP opcode ( APC,eAccelerator,XCache )
   DB Cache
监控
   Nagios
   Cacti
   PHP Slow function
   PHP Error Log
   Nginx Error Log
   Mysql Slow Log
   Redis Slow log
其它
   PHP extension
    GD < Imagemagic < Graphicsmagick
  memcached < memcache
  xCache < eAccelerator < APC
PHP Profile
  xdebug, xhprof
hiphop-php
…
Q&A

Mais conteúdo relacionado

Mais procurados

Sun jdk 1.6内存管理 -使用篇
Sun jdk 1.6内存管理 -使用篇Sun jdk 1.6内存管理 -使用篇
Sun jdk 1.6内存管理 -使用篇bluedavy lin
 
聊聊我接触的集群管理
聊聊我接触的集群管理聊聊我接触的集群管理
聊聊我接触的集群管理rfyiamcool
 
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223Jinrong Ye
 
HBase@taobao for 技术沙龙
HBase@taobao for 技术沙龙HBase@taobao for 技术沙龙
HBase@taobao for 技术沙龙bluedavy lin
 
Sun JDK 1.6内存管理 -调优篇
Sun JDK 1.6内存管理 -调优篇Sun JDK 1.6内存管理 -调优篇
Sun JDK 1.6内存管理 -调优篇bluedavy lin
 
Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)Robbin Zhao
 
高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查bluedavy lin
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)ykdsg
 
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Jinrong Ye
 
Mysql fast share
Mysql fast shareMysql fast share
Mysql fast sharerfyiamcool
 
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术C1000K高性能服务器构建技术
C1000K高性能服务器构建技术Feng Yu
 
并发编程交流
并发编程交流并发编程交流
并发编程交流bluedavy lin
 
Golang advance
Golang advanceGolang advance
Golang advancerfyiamcool
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理zijia
 
cdn的那些事儿
cdn的那些事儿cdn的那些事儿
cdn的那些事儿rfyiamcool
 
MySQL压力测试经验
MySQL压力测试经验MySQL压力测试经验
MySQL压力测试经验Jinrong Ye
 
Traffic server overview
Traffic server overviewTraffic server overview
Traffic server overviewqianshi
 
MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践丁 宇
 
Modern php ch8 ch9 guide 導讀
Modern php ch8 ch9 guide 導讀Modern php ch8 ch9 guide 導讀
Modern php ch8 ch9 guide 導讀Chen Cheng-Wei
 

Mais procurados (20)

Sun jdk 1.6内存管理 -使用篇
Sun jdk 1.6内存管理 -使用篇Sun jdk 1.6内存管理 -使用篇
Sun jdk 1.6内存管理 -使用篇
 
聊聊我接触的集群管理
聊聊我接触的集群管理聊聊我接触的集群管理
聊聊我接触的集群管理
 
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
 
HBase@taobao for 技术沙龙
HBase@taobao for 技术沙龙HBase@taobao for 技术沙龙
HBase@taobao for 技术沙龙
 
Sun JDK 1.6内存管理 -调优篇
Sun JDK 1.6内存管理 -调优篇Sun JDK 1.6内存管理 -调优篇
Sun JDK 1.6内存管理 -调优篇
 
Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)
 
高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)
 
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用
 
Mysql fast share
Mysql fast shareMysql fast share
Mysql fast share
 
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
 
并发编程交流
并发编程交流并发编程交流
并发编程交流
 
Golang advance
Golang advanceGolang advance
Golang advance
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理
 
cdn的那些事儿
cdn的那些事儿cdn的那些事儿
cdn的那些事儿
 
MySQL压力测试经验
MySQL压力测试经验MySQL压力测试经验
MySQL压力测试经验
 
Traffic server overview
Traffic server overviewTraffic server overview
Traffic server overview
 
MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB at Qihoo 360
MongoDB at Qihoo 360
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践
 
Modern php ch8 ch9 guide 導讀
Modern php ch8 ch9 guide 導讀Modern php ch8 ch9 guide 導讀
Modern php ch8 ch9 guide 導讀
 

Semelhante a Lamp优化实践

Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops琛琳 饶
 
高性能Lamp程序设计 付超群
高性能Lamp程序设计   付超群高性能Lamp程序设计   付超群
高性能Lamp程序设计 付超群Shaoning Pan
 
优酷 Web网站架构案例分析
优酷   Web网站架构案例分析优酷   Web网站架构案例分析
优酷 Web网站架构案例分析George Ang
 
Key value store
Key value storeKey value store
Key value storexuanhan863
 
Youku arch qcon2009_beijing
Youku arch qcon2009_beijingYouku arch qcon2009_beijing
Youku arch qcon2009_beijingdrewz lin
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130Jinrong Ye
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba海量日志分析系统实践,Dba
海量日志分析系统实践,DbaCevin Cheung
 
PHP Optimization for Millions Visits Level
PHP Optimization for Millions Visits LevelPHP Optimization for Millions Visits Level
PHP Optimization for Millions Visits LevelHo Kim
 
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践Feng Yu
 
Lvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukongLvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukongMichael Zhang
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构Cosey Lee
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 Renaun Erickson
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410maclean liu
 
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newYiwei Ma
 
Erlang游戏开发
Erlang游戏开发Erlang游戏开发
Erlang游戏开发litaocheng
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化丁 宇
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践taobao.com
 
Spark在苏宁云商的实践及经验分享
Spark在苏宁云商的实践及经验分享Spark在苏宁云商的实践及经验分享
Spark在苏宁云商的实践及经验分享alipay
 

Semelhante a Lamp优化实践 (20)

Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops
 
高性能Lamp程序设计 付超群
高性能Lamp程序设计   付超群高性能Lamp程序设计   付超群
高性能Lamp程序设计 付超群
 
优酷 Web网站架构案例分析
优酷   Web网站架构案例分析优酷   Web网站架构案例分析
优酷 Web网站架构案例分析
 
Key value store
Key value storeKey value store
Key value store
 
Youku arch qcon2009_beijing
Youku arch qcon2009_beijingYouku arch qcon2009_beijing
Youku arch qcon2009_beijing
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba海量日志分析系统实践,Dba
海量日志分析系统实践,Dba
 
PHP Optimization for Millions Visits Level
PHP Optimization for Millions Visits LevelPHP Optimization for Millions Visits Level
PHP Optimization for Millions Visits Level
 
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践
 
Lvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukongLvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukong
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
 
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 new
 
Erlang游戏开发
Erlang游戏开发Erlang游戏开发
Erlang游戏开发
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 
Spark在苏宁云商的实践及经验分享
Spark在苏宁云商的实践及经验分享Spark在苏宁云商的实践及经验分享
Spark在苏宁云商的实践及经验分享
 

Lamp优化实践

  • 1. LAMP 优化过程 周灵杰 http://blog.netzhou.net
  • 2. 高性能  非代码层面  对系统的设计  对开源软件方案的选择  对系统的监控  对服务器设置,优化
  • 3. 构设计原则  易于扩展  结构简单  采用成熟的开源软件及解决方案  层次清晰  先可用,抗住,再优化  过度设计比不设计更龌龊
  • 4.
  • 5. 现代硬件架构  CPU 转向多核,非提高 CPU 的主频  内存是新的磁盘,大内存多核 NUMA  磁盘,提高容量,非转速, IOPS 不高  新型 SSD , PCI-E 型 SSD ,混合存储  网卡的多通道, 10G
  • 6. Web Server  Nginx + php-fpm  Nginx + php-cgi  Apache + mod_php  Apache + php-cgi  …
  • 7. Nginx Tips  worker_processes  worker_cpu_affinity  open_file_cache max=xx inactive=xxs;  open_file_cache_valid xxs;  open_file_cache_min_uses 2;  sendfile on;  keepalive_timeout xx;  tcp_nopush on;  tcp_nodelay on;
  • 8. PHP-fpm Tips  <value name="listen_address">/dev/shm/php.socket</value>  <value name="max_children">512</value>  <value name="request_slowlog_timeout">1s</value>  <value name="slowlog">logs/slow.log</value>  <value name="rlimit_files">65535</value>
  • 9. DB Cache  Redis  Memcached
  • 10. MySQL  MySQL Server tunning  分库,分表  索引 &Explain  主从同步,读写分离  Query Cache  FlashCache 混合存储
  • 11. OS  EXT4 , XFS 文件系统  CPU IO 调度算法  IO 队列长度  Raid 卡 Cache 策略,电池放电对于磁盘 IO 的影 响  多核大内存 NUMA  网卡软中断多核( RPS , RFS , RSS )  Iptables 调整  Ulimit
  • 12. TCP  net.ipv4.tcp_max_syn_backlog = 65536  net.core.netdev_max_backlog = 32768  net.core.somaxconn = 32768  net.core.wmem_default = 8388608  net.core.rmem_default = 8388608  net.core.rmem_max = 16777216  net.core.wmem_max = 16777216  net.ipv4.tcp_synack_retries = 1  net.ipv4.tcp_syn_retries = 1  net.ipv4.tcp_tw_recycle = 1  net.ipv4.tcp_tw_reuse = 1  net.ipv4.tcp_timestamps = 0  net.ipv4.tcp_congestion_control = bic  net.ipv4.tcp_ecn = 0  net.ipv4.tcp_mem = 94500000 915000000 927000000  net.ipv4.tcp_max_orphans = 3276800  net.ipv4.tcp_keepalive_intvl = 15  net.ipv4.tcp_keepalive_probes = 3  net.ipv4.tcp_keepalive_time = 60  net.ipv4.tcp_fin_timeout = 30  net.ipv4.ip_local_port_range = 1024 65535
  • 13. 无处 不在的 cache  Browser cache  Page cache  PHP 的 Realpath Cache  Nginx 的 facgi-cache  PHP opcode ( APC,eAccelerator,XCache )  DB Cache
  • 14. 监控  Nagios  Cacti  PHP Slow function  PHP Error Log  Nginx Error Log  Mysql Slow Log  Redis Slow log
  • 15. 其它  PHP extension GD < Imagemagic < Graphicsmagick memcached < memcache xCache < eAccelerator < APC PHP Profile xdebug, xhprof hiphop-php …
  • 16. Q&A