PHP大会笔记:MySQL 5.7 优化不求人

会议zkbhj 发表了文章 • 0 个评论 • 1919 次浏览 • 2017-06-10 14:48 • 来自相关话题

MySQL 5.7.17版本16年12月发布。支持group replication。





发展路线图
 





性能对比图





InnoDB引擎





引擎对比





buffer pool功能
 
 
 
  查看全部
MySQL 5.7.17版本16年12月发布。支持group replication。

WechatIMG400.jpeg

发展路线图
 

WechatIMG401.jpeg

性能对比图

WechatIMG402.jpeg

InnoDB引擎

WechatIMG439.jpeg

引擎对比

WechatIMG404.jpeg

buffer pool功能
 
 
 
 

PHP大会笔记:复杂PHP系统性能瓶颈问题排查和优化

会议zkbhj 发表了文章 • 0 个评论 • 1947 次浏览 • 2017-06-10 14:47 • 来自相关话题

陌陌如何做api性能优化?
 
代码分析
性能个好的语法
sql优化
 
优化重点接口 --》 优化有问题的代码
优化语言层面 --》 优化外部调用
重构代码 --》 重构服务
 
通过性能检测工具xhprof数据进行筛选、统计,分析出系统瓶颈。
 
数据筛选和统计
 
  查看全部
陌陌如何做api性能优化?
 
代码分析
性能个好的语法
sql优化
 
优化重点接口 --》 优化有问题的代码
优化语言层面 --》 优化外部调用
重构代码 --》 重构服务
 
通过性能检测工具xhprof数据进行筛选、统计,分析出系统瓶颈。
 
数据筛选和统计
 
 

PHP大会笔记:聊聊稳定性保障那些事儿

会议zkbhj 发表了文章 • 0 个评论 • 1645 次浏览 • 2017-06-10 14:47 • 来自相关话题

常见稳定性问题有哪些?
1、环境不一致问题
2、服务未隔离
3、服务化后,调用关系复杂,问题排查比较苦难
 
 
稳定性保障的原则
1、环境一致性原则(开发,测试,准生产,线上)
 需要注意的因素,版本(PHP版本、服务器版本等),配置(无特殊化配置),路径(应用、日志等)
2、环境隔离原则
物理隔离:两个服务部署在两台机器上,尽量少多个服务部署在同一台机器上
服务隔离:A调用B服务,要有措施去处理,A方如超时(防止拖挂应用),熔断(类似于保险丝,当要调用的服务负载过高,不可用时,自动kill自己),B方则可以进行限流。
 
有效监控原则
监控项目有系统级和业务层面
1、系统:CPU、Disc、Memory、NetWork、Process……
2、业务:ErrorLog、Data Status……
 
监控策略
监控可用性
不只是监控服务是否存在,更重要的是监控服务是否可用
 
报警策略
不要让报警称为骚扰
1、不要让报警项设置的太敏感
2、不同级别不同的报警方式
3、报警内容要有意义,如所在机房、机柜、时间、问题描述等
 
充分预案原则
面向问题预案
1、想一想都会有哪些问题
2、所使用的任何服务都不可靠
3、服务不可用时,如何处理
 
预案策略
1、设定超市,避免过长等待
2、默认数据,服务不可用时使用
3、预案尽量平台化、自动化执行
 
冲分预案原则
预案验证
1、周期性验证
2、模拟服务不可用,封端口
3、查看服务表现是否符合预期
 
追根溯源原则
验证
 
恢复服务
常规操作:摘机、重启、回滚、降级
 
保留现场
目的是为了获取数据
系统内部数据,系统外部监控、保留运行状态
 
问题排查
数据+知识经验+工具 = 问题排查

常见的问题排查工具

案例
1、有一个PHP漏洞引起的环境性一致性问题
multipart/form-data 远程DOS漏洞
 
环境各种不一致:PHP版本、下线方式、配置文件、文件路径
 
改造流程:
RPM打包管理、服务器控制脚本(控制上下线方式) --》 公司yum源
为什么rpm? 打包方便、安装简便、解决依赖关系
 
最终Docker化,保障机器无状态
 
2、服务隔离的案例
PC、APP





 
 
3、其他隔离
读写分离、SQL分离、慢SQL隔离
 
 
如何设计服务调用链路分析系统?
链路可追踪





  查看全部
