mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
turn on toxiproxy by default, latency is always a real thing
This commit is contained in:
parent
785ec70cbb
commit
454624de18
1 changed files with 17 additions and 20 deletions
|
@ -13,8 +13,8 @@ require_relative '../lib/sidekiq/launcher'
|
|||
include Sidekiq::Util
|
||||
|
||||
Sidekiq.configure_server do |config|
|
||||
#config.options[:concurrency] = 1
|
||||
config.redis = { db: 13 }
|
||||
config.options[:concurrency] = 10
|
||||
config.redis = { db: 13, port: 6380 }
|
||||
config.options[:queues] << 'default'
|
||||
config.logger.level = Logger::ERROR
|
||||
config.average_scheduled_poll_interval = 2
|
||||
|
@ -36,14 +36,15 @@ end
|
|||
# brew tap shopify/shopify
|
||||
# brew install toxiproxy
|
||||
# gem install toxiproxy
|
||||
#require 'toxiproxy'
|
||||
# run `toxiproxy-server` in a separate terminal window.
|
||||
require 'toxiproxy'
|
||||
# simulate a non-localhost network for realer-world conditions.
|
||||
# adding 1ms of network latency has an ENORMOUS impact on benchmarks
|
||||
#Toxiproxy.populate([{
|
||||
#"name": "redis",
|
||||
#"listen": "127.0.0.1:6380",
|
||||
#"upstream": "127.0.0.1:6379"
|
||||
#}])
|
||||
Toxiproxy.populate([{
|
||||
"name": "redis",
|
||||
"listen": "127.0.0.1:6380",
|
||||
"upstream": "127.0.0.1:6379"
|
||||
}])
|
||||
|
||||
self_read, self_write = IO.pipe
|
||||
%w(INT TERM TSTP TTIN).each do |sig|
|
||||
|
@ -103,15 +104,11 @@ Sidekiq.logger.error "Created #{count*iter} jobs"
|
|||
Monitoring = Thread.new do
|
||||
watchdog("monitor thread") do
|
||||
while true
|
||||
sleep 1
|
||||
qsize, retries = Sidekiq.redis do |conn|
|
||||
conn.pipelined do
|
||||
conn.llen "queue:default"
|
||||
conn.zcard "retry"
|
||||
end
|
||||
end.map(&:to_i)
|
||||
total = qsize + retries
|
||||
#GC.start
|
||||
sleep 0.5
|
||||
qsize = Sidekiq.redis do |conn|
|
||||
conn.llen "queue:default"
|
||||
end
|
||||
total = qsize
|
||||
Sidekiq.logger.error("RSS: #{Process.rss} Pending: #{total}")
|
||||
if total == 0
|
||||
Sidekiq.logger.error("Done")
|
||||
|
@ -125,8 +122,8 @@ begin
|
|||
#RubyProf::exclude_threads = [ Monitoring ]
|
||||
#RubyProf.start
|
||||
fire_event(:startup)
|
||||
#Sidekiq.logger.error "Simulating 1ms of latency between Sidekiq and redis"
|
||||
#Toxiproxy[:redis].downstream(:latency, latency: 1).apply do
|
||||
Sidekiq.logger.error "Simulating 1ms of latency between Sidekiq and redis"
|
||||
Toxiproxy[:redis].downstream(:latency, latency: 1).apply do
|
||||
launcher = Sidekiq::Launcher.new(Sidekiq.options)
|
||||
launcher.run
|
||||
|
||||
|
@ -134,7 +131,7 @@ begin
|
|||
signal = readable_io.first[0].gets.strip
|
||||
handle_signal(launcher, signal)
|
||||
end
|
||||
#end
|
||||
end
|
||||
rescue SystemExit => e
|
||||
#Sidekiq.logger.error("Profiling...")
|
||||
#result = RubyProf.stop
|
||||
|
|
Loading…
Reference in a new issue