LINUX.ORG.RU

История изменений

Исправление C, (текущая версия) :

По ходу там горилла буянит. Выделяет по 2GB на каждый коннект.

(pprof) top 
>>Showing nodes accounting for 4GB, 100% of 4GB total

Спасибо, так отлаживать я не умел.

Поискал в багтрекере гориллы на предмет утечек - и потом заметил, что буферы чтения и записи для websocket.Upgrader по 1Gb выделяются в коде :)

var upgrader = websocket.Upgrader{
  ReadBufferSize:  1024 * 1024 * 1024,
  WriteBufferSize: 1024 * 1024 * 1024,
  //Solving cross-domain problems
  CheckOrigin: func(r *http.Request) bool {
    return true
  },
}

Я почему-то думал, что это что-то с каналами или горутинами

Исправление C, :

По ходу там горилла буянит. Выделяет по 2GB на каждый коннект.

>>Showing nodes accounting for 4GB, 100% of 4GB total

Спасибо, так отлаживать я не умел.

Поискал в багтрекере гориллы на предмет утечек - и потом заметил, что буферы чтения и записи для websocket.Upgrader по 1Gb выделяются в коде :)

var upgrader = websocket.Upgrader{
  ReadBufferSize:  1024 * 1024 * 1024,
  WriteBufferSize: 1024 * 1024 * 1024,
  //Solving cross-domain problems
  CheckOrigin: func(r *http.Request) bool {
    return true
  },
}

Я почему-то думал, что это что-то с каналами или горутинами

Исходная версия C, :

По ходу там горилла буянит. Выделяет по 2GB на каждый коннект.

(pprof) top Showing nodes accounting for 4GB, 100% of 4GB total

Спасибо, так отлаживать я не умел.

Поискал в багтрекере гориллы на предмет утечек - и потом заметил, что буферы чтения и записи для websocket.Upgrader по 1Gb выделяются в коде :)

1024 * 1024 * 1024