- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究使用 Zen Cart 的东西。此时从 Zen Cart 更改站点不是可选的。该网站大部分时间都运行良好,但每隔一周左右,该网站的性能就会受到影响。与服务器提供商的讨论表明,这几乎可以肯定是由于对数据库的写入过多导致 i/o 使用效率低下造成的。数据库服务器不同于 Web 服务器,但如果数据库服务器没有足够的可用 I/O,站点就会受到影响(因为站点上几乎每个页面都会调用数据库)。我正在寻找解决此问题的解决方案,相信我已经找到了一些解决方案,但希望得到一些反馈。
A) 确定我是否可以修改 zen cart 以使用 INSERT DELAY 而不是 INSERT,这样页面就不会在特定查询时挂起。然而,Zen Cart 是一个庞大的系统,像这样进行大规模更改可能会产生负面影响(例如,DELAY 语句不会在已使用 LOCKED TABLES 锁定的表上执行,或者后续页面无法正确反射(reflect)用户在之前的页面上,因为他们可以在没有完成之前的查询的情况下加载)。
B) 部署混合托管解决方案,其中网站在云端运行,但数据库在具有多个 SAS 驱动器的服务器上运行,以提高写入速度,从而更快地释放 I/O 以供后续查询使用。我想避免这种情况,因为它会显着增加成本。
有人在使用 Zen-Cart 时遇到过这个问题吗?您对这些修复有何看法?您使用了哪些修复程序?
更新:我最终使用了 Data Diggers 的 Query Cache,这对我帮助很大。我还发现 zencart 对 getimagesize() 的使用占据了它的大部分加载时间,因此我正在创建一种从缓存中获取这些值的方法。大多数 mysql 查询延迟是由过多的读取操作引起的,而不是写入操作。自从我实现这些更改后,情况有了很大改善。我会将 AJ 的回答标记为正确,因为他确实回答了我最初的问题。
最佳答案
像 INSERT DELAY 而不是 INSERT 那样进行广泛的更改可能是正确的解决方案,但并非您的所有查询都会导致问题。只有少数人(甚至可能只有一个人)对性能问题负责。
您应该尝试找出导致性能问题的特定 查询。与您的主机合作以启用 slow query logging让 MySQL 告诉您效率低下的地方。如果没有一个运行缓慢,并且这只是一个纯粹的并发问题,IFF 你已经与 Zen Cart 结婚,那么你需要考虑加强你的基础设施。我喜欢您关于拥有独立的 Web 和数据库服务器的想法。不过不要太过火 - 如果它们现在都在一台服务器上运行,只需获取第二台服务器并移动您的数据库即可。
进行增量更改并监控结果。一次更改太多的东西将很难确定您所看到的性能提升(希望不是损失)的原因。
关于mysql - Zen Cart 对数据库的写入过多。可能的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5689399/
我在 JBoss 6 上使用 JSF 2。我制作了一个示例应用程序,它使用 JSF 作为 View ,使用 EJB 作为逻辑,使用 JPA 作为持久性。 JSF 中的 bean 具有 RequestS
我打开气流并检查了连接,然后发现背后有太多连接。 关于如何杀死那些我不使用的想法,或者我很想知道运行它的最低conn_id的任何想法。 建筑 LocalExecutor(与其他经纪人不同) Postg
我收到错误 style.css:1 GET https://www.example.com/cs_CZ净::ERR_TOO_MANY_REDIRECTS 可能与我的 htaccess 有关吗? Rew
我收到错误 style.css:1 GET https://www.example.com/cs_CZ净::ERR_TOO_MANY_REDIRECTS 可能与我的 htaccess 有关吗? Rew
我正在 Android 中开发一个应用程序,我有以下 XML 布局:
我有 5 个类用作运算符: TurnOn , TurnOff , PushBox , Exit , Enter 对于每种类型,我都有一个包含该类型描述的字符串。 例如: class Places {
我们在使用 lettuce redis 库时遇到了这个具体问题。我们收到太多 RedisCommandTimeoutException。我们在 redis-cli 中设置了 2 秒的超时,在 redi
在 Controller 类文件中,大多数方法函数都包含try/catch块,如下所示: try { $stmt = $this->prepare($sql); $st
我读到这个page附加很多元素是不好的做法,我应该在循环的每次迭代期间构建一个字符串,然后将 DOM 元素的 HTML 设置为该字符串。在循环中使用过多的 HTML 是否也是如此? 我有一个解析 JS
在我的应用程序日志上运行 logcat 时,我看到很多 GC_FOR_ALLOC 而没有 GC_CONCURRENT 消息。我知道我有内存泄漏,但在堆栈和其他站点的任何地方,logcat 消息都有很多
当我检查我的 Tomcat 应用程序管理器时,我发现我的 session 太多(超过 4600): 为什么会这样?这可以链接到已部署的应用程序,还是它已经运行了很长时间? 最佳答案 这可能有多种原因,
所以我试图在一个 div 中运行 3 个 float ,但我遇到了这个问题。 http://jsfiddle.net/sPUjQ/101/ 点我 每当我运行两次 float 时,背景颜色会保持不变,但
为什么在使用 http_build_query 函数构建查询字符串时,它会将方括号 [] urlencode 到值之外,如何摆脱它? $query = array("var" => array("fo
在一个过程中,我需要使用许多 if-else 条件来决定列的值。该脚本以 FOR rec IN (SELECT....) LOOP Begin 并决定许多不同的值 rec 子记录可以在每次迭代中获得。
我们基于 Java 的服务器应用程序报告异常长的类加载时间: # jstat -class 10625 1000 Loaded Bytes Unloaded Bytes Time 4
我正在使用 Kraken.js 开发一个应用程序并管理我决定使用的 session :connect-mongo。 我有这样的设置: 'use strict'; var session = requi
我在 iPad 应用程序中有 180 个 UILabels(UITableViewCells 的 subview ),每个 UILabel 的宽度为 155 X 155,并且每个包含大量 Unicod
所以基本上,如果我将 JPanel 放入使用 GridBagLayout 的 JPanel 中,并使用 setPreferredSize 限制大小>,最终它达到了无法容纳所有这些的地步,并且它表现出附
我目前使用的是 Play 2.2.1,在白天运行生产 Web 应用程序后,我的日志中开始出现以下错误。似乎我的连接已用完/我一定没有正确关闭某些东西,但我似乎无法弄清楚它是什么。 2014-02-11
所以我几乎完成了我的元素,我打算创建一个完整的网页 slider 作为我网站的背景主题,并且它运行完美! 问题是它的垂直拉伸(stretch)太长,您可以向右滚动(您不应该那样做)而且我不知道为什么它
我是一名优秀的程序员,十分优秀!