我们目前遇到的临时文件问题日益严重。观看我们的一个站点,我们可以看到我们正在观看的一个站点每天增长 100 - 200 MB。在此站点上,当临时文件达到 20Gb 并且出现可用空间问题时发生故障。
我们目前正在抑制超时。-ti 和 -tl 设置为零。由于这种配置,临时表建立起来的可能性有多大?
此外。为了进一步理解 -tl 标志,下面是一个真实的陈述:除非无法通过 tcpip 访问客户端,否则不会重置连接。
我们目前遇到的临时文件问题日益严重。观看我们的一个站点,我们可以看到我们正在观看的一个站点每天增长 100 - 200 MB。在此站点上,当临时文件达到 20Gb 并且出现可用空间问题时发生故障。
我们目前正在抑制超时。-ti 和 -tl 设置为零。由于这种配置,临时表建立起来的可能性有多大?
此外。为了进一步理解 -tl 标志,下面是一个真实的陈述:除非无法通过 tcpip 访问客户端,否则不会重置连接。
-ti 0 或 -tl 0 都不太可能与 SQL Anywhere 中的临时空间问题有关。这很可能是失控查询的结果。如果您使用的是版本 9,您可以打开限制检查,如下所示:
设置选项 PUBLIC.temp_space_limit_check = 'ON';
在版本 10 和 11 中,该选项应该已经打开,但可能已关闭。新的 max_temp_space 选项也很有用。
在早期版本中,您只需要找到失控的查询;Foxhound 可能会有所帮助:http ://www.risingroad.com/foxhound/index.html
另请参阅“危险!查询正在增加!” 在 http://sqlanywhere.blogspot.com/2009/03/danger-queries-are-stampeding.html
仅供参考,当您预计长时间不活动时,-ti 0 无限不活动超时设置非常常见;例如,在一个基于 Web 的大型连接池上过夜。
但是,-tl 0 无限活跃超时设置实际上是危险的,如果它导致大量僵尸连接堆积(客户端长期死机,但服务器保持连接打开)。就像帮助中所说的那样,如果您遇到过早的活动超时问题,通常最好增加超时时间;例如,-tl 3600 一小时。
AFAIK 声明“除非无法通过 tcpip 访问客户端,否则不会重置连接”似乎过于简化:活动数据包的检查似乎比简单的“无法访问”测试更复杂。
布雷克
你是对的, -ti 和 -tl 开关与临时空间无关。
关于 liveness 问题,client 和 server 都每秒发送 liveness 数据包, liveness timeout 值
n/3
在哪里。n
只有在此期间没有发送其他数据包时才会发生这种情况。如果任何一方在几秒钟后还没有收到来自另一方的任何数据包n
,则连接被丢弃。在连接被对方实际断开的情况下(例如,应用程序/服务器崩溃或机器重新启动),活跃性不是必需的,因为 TCP 连接将立即关闭。然而,活跃性对于检测挂起的应用程序和阻止数据包通过但不会导致 TCP 连接断开的网络问题很有用。