【问题标题】:Tracing the source of unknown Sidekiq processes追踪未知 Sidekiq 进程的来源
【发布时间】:2019-08-15 02:47:37
【问题描述】:

我有一项生产服务,托管在 AWS 上,它应该运行 2 个 Sidekiq 进程:两台负载平衡机器各运行 1 个。但是,似乎有 2 个额外的进程我无法追溯到它们的来源。我已经尝试重新启动两台机器,希望它能杀死任何幽灵进程,但两个未知进程仍然存在,而另外两个已经重新启动,所以它们可能正在其他地方运行。

幽灵进程导致出现“未初始化常量:”的问题,因此我认为它们没有应用程序代码并且错误连接。我暂时让他们安静了。

如何追溯这两个进程的来源?从图中可以看出,主机描述不是很有用。

【问题讨论】:

  • 问题是一个新服务意外地与相关服务共享了相同的 redis 连接(配置复制粘贴)。如果我有自定义队列名称而不是到处留下default,我会更清楚。我将保留这个问题,以防人们通过检查网络或 redis 连接来了解如何调试它。

标签: ruby amazon-web-services redis sidekiq


【解决方案1】:

两种可能有帮助的方法 -

  1. Redis 客户端列表 - 您可以列出连接到 redis 的所有客户端,并按名称、pid、年龄、db 等过滤以获取发起连接的 IP 地址。 redis-cli -h <redis-host> client list 并应用过滤器。

  2. 日志 - Sidekiq 在日志中记录进程主机名(例如,bc2e797afd0c)和 pid。您可以使用其他标识符(如 IP、容器 ID 等)将日志追溯到它的主机,这些标识符也可能会被记录。

【讨论】:

    猜你喜欢
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 2011-10-06
    • 2015-03-20
    • 2023-03-07
    • 1970-01-01
    • 2014-09-15
    相关资源
    最近更新 更多