常见稳定性问题有哪些?
1、环境不一致问题
2、服务未隔离
3、服务化后,调用关系复杂,问题排查比较苦难
 
 
稳定性保障的原则
1、环境一致性原则(开发,测试,准生产,线上)
 需要注意的因素,版本(PHP版本、服务器版本等),配置(无特殊化配置),路径(应用、日志等)
2、环境隔离原则
物理隔离:两个服务部署在两台机器上,尽量少多个服务部署在同一台机器上
服务隔离:A调用B服务,要有措施去处理,A方如超时(防止拖挂应用),熔断(类似于保险丝,当要调用的服务负载过高,不可用时,自动kill自己),B方则可以进行限流。
 
有效监控原则
监控项目有系统级和业务层面
1、系统:CPU、Disc、Memory、NetWork、Process……
2、业务:ErrorLog、Data Status……
 
监控策略
监控可用性
不只是监控服务是否存在,更重要的是监控服务是否可用
 
报警策略
不要让报警称为骚扰
1、不要让报警项设置的太敏感
2、不同级别不同的报警方式
3、报警内容要有意义,如所在机房、机柜、时间、问题描述等
 
充分预案原则
面向问题预案
1、想一想都会有哪些问题
2、所使用的任何服务都不可靠
3、服务不可用时,如何处理
 
预案策略
1、设定超市,避免过长等待
2、默认数据,服务不可用时使用
3、预案尽量平台化、自动化执行
 
冲分预案原则
预案验证
1、周期性验证
2、模拟服务不可用,封端口
3、查看服务表现是否符合预期
 
追根溯源原则
验证
 
恢复服务
常规操作:摘机、重启、回滚、降级
 
保留现场
目的是为了获取数据
系统内部数据,系统外部监控、保留运行状态
 
问题排查
数据+知识经验+工具 = 问题排查

常见的问题排查工具

案例
1、有一个PHP漏洞引起的环境性一致性问题
multipart/form-data 远程DOS漏洞
 
环境各种不一致:PHP版本、下线方式、配置文件、文件路径
 
改造流程:
RPM打包管理、服务器控制脚本(控制上下线方式) --》 公司yum源
为什么rpm? 打包方便、安装简便、解决依赖关系
 
最终Docker化,保障机器无状态
 
2、服务隔离的案例
PC、APP

WechatIMG321.jpeg

 
 
3、其他隔离
读写分离、SQL分离、慢SQL隔离
 
 
如何设计服务调用链路分析系统?
链路可追踪

WechatIMG376.jpeg

 

PHP大会笔记:PHP在机器学习上的应用和云深度学习平台的架构设计与实现

会议zkbhj 发表了文章 • 0 个评论 • 1843 次浏览 • 2017-06-10 14:03 • 来自相关话题

咳咳,计算机课开始了……
 机器学习










ML、DL引用
 
图像、语音、文本




 
如何实现?
什么是机器学习?
从数据中抽取规律,用于提取有用信息,解释数据、预测未来
 
机器学习过程:
数据预处理(去噪/归一化)
训练模型
评估模型(MSE/F1Score/AUC )
应用模型
 
机器学习算法的应用




 
神经网络




机器学习框架对神经网络的实现 -- TensorFlow





 
TensorFlow的编程模型 -- 数据流图






TensorFlow的架构




PHP-ML(终于到重点了)














就到这吧,,,,,结束! 查看全部
咳咳,计算机课开始了……
 机器学习

WechatIMG00.jpeg


WechatIMG01.jpeg

ML、DL引用
 
图像、语音、文本
WechatIMG019.jpeg

 
如何实现?
什么是机器学习?
从数据中抽取规律,用于提取有用信息,解释数据、预测未来
 
机器学习过程:
数据预处理(去噪/归一化)
训练模型
评估模型(MSE/F1Score/AUC )
应用模型
 
机器学习算法的应用
WechatIMG200.jpeg

 
神经网络
WechatIMG201.jpeg

机器学习框架对神经网络的实现 -- TensorFlow

WechatIMG203.jpeg

 
TensorFlow的编程模型 -- 数据流图

WechatIMG204.jpeg


TensorFlow的架构
WechatIMG205.jpeg

PHP-ML(终于到重点了)
WechatIMG206.jpeg


WechatIMG207.jpeg


WechatIMG208.jpeg

就到这吧,,,,,结束!

PHP大会笔记:瓜子的架构变迁

会议zkbhj 发表了文章 • 0 个评论 • 2692 次浏览 • 2017-06-10 11:55 • 来自相关话题

石器时代



















蒸汽时代










EP的实践工作
代码的艺术





