Я использую ruby-head и Debian wheezy x64. Когда я запускаю многопоточный скрипт ruby, htop показывает, что он использует несколько ядер визуально с барами наверху и что он использует 100% процессор в списке процессов, но использует только 100% емкости одного ядра. Я предполагаю, что можно использовать несколько ядер на 100%, и это число кажется слишком удобным для бутылочной сушки либо программной логикой, либо другим аппаратным аспектом. Является ли ОС ограничением количества доступных инструкций, которые я использую, если да, как это остановить?Многопоточная программа ruby использует только 100% процессор
EDIT подробнее:
Когда я имею в виду визуально с использованием нескольких ядер, например: 47% ядра 1, 29% ядра 2, и 24% сердцевины 3. Эти проценты постоянно меняются вверх и вниз и к различным наборам но всегда вместе составляют до 100% -102%. Используется более 3 (/ 8) сердечников, но любые сердечники, кроме трех наиболее нагруженных, используют только 2% или менее. Думаю, я также должен упомянуть об этом - линейный VPS.
EDIT:
Ну это выглядит, как я читал обещание, что 2,0 будет правдивые параллельные потоки, а не фактическая информация релиза. Время для перехода на Jruby ...
Я думал, что ruby 2.0 исправил это.Также я не уверен, что ваш ответ имеет смысл, потому что я четко вижу, что OS отображает несколько ядер, которые используются. – wduncan
Нет, [глобальная блокировка интерпретатора] (http://ablogaboutcode.com/2012/02/06/the-ruby-global-interpreter-lock/) в рубине - это большая работа, чтобы обеспечить совместимость с истинным многопоточным , – rudolph9
Ах, извините. Похоже, я только читал обещания этой функции. Время переключиться на Jruby. – wduncan