Created
August 17, 2016 01:56
-
-
Save gbaptista/4fbe9160752ad121d32a1f58b7e23f53 to your computer and use it in GitHub Desktop.
syslog stress test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ruby 2.1.2 | |
require 'syslog' | |
require 'thread' | |
process = 40 | |
threads = 4 | |
times = 4611686018427387903 | |
intervals = [0.01, 0.015, 0.05, 0.02, 0.08, 0.1, 0] | |
process.times.each do |p| | |
fork do | |
semaphore = Mutex.new | |
save_log = lambda do |message| | |
semaphore.synchronize do | |
Syslog.open('logbug', Syslog::LOG_PID, Syslog::LOG_USER) do |log| | |
log.notice('%s', message) | |
end | |
end | |
end | |
thread_instances = [] | |
threads.times.each do |t| | |
thread_instances << Thread.new do | |
times.times.each do | |
sleep intervals.sample | |
save_log.call("#{p+1}_#{t+1} > #{Time.now.to_f} Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam consectetur lectus est, non varius justo tempus at. Duis ac lorem porta, convallis nunc eget, condimentum arcu. Pellentesque aliquam libero eget enim rutrum, a viverra nisi sodales. Donec vel scelerisque nulla. Sed dictum ut nisl et tincidunt. Fusce pellentesque leo a convallis accumsan. Etiam arcu massa, fringilla at orci et, suscipit iaculis orci. Curabitur lobortis cursus aliquam. Morbi sit amet interdum arcu, et iaculis neque. Vivamus tempor leo commodo auctor mollis. Pellentesque sodales lectus vel neque molestie vulputate. Morbi placerat diam enim, eget euismod nisl tincidunt eget. Nunc varius vestibulum consequat. Sed dignissim odio odio, luctus aliquet lacus porttitor eget. Duis efficitur mollis dolor, commodo vulputate lorem placerat quis. Sed in malesuada nisl. Duis malesuada eros nec ligula consectetur, convallis ornare augue fringilla. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut eget orci quis augue venenatis dapibus condimentum quis turpis. Maecenas vel ex ac arcu sagittis efficitur. Duis in convallis erat. Donec sed sem et lectus posuere sodales. Interdum et malesuada fames ac ante ipsum primis in faucibus.") | |
end | |
end | |
end | |
thread_instances.each(&:join) | |
end | |
end | |
puts "\nfor i in {1..10000}; do sleep 1; time logger \"logbug time check $(date)\"; done\n\n" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment