gpt4 book ai didi

运行几个月后,Haskell 随机数突然开始为 "converge"

转载 作者:行者123 更新时间:2023-12-03 09:12:31 28 4
gpt4 key购买 nike

我有一个服务器程序,它从一组网络对等点中随机选择 10 个来完成一项任务。生成节点随机索引的代码如下:

indices = let index = getStdRandom $ randomR (0, number_of_peers - 1)
in sequence $ replicate 10 index

该程序已经运行了几个月,每天生成数千个“索引”,并且一直运行良好,直到昨天,当我注意到出现问题时:生成的随机数似乎“收敛”为一些重复值(结果是相应的网络对等体负载很重)。

要查看更改,以下是几天前的服务器日志:
peers selected: [55,47,80,74,183,85,04,33,72,58] 

以及今天的日志(如您所见,重复选择了对等点 53、37 和 195):
peers selected: [53,53,37,37,37,37,195,195,195,21] 

该程序在 x86_64 版本的 Ubuntu 10.10 上运行。

最佳答案

经过调查,这原来是我自己的一个令人尴尬的错误:此服务器上的 root 用户的最大打开文件限制为 1024,这出乎意料的低(但我听说这是 Ubuntu 上的默认设置)。当服务器程序有太多打开的套接字时,系统的某些部分开始拒绝对等点,使它们的状态为“非事件”。实际的“指数”是:

indices = let index = getStdRandom $ randomR (0, M.size active - 1) in
sequence $ replicate (n * 2) index

如果这个问题引起任何麻烦或困惑,我很抱歉。下次我会尝试更谨慎地发布。

关于运行几个月后,Haskell 随机数突然开始为 "converge",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18200283/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com