作者:多米音乐_34024963 | 来源:互联网 | 2023-02-12 12:20
几天前,我实现了一个自动填充建议系统,该系统根据语言使用字典.以下是它的工作原理: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.
一些可能有用的信息:
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.
消息随机出现,仅在高峰时段出现.我无法在开发机器上复制问题.到目前为止,搜索互联网一直没有结果.关于导致它的原因以及如何解决的任何想法都将受到欢迎.
谢谢.