Mining pool, go + redis, многие рабочие соединения вызывают ошибку accept4: слишком много открытых файлов - PullRequest
0 голосов
/ 05 октября 2018

Попытка запустить пул майнинга, написанный на go + redis.

Когда подключено не так много рабочих, все работает нормально.Но когда больше (более 1000) рабочих пытаются связаться с сервером, это приводит к ошибке

Выполнение вызовов redis_go таким образом.

tx: = r.client.Multi ()
ms: = util.MakeTimestamp () / 1000
defer tx.Close ()

Что может вызвать проблемы?Как я понимаю это проблема с макс соединением?Но как я могу это решить.

Заранее спасибо.

error1

error2

ulimit - это обновление 65536

(это не помогает)

func (r *RedisClient) WriteHashRate(login string, id string, hashRate 
int64, expire time.Duration) {
tx := r.client.Multi()
ms := util.MakeTimestamp() / 1000

tx.Exec(func() error {
r.writeHashRate(tx, login, id, hashRate, expire, ms)
return nil
})

tx.Close()
}
...