Сессия Zookeeper потеряна без событий и без обмена - PullRequest
0 голосов
/ 02 апреля 2019

Наши процессы выполняются в системе Linux, использующей почти ТБ ОЗУ без включенной подкачки.

В результате происходит то, что наш процесс на какое-то время зависает по причине, которую я не могу понять, поэтому Zookeeper истекаетсеанса, как следует, и затем процесс возвращается к жизни без событий, показанных для запуска в журналах.

Мы столкнулись с подобной ситуацией, но когда наш процесс возвращается к жизни, то потеря соединения и сеанс- события истечения запускаются, чтобы мы могли справиться с этой ситуацией, обычно воссоздав связанный с процессом эфемерный узел в Zookeeper.Мы полагали, что это происходит из-за полного цикла ГХ.

Что нового в настоящее время, так это то, что процесс останавливается, но не происходит никаких событий после возвращения к жизни!Таким образом, нет никакого способа обнаружить, что наш сеанс истек.

Я думаю о том, чтобы просто следить за удалением нашего эфемерного узла и затем воссоздать его.Но мне интересно, правильно ли это делать, так как я до сих пор не знаю, почему процесс вообще зависает.

Увеличение тайм-аута сессии не вариант, потому что он слишком велик длянас уже.И мы все равно пытаемся обработать тайм-аут сеанса.

Итак, мои вопросы просто так:

  1. Может ли быть причина этому, кроме полного цикла GC?
  2. Почему наш процесс не запускает события отключения или истечения срока действия сеанса после возвращения в оперативный режим?
  3. Это обычно для контроля удаления эфемерного узла приложения и не полагаться на события для этого?

РЕДАКТИРОВАТЬ Я нашел кое-что очень интересное после увеличения подробностей регистрации для Zookeeper

DEBUG: [07:05:57] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:06:31] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:07:04] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:07:37] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:08:11] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:08:44] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:09:17] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:09:51] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:10:24] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:10:57] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:11:31] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:12:04] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:12:38] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:13:11] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:13:44] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]
DEBUG: [07:14:18] [demo | HA | Manager] Got ping response for sessionid: 0x3000da76fa904b6 after 0ms [org.apache.zookeeper.ClientCnxn$SendThread.readResponse]

Если вы посмотрите внимательно, вы обнаружите, что разница во времени между каждым журналом~ 33 секунды.Находясь на моей машине, сообщение журнала отображается каждые ~ 1 секунду.Может ли это быть из-за задержки в сети?

РЕДАКТИРОВАТЬ

Running the mntr command returned the following stats
zk_version    3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 04:05 GMT
zk_avg_latency    0
zk_max_latency    17657
zk_min_latency    0
zk_packets_received    1427134
zk_packets_sent    1596974
zk_num_alive_connections    64
zk_outstanding_requests    0
zk_server_state    follower
zk_znode_count    1394
zk_watch_count    592
zk_ephemerals_count    192
zk_approximate_data_size    181257
zk_open_file_descriptor_count    94
zk_max_file_descriptor_count    1048576
zk_fsync_threshold_exceed_count    1

Я считаю значение zk_max_latency очень высоким.Мне интересно, что это за задержка?Как я могу отладить причину этого значения?

...