高性能mysql怎么样 高性能mysql和高可用mysql( 二 )


可扩展性指标对于容量规范非常有用 它可以提供其他测试无法提供的信息 来帮助发现应用的瓶颈 比如 如果系统是基于单个用户的响应时间测试(这是一个很糟糕的测试策略)设计的 虽然测试的结果很好 但当并发度增加时 系统的性能有可能变得非常糟糕 而一个基于不断增加用户连接的情况下的响应时间测试则可以发现这个问题
一些任务 比如从细粒度数据创建汇总表的批量工作 需要的是周期性的快速响应时间 当然也可以测试这些任务纯粹的响应时间 但要注意考虑这些任务之间的相互影响 批量工作可能导致相互之间有影响的查询性能变差 反之亦然
归根结底 应该测试那些对用户来说最重要的指标 因此应该尽可能地去收集一些需求 比如 什么样的响应时间是可以接受的 期待多少的并发性 等等 然后基于这些需求来设计基准测试 避免目光短浅地只关注部分指标 而忽略其他指标
返回目录高性能MySQL
编辑推荐
ASP NET开发培训视频教程
数据仓库与数据挖掘培训视频教程
lishixinzhi/Article/program/MySQL/201311/29741
高性能MySQL:测量PHP 应用程序测量PHP 应用程序
如果不使用New Relic 也有其他高性能mysql怎么样的选择 尤其是对PHP 有好几款工具都可以帮助进行性能剖析 其中一款叫做xhprof(//pecl php net/package/xhprof) 这是Facebook开发给内部使用的 在 年开源高性能mysql怎么样了 xhprof 有很多高级特性 并且易于安装和使用 它很轻量级 可扩展性也很好 可以在生产环境大量部署并全天候使用 它还能针对函数调用进行剖析 并根据耗费的时间进行排序 相比xhprof 还有一些更底层的工具 比如xdebug Valgrind 和cachegrind 可以从多个角度对代码进行检测注 有些工具会产生大量输出 并且开销很大 并不适合在生产环境运行 但在开发环境却可以发挥很大的作用
下面要讨论的另外一个PHP 性能剖析工具是我们自己写的 基于本书第二版的代码和原则扩展而来 名叫IfP(instrumentation for php) 代码托管在Goole Code 上(//code google /p/instrumentation for php/) Ifp 并不像xhprof 一样对PHP 做深入的测量 而是更关注数据库调用 所以当无法在数据库层面进行测量的时候 Ifp 可以很好地帮助应用剖析数据库的利用率 Ifp 是一个提供了计数器和计时器的单例类 很容易部署到生产环境中 因为不需要访问PHP 配置的权限(对很多开发人员来说 都没有访问PHP配置的权限 所以这一点很重要)
Ifp 不会自动剖析所有的PHP 函数 而只是针对重要的函数 例如 对于某些需要剖析的地方要用到自定义的计数器 就需要手工启动和停止 但Ifp 可以自动对整个页面的执行进行计时 这样对自动测量数据库和memcached 的调用就比较简单 对于这种情况就无须手工启动或者停止 这也意味着 Ifp 可以剖析三种情况 应用程序的请求(如page view) 数据库的查询和缓存的查询 Ifp 还可以将计数器和计时器输出到Apache 通过Apache 可以将结果写入到日志中 这是一种方便且轻量的记录结果的方式 Ifp 不会保存其他数据 所以也不需要有系统管理员的权限
使用Ifp 只需要简单地在页面的开始处调用start_request() 理想情况下 在程序的一开始就应当调用
require_once( Instrumentation php )
Instrumentation::get_instance() start_request()
这段代码注册了一个shutdown函数 所以在执行结束的地方不需要再做更多的处理
IFP会自动对SQL添加注释 便于从数据库的查询日志中更灵活地分析应用的情况 通过SHOW PROCESSLIST也可以更清楚地知道性能低的查询出自何处 大多数情况下 定位性能低下查询的来源都不容易 尤其是那些通过字符串拼接出来的查询语句 都没有办法在源代码中去搜索 那么IFP的这个功能就可以帮助解决这个问题 它可以很快定位到查询是从何处而来的 即时应用和数据库中间加了代理或者负载均衡层 也可以确认是哪个应用的用户 是哪个页面请求 是源代码中的哪个函数 代码行号 甚至是所创建的计数器的键值对 下面是一个例子

推荐阅读