PHP 具有 mysql 和长期 运行 备份的应用
PHP app with mysql and long running backup
我有 PHP 应用程序使用 mysql 作为其数据库。该应用程序不重,通常会立即加载。它有管理页面,我可以在其中 运行 一些可能 return 很长列表的查询。每天还有几次 cron 进程支持整个数据库。
我注意到,通常加载速度非常快的用户页面在备份或进行长时间 运行ning(大约 30 秒)管理查询时可能会超时或变慢。
服务器是单处理器虚拟机。我认为即使有另一个线程使用数据库,它的响应速度仍应慢 2 或 3 倍,而不是慢 100 倍。
那么我该如何解决这个问题呢?我可以将优先级设置为 mysql 查询还是可以设置更多 PHP-Apache 问题?我没有太多关于它的信息,因为它很少发生,而且大多只是用户报告的。
我很乐意收到从哪里开始寻找的任何提示,因为我不想 test/debug 生产站点,也不想安装测试环境。
谢谢大家
如何进行备份? mysqldump?
您使用的是 MyISAM 还是 InnoDB?听起来像 MyISAM?
不管我的问题的答案如何,这就是您面临的问题:转储正在对磁盘进行重击,并且可能会耗尽 RAM 中的缓存。 (细节在很大程度上取决于答案。)这本质上会减慢速度。
此外,如果你使用的是MyISAM,那么table是被锁定的;这比使用 InnoDB 时要糟糕得多。 InnoDB使用行锁,侵入性小,但不是免费的。
key_buffer_size and/or innodb_buffer_pool_size 的设置与 可用 的 RAM 是多少?这些会影响 "cache is blown".
我有 PHP 应用程序使用 mysql 作为其数据库。该应用程序不重,通常会立即加载。它有管理页面,我可以在其中 运行 一些可能 return 很长列表的查询。每天还有几次 cron 进程支持整个数据库。
我注意到,通常加载速度非常快的用户页面在备份或进行长时间 运行ning(大约 30 秒)管理查询时可能会超时或变慢。
服务器是单处理器虚拟机。我认为即使有另一个线程使用数据库,它的响应速度仍应慢 2 或 3 倍,而不是慢 100 倍。
那么我该如何解决这个问题呢?我可以将优先级设置为 mysql 查询还是可以设置更多 PHP-Apache 问题?我没有太多关于它的信息,因为它很少发生,而且大多只是用户报告的。
我很乐意收到从哪里开始寻找的任何提示,因为我不想 test/debug 生产站点,也不想安装测试环境。 谢谢大家
如何进行备份? mysqldump?
您使用的是 MyISAM 还是 InnoDB?听起来像 MyISAM?
不管我的问题的答案如何,这就是您面临的问题:转储正在对磁盘进行重击,并且可能会耗尽 RAM 中的缓存。 (细节在很大程度上取决于答案。)这本质上会减慢速度。
此外,如果你使用的是MyISAM,那么table是被锁定的;这比使用 InnoDB 时要糟糕得多。 InnoDB使用行锁,侵入性小,但不是免费的。
key_buffer_size and/or innodb_buffer_pool_size 的设置与 可用 的 RAM 是多少?这些会影响 "cache is blown".