CFHTTP:首先请求速度很快,跟着缓慢

我目前在CF10的CFHTTP方面遇到了很多麻烦。

首先,我的测试脚本:

<CFSET results = arraynew(1) />
<CFLOOP from="1" to="10" index="idx">
    <CFSET timer_start = getTickCount() />
    <CFHTTP url="https://www.google.de" method="get" result="test" />
    <CFSET arrayappend(results, (getTickCount()-timer_start)/1000 & " s") />
</CFLOOP>
<CFDUMP var="#results#" />

连续10次CFHTTP调用,它们所花费的时间被推送到一个数组; 就这样。

我们的CF9服务器的结果:

我们的CF10服务器的结果:

我们的CF10服务器在CFHTTP呼叫之间延迟5秒的结果:

我已经在论坛和Shilpi的博客上看到,原因可能是Linux服务器用完了熵。 我用watch --interval=0.1 cat ...检查了watch --interval=0.1 cat ...虽然我的测试脚本运行了,但是它在4k以下从未下降过(已经安装了rngd)。

有没有人有另一个想法,我可以尝试解决这个问题? 使用/ dev / urandom似乎对我来说是一种不安全的破解; 所以这不是一个选项(因为CF10服务器是生产机器)。

多谢你们!


在对coldfusion服务器进行cfhttp调用时,apache httpclient库会尝试生成一个安全的随机数。 这是一个依赖于系统“熵”的操作。

在Linux系统(主要是新安装的系统)的情况下,观察到这种操作可能相当耗时,因为系统“熵”显然非常低。 因此,cfhttp调用的结果会很慢。

资料来源:http://blogs.coldfusion.com/post.cfm/optimizing-cfhttp-calls-on-linux-systems

解决方案:将“-Djava.security.egd=file:/dev/./urandom”到您的jvm设置中。

在Adobe论坛中,您可以找到有关问题和解决方案的另一个线索,以及关于随机数生成器的更多信息的以下链接:http://forums.adobe.com/thread/1063806

没有必要不使用/ dev / urandom,因为它是一个安全的解决方案:https://security.stackexchange.com/a/3939

链接地址: http://www.djcxy.com/p/74693.html

上一篇: CFHTTP: first request fast, following slow

下一篇: Is it more efficient to use a flag or an if clause?