单测试
























服务的解耦





 
前后端分离





 
目标和展望
平台化、服务化、智能化















  查看全部
石器时代
WechatIMG16.jpeg


WechatIMG17.jpeg


WechatIMG1.jpeg


WechatIMG21.jpeg

蒸汽时代

WechatIMG31.jpeg


WechatIMG41.jpeg

EP的实践工作
代码的艺术

WechatIMG51.jpeg

单测试
WechatIMG67.jpeg


WechatIMG777.jpeg


WechatIMG88.jpeg


WechatIMG99.jpeg


WechatIMG110.jpeg

服务的解耦

WechatIMG111.jpeg

 
前后端分离

WechatIMG123.jpeg

 
目标和展望
平台化、服务化、智能化

WechatIMG133.jpeg


WechatIMG144.jpeg


WechatIMG155.jpeg

 

PHP大会笔记:使用C++编写PHP7扩展

会议zkbhj 发表了文章 • 0 个评论 • 1570 次浏览 • 2017-06-10 10:17 • 来自相关话题

【音频资源今晚放进来】

PHP的原生扩展
一、PHP的扩展加载过程
*.so (*.lib)
Zend引擎的php_load_extension函数
加载并执行so中get_module函数,返回zend_module_entry
struct中设置了M(R)INT\M(R)SHUTDOWN 4个函数指针
执行zend_s
PHP扩展加载
 
 
创建PHP的扩展工程
扩展骨架生成工具:ext_skel
编辑 config.m4
 
 
PHP和C++互补性强,实现动静结合
唯一与PHP直接在内存堆栈上实现互相调用的
 
 
PHP-X

不听了,,,去学怎么写PHP代码了。。
  查看全部
【音频资源今晚放进来】

PHP的原生扩展
一、PHP的扩展加载过程
*.so (*.lib)
Zend引擎的php_load_extension函数
加载并执行so中get_module函数,返回zend_module_entry
struct中设置了M(R)INT\M(R)SHUTDOWN 4个函数指针
执行zend_s
PHP扩展加载
 
 
创建PHP的扩展工程
扩展骨架生成工具:ext_skel
编辑 config.m4
 
 
PHP和C++互补性强,实现动静结合
唯一与PHP直接在内存堆栈上实现互相调用的
 
 
PHP-X

不听了,,,去学怎么写PHP代码了。。
 

PHP大会笔记:新浪微博LNMP架构分享

会议zkbhj 发表了文章 • 0 个评论 • 1694 次浏览 • 2017-06-10 09:42 • 来自相关话题

【音频资源晚上放进来】
 
大会议题:高可用PHP。
 
一:新浪微博PC主站升级PHP7后的问题分析,新一代LNMP架构,基于混合云平台的弹性扩容架构
新浪微博内部技术体系:
后端语言,Java和PHP两大体系,开放平台用户关系和内容,是Java实现,所有业务需求开发用PHP。
模块并行化
突发大流量如何处理?改善架构,弹性扩容架构
 
分享大纲
背景和挑战
DCP平台介绍
PHP服务docker化
弹性扩容
 
1、背景和挑战
突发热点事件,引发大流量
大型活动及三节保障:春节红包飞
PUSH推送,运营的各种站内站外推送
 
话题业务特点
平时流量稳定,每日峰值波动较小
 
传统解决方案:提前申请足够的设备
设备冗余的问题,机架位不足,千万级采购成本,采购周期长,运行三个月只为一晚。
 
服务降级
降级非核心及周边业务
极端情况PC主站只保留主Feed
 
扩容繁琐,目标实现业务的弹性扩容部署
采购(采购机器)--》基础运维(操作系统、网络)--》业务运维(环境、监控、服务、流量)
 
运营设备成本高,目标要降低成本
各业务线利用率不高,未充分利用设备
各业务模型不同,峰值事件不同,不能进行错峰使用
每个业务都有自己的冗余,多个业务池会造成极大的成本
 
 
2、DCP平台介绍
主要思想:业务弹性调度、基础设施支持跨云
 
业务弹性调度:容器化来抹平运行环境的差异(借助docker)
基础设施支持跨云:
私有云(透明、安全、高性能)----- 按负载迁移(混合云)------公有云(敏捷、低成本、弹性)
固定工作负载 ,放在私有云----- 如根据预警,申请临时阿里云公有云,来进行弹性工作负载(按需申请使用和归还(无需闲置,成本低))
 
架构图





