Получение большого количества ошибок «DB :: NetException: сброс соединения одноранговым узлом при чтении из сокета», которые создают много шума

#clickhouse #clickhouse-go

#clickhouse #clickhouse-go

Вопрос:

Я использую версию click house ‘20.6.4’ с настройками по умолчанию.Просматривая журналы, я нашел эти журналы в изобилии.

 ServerErrorHandler: Code: 210, e.displayText() = DB::NetException: Connection reset by peer, while reading from socket
  

и

 u003cWarningu003e ConnectionPoolWithFailover: Connection failed at try №1, reason: Code: 209, e.displayText() = DB::NetException: Timeout: connect timed out: 172.16.*.*:9000 (172.16.*.*:9000) (version 20.6.3.28 (official build))","msg_id":"SERVER-1","namespace":"clickhouse.server","priority":6,"timestamp":"2020-09-21T00:01:23.623067Z","user_id":"","user_name":""}
  

Я использую клиент go-clickhouse с настройками по умолчанию (без изменения какого-либо тайм-аута)
Вставка данных почти каждую минуту (около 60-70 тыс. строк)
Несмотря на то, что, похоже, никакого влияния нет, но их много
Это мои настройки, связанные с таймаутом:

  name                                             value       type
 
 connect_timeout                                  10          SettingSeconds             
 connect_timeout_with_failover_ms                 50          SettingMilliseconds        
 connect_timeout_with_failover_secure_ms          100         SettingMilliseconds        
 receive_timeout                                  300         SettingSeconds             
 send_timeout                                     300         SettingSeconds             
 tcp_keep_alive_timeout                           0           SettingSeconds             
 idle_connection_timeout                          3600        SettingUInt64              
 distributed_directory_monitor_sleep_time_ms      100         SettingMilliseconds        
 distributed_directory_monitor_max_sleep_time_ms  30000       SettingMilliseconds        
 insert_in_memory_parts_timeout                   600000      SettingMilliseconds        
 replication_alter_columns_timeout                60          SettingUInt64              
 insert_quorum_timeout                            600000      SettingMilliseconds        
 use_client_time_zone                             0           SettingBool                
 insert_distributed_timeout                       0           SettingUInt64              
 distributed_ddl_task_timeout                     180         SettingInt64               
 stream_poll_timeout_ms                           500         SettingMilliseconds        
 http_connection_timeout                          1           SettingSeconds             
 http_send_timeout                                1800        SettingSeconds             
 http_receive_timeout                             1800        SettingSeconds             
 query_profiler_real_time_period_ns               1000000000  SettingUInt64              
 query_profiler_cpu_time_period_ns                1000000000  SettingUInt64              
 max_execution_time                               0           SettingSeconds             
 timeout_overflow_mode                            throw       SettingOverflowMode        
 timeout_before_checking_execution_speed          10          SettingSeconds             
 temporary_live_view_timeout                      5           SettingSeconds             
 lock_acquire_timeout                             120         SettingSeconds             
 mark_cache_min_lifetime                          0           SettingUInt64              
 date_time_input_format                           basic       SettingDateTimeInputFormat 

Is there anything i can change to minimize these errrors??
  

Комментарии:

1. PS: я использую встроенное TCPConnection для вставки запросов (используя клиентскую библиотеку ‘kshvakov’)

Ответ №1:

Сброс соединения одноранговым узлом при чтении из сокета

Какие IP-адреса в этом сообщении? Это серверы CH или клиенты? Однако это реальная ошибка. Это просто означает, что клиент ушел, а сервер не получил все ожидаемые данные.

Комментарии:

1. Это IP-адрес сервера clickhouse.

2. Также получение как чтения из сокета, так и записи из сокета.

3. проверьте, что происходит на этом сервере в данный момент. Почему он перестал отправлять данные.

4. я очень новичок в clickhouse. Как я могу проверить?? Есть ли какая-либо системная таблица, где я могу это видеть??

5. просто проверьте журнал в то время на сервере с этим IP

Ответ №2:

Это две разные проблемы.

Сбой соединения при попытке №1 connect_timeout_with_failover_ms 50

50 мс <- проверка задержки (ping) среди реплик. Если задержка составляет> 1 мс, то вам необходимо увеличить connect_timeout_with_failover_ms

 cat /etc/clickhouse-server/conf.d/user_substitutes.xml

 <?xml version="1.0"?>
<yandex>
    <profiles>
        <default>
            <connect_timeout_with_failover_ms>1000</connect_timeout_with_failover_ms>
        <default>
        </profiles>
        </yandex>
  

Комментарии:

1. Если вы говорите о столбце ‘absolute_delay’ в таблице ‘system.replicas’, его значение равно 0.

2. Я говорю о задержке в сети. вы можете проверить это с помощью команды ping

3. да, задержка пинга составляет от 3-20 мс для других хостов в моем кластере, какое значение я должен обновить и до скольких?

4. Я добавил способ увеличения connect_timeout_with_failover_ms к ответу

5. Только одна вещь, @Denny, пинг где-то между прочим 3-20 мс с потерей пакета 4%, но connect_timeout_with_failover_ms установлен на 50 мс, так что это проблема, поскольку значение меньше 50 мс, и для чего я должен увеличить это значение до 100, 200??