← 返回
未分类 中文

Sidekiq Job Analyzer

Analyze Sidekiq job configurations for reliability, performance, queue design, retry policies, and memory safety — optimize Ruby background processing.
分析 Sidekiq 任务配置,提升可靠性、性能、队列设计、重试策略及内存安全,优化 Ruby 后台处理。
charlie-morrison charlie-morrison 来源
未分类 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 370
下载
💾 0
安装
1
版本
#latest

概述

Sidekiq Job Analyzer

Analyze Sidekiq job configurations for reliability, performance, queue design, retry policies, and memory safety. Audit worker classes, queue priorities, concurrency settings, and Redis usage. Use when jobs are slow, failing silently, or consuming too much memory.

Usage

"Analyze my Sidekiq jobs for issues"
"Check queue configuration and priorities"
"Audit retry policies and error handling"
"Optimize Sidekiq performance and memory usage"

How It Works

1. Job Discovery

# Find all Sidekiq workers/jobs
grep -rn "include Sidekiq::Job\|include Sidekiq::Worker" app/ lib/ | head -30
# Check Sidekiq config
cat config/sidekiq.yml 2>/dev/null
cat config/initializers/sidekiq.rb 2>/dev/null
# Check queue definitions
grep -rn "sidekiq_options" app/ lib/ | head -20

2. Job Configuration Audit

Retry policies:

  • Jobs without explicit retry count (default: 25 retries over 21 days)
  • Missing dead: false on non-critical jobs
  • No custom error handling or sidekiq_retries_exhausted callback
  • Retry with exponential backoff vs fixed intervals

Queue design:

  • Too many queues (scheduler overhead)
  • Critical jobs sharing queues with bulk operations
  • Missing queue weights/priorities
  • Jobs in wrong queues (heavy job in default blocking lightweight jobs)

Idempotency:

  • Jobs that aren't safe to retry (double-sends, duplicate charges)
  • Missing unique job constraints (sidekiq-unique-jobs)
  • State mutations without proper locking

Performance:

  • Long-running jobs blocking the queue
  • Jobs that should be batched (Sidekiq Pro/Enterprise)
  • Missing pool size for database-heavy workers
  • Thread-safety issues in job code

3. Memory Analysis

  • Jobs loading large datasets into memory
  • Missing find_each / find_in_batches for ActiveRecord queries
  • String concatenation in loops (memory fragmentation)
  • Jobs that grow memory without bound
  • Redis memory usage by queues and retry sets

4. Monitoring & Observability

  • Sidekiq Web UI configured and accessible?
  • Dead job monitoring and alerting
  • Queue latency monitoring
  • Error tracking integration (Sentry, Bugsnag)
  • Custom metrics for business-critical jobs

5. Redis Configuration

  • Redis connection pool sizing
  • Redis memory limits and eviction policy
  • Redis persistence settings for job durability
  • Sentinel/Cluster for high availability

Output

## Sidekiq Job Analysis

**Workers:** 23 | **Queues:** 5 | **Redis:** 512MB used

### 🔴 Critical (2)
1. **Non-idempotent payment job** — PaymentProcessor has no uniqueness guard
   If retried, can charge customer multiple times
   → Add `sidekiq_options unique: :until_executed`

2. **Memory leak in ReportGenerator** — loads all records per tenant
   Grows to 2GB+ for large tenants, triggers OOM kill
   → Use `find_in_batches(batch_size: 1000)` and stream output

### 🟡 Improvements (4)
3. Default retry count (25) on BulkEmailJob — 21 days of retries for marketing emails
4. Queue `default` has 15 different job types — split critical from bulk
5. No `sidekiq_retries_exhausted` handler on 18/23 workers
6. Missing dead job monitoring (12,847 dead jobs accumulated)

### 📊 Queue Health
| Queue | Jobs/hr | Latency | Workers |
|-------|---------|---------|---------|
| critical | 120 | 0.1s | 5 |
| default | 3,400 | 45s ⚠️ | 10 |
| mailers | 800 | 2s | 3 |
| reports | 50 | 5min ⚠️ | 2 |
| bulk | 12,000 | 30min | 5 |

### ✅ Good Practices
- Separate queues for different priorities
- Sentry integration for error tracking
- Redis Sentinel configured for HA

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-08 01:58 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

dev-programming

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 681 📥 329,563
dev-programming

CodeConductor.ai

larsonreever
AI驱动平台,提供快速全栈开发、智能体、工作流自动化及低代码AI集成的可扩展产品创建。
★ 76 📥 182,498
it-ops-security

Vulnerability Prioritizer

charlie-morrison
在CVSS评分之外,利用EPSS、CISA KEV、资产关键性、可达性分析以及利用成熟度进行漏洞优先级排序
★ 1 📥 516