Mir*_*ror 9 php windows sqlite vb6 iis
几天前,我实现了一个自动填充建议系统,该系统根据语言使用字典.以下是它的工作原理:JQuery UI自动完成 - >调用.php文件 - >调用VB6 COM dll函数 - >调用.sqlite文件并根据键入的字母查找结果 - >将结果返回给php - >将结果返回给JS .
它的工作速度相当快,因为它完成每个操作平均需要约7(毫秒).在高峰时段,谷歌分析显示约1200名在线用户,通常我们每天都会half a million调用〜这个特定的功能.
从这个自动完成建议系统上线的那天起,我开始注意到数百个非常具体的错误消息:
Not enough storage is available to complete this operation.
CoInitialize has not been called.
Run Code Online (Sandbox Code Playgroud)
一些可能有用的信息:
a)这些消息主要出现在峰值游客horus期间
b)它们并不总是只出现在特定的功能上,而是出现在其他功能上(但在我们实现上述系统之前从未这样做过)
c)之前我使用过sqlite数据库来获取其他东西(不像实时那么多,就像在用户输入时返回结果一样)但是从来没有出现这样的问题
d)sqlite文件的大小约为350MB,有3个表,其中一个有~220万个条目,另一个有1,600万个,另外有~16,000个条目和所有必要的列被索引.
e)显然,该数据库用于只读操作
f)系统禁用后,所有消息都会停止.
g)我每天都会收到大约一千条这样的错误消息(每天有大约500.000次调用函数)
服务器系统是两个(x2)盒子:核心I7 4770在3,8GHZ,32GB RAM,Windows服务器2012和IIS.
消息随机出现,仅在高峰时段出现.我无法在开发机器上复制问题.到目前为止,搜索互联网一直没有结果.关于导致它的原因以及如何解决的任何想法都将受到欢迎.
谢谢.
事实上,这是一个仅在高峰使用时间发生的暂时性问题,这非常清楚地表明内存不足 - 可能是您的 VB DLL(这可能是唯一被CoInitialize调用的地方)。
我见过类似的问题,运行的应用程序太多,winDoze 耗尽了“系统句柄” - 我有一个 w2K Advanced Server 盒子,一直用作台式机(因为 m$ 不提供升级路径)从 AS 实例到桌面实例)通常运行 12 个资源管理器窗口、带有 8-10 个选项卡的 WinSCP、几个 PuTTY 会话、几个 DOS 框、远程桌面连接、4 个窗口中有 184 个选项卡的 Firefox、Thunderbird 监视 40 个电子邮件帐户、WinAmp ,以及其他一些 - 由于上述系统句柄限制,PaintShopPro 和 PhpED 只是不想同时运行。
您的问题可能只需通过添加更多 RAM 即可解决,但您可能应该进行一些性能检查,并检查系统设置进行调整。
| 归档时间: |
|
| 查看次数: |
475 次 |
| 最近记录: |