From: alexandre@... Date: 2014-07-11T20:34:57+00:00 Subject: [ruby-core:63669] [ruby-trunk - Bug #10009] IO operation is 10x slower in multi-thread environment Issue #10009 has been updated by Alexandre Riveira. Eric Wong wrote: > > Lowering TIME_QUANTUM_USEC (in thread_pthread.c) helps with the I/O case > (try it yourself if you have a 1000HZ kernel); but hurts overall > throughput. Hello Eric!!!! I stayed enjoyed the result of change TIME_QUANTUM_USEC. Changed its value to 1000 only see the results: ruby 2. first 17434583 second 2754 <============= third 16752441 If you have any problems I will try 10 * 1000. It seems incredible because there was no need to apply taskset. As this is a microbenchmark'll do the tests and if all goes well put into production. After I report news. ---------------------------------------- Bug #10009: IO operation is 10x slower in multi-thread environment https://bugs.ruby-lang.org/issues/10009#change-47723 * Author: Alexandre Riveira * Status: Open * Priority: Urgent * Assignee: * Category: * Target version: * ruby -v: ruby 2.1 x ruby 1.9.2 with taskset * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- I created this issue #9832 but not have io operation. In the script attached I simulate IO operation in multi-thread environment. For ruby 1.9.2 apply `taskset -c -p 2 #{Process.pid}` for regulates threads behavior. The second Thread is a io operation My results: 1) ruby 2.1.2 first 43500194 second 95 third 42184385 2) ruby-2.0.0-p451 first 38418401 second 95 third 37444470 3) 1.9.3-p545 first 121260313 second 50 third 44275164 4) 1.9.2-p320 first 31189901 second 897 <============ third 31190598 Regards Alexandre Riveira ---Files-------------------------------- teste_thread_schedule_2.rb (1.05 KB) teste_thread_schedule.py (953 Bytes) teste_thread_schedule.rb (955 Bytes) test_thread_sched_pipe.rb (1.01 KB) -- https://bugs.ruby-lang.org/