私有云“化零为整”





 
二、服务docker化
docker服务启动快
docker镜像一次制作,多次部署
尤其适合动态扩容部署
 
部署方案设计





 
PHP服务器包括Nginx、php-fpm、memcache、scribe等几大组件
PHP组件容器单独部署
代码、配置、日志等经常变更部分通过挂载的方式和docker容器互动
 
镜像制作





 
镜像方案










首次部署服务
通过下发配置文件、上线代码、启动容器完成服务部署。





 
代码上线
通过镜像完成上线
代码镜像使用busybox为基础,大小仅1m





 
创建代码镜像





一些细节
 
四、弹性扩容





扩容效果:一键式扩容
 
流量切换






总结
LNMP服务docker化,制作PHP服务先关镜像
结合DP平台完成PHP服务的首次部署、配置更改、代码上线 查看全部
【音频资源晚上放进来】
 
大会议题:高可用PHP。
 
一:新浪微博PC主站升级PHP7后的问题分析,新一代LNMP架构,基于混合云平台的弹性扩容架构
新浪微博内部技术体系:
后端语言,Java和PHP两大体系,开放平台用户关系和内容,是Java实现,所有业务需求开发用PHP。
模块并行化
突发大流量如何处理?改善架构,弹性扩容架构
 
分享大纲
背景和挑战
DCP平台介绍
PHP服务docker化
弹性扩容
 
1、背景和挑战
突发热点事件,引发大流量
大型活动及三节保障:春节红包飞
PUSH推送,运营的各种站内站外推送
 
话题业务特点
平时流量稳定,每日峰值波动较小
 
传统解决方案:提前申请足够的设备
设备冗余的问题,机架位不足,千万级采购成本,采购周期长,运行三个月只为一晚。
 
服务降级
降级非核心及周边业务
极端情况PC主站只保留主Feed
 
扩容繁琐,目标实现业务的弹性扩容部署
采购(采购机器)--》基础运维(操作系统、网络)--》业务运维(环境、监控、服务、流量)
 
运营设备成本高,目标要降低成本
各业务线利用率不高,未充分利用设备
各业务模型不同,峰值事件不同,不能进行错峰使用
每个业务都有自己的冗余,多个业务池会造成极大的成本
 
 
2、DCP平台介绍
主要思想:业务弹性调度、基础设施支持跨云
 
业务弹性调度:容器化来抹平运行环境的差异(借助docker)
基础设施支持跨云:
私有云(透明、安全、高性能)----- 按负载迁移(混合云)------公有云(敏捷、低成本、弹性)
固定工作负载 ,放在私有云----- 如根据预警,申请临时阿里云公有云,来进行弹性工作负载(按需申请使用和归还(无需闲置,成本低))
 
架构图

WechatIMG2.jpeg

私有云“化零为整”

WechatIMG3.jpeg

 
二、服务docker化
docker服务启动快
docker镜像一次制作,多次部署
尤其适合动态扩容部署
 
部署方案设计

WechatIMG4.jpeg

 
PHP服务器包括Nginx、php-fpm、memcache、scribe等几大组件
PHP组件容器单独部署
代码、配置、日志等经常变更部分通过挂载的方式和docker容器互动
 
镜像制作

WechatIMG6.jpeg

 
镜像方案

WechatIMG7.jpeg


WechatIMG8.jpeg

首次部署服务
通过下发配置文件、上线代码、启动容器完成服务部署。

WechatIMG10.jpeg

 
代码上线
通过镜像完成上线
代码镜像使用busybox为基础,大小仅1m

WechatIMG11.jpeg

 
创建代码镜像

WechatIMG12.jpeg

一些细节
 
四、弹性扩容

WechatIMG14.jpeg

扩容效果:一键式扩容
 
流量切换

WechatIMG15.jpeg


总结
LNMP服务docker化,制作PHP服务先关镜像
结合DP平台完成PHP服务的首次部署、配置更改、代码上线

超链接中的“JavaScript:;”有什么意义?

回复

前端开发zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 4052 次浏览 • 2017-06-09 14:38 • 来自相关话题

超链接中的“JavaScript:;”有什么意义?

回复

前端开发zkbhj 发起了问题 • 1 人关注 • 0 个回复 • 3884 次浏览 • 2017-06-09 14:24 • 来自相关话题

PHP 获取html中某个div中内容的方法是什么?

回复

PHPzkbhj 回复了问题 • 1 人关注 • 1 个回复 • 4889 次浏览 • 2017-06-08 17:16 • 来自相关话题