У меня имеется два сервера с более чем одним процессором на борту.
Заметил, что утилита top всегда показывает,что занят работой только один процессор. Остальные, стало быть, простаивают. На этих серверах установлен Линукс. Имеется ли возможность явно задавать выполнение определенного процесса на определенном процессоре?
Ответ на вопрос, очевидно думаю, не зависит от типа UNIX.
Спасибо заранее
>У меня имеется два сервера с более чем одним процессором на борту.
>
>Заметил, что утилита top всегда показывает,что занят работой только один процессор. Остальные,
>стало быть, простаивают. На этих серверах установлен Линукс. Имеется ли возможность
>явно задавать выполнение определенного процесса на определенном процессоре?
>Ответ на вопрос, очевидно думаю, не зависит от типа UNIX.
>Спасибо заранее
Линух не оч знаю, но вообще этим системные планировщики занимаются. Думаю, конкретно это телодвижение невозможно. К тому же top показывает весьма и весьма приблизительную картину. Например, он не показывает треды процессов, и где они выполняются.Если load average меньше единицы, забей.
>>У меня имеется два сервера с более чем одним процессором на борту.
>>
>>Заметил, что утилита top всегда показывает,что занят работой только один процессор. Остальные,
>>стало быть, простаивают. На этих серверах установлен Линукс. Имеется ли возможность
>>явно задавать выполнение определенного процесса на определенном процессоре?
>>Ответ на вопрос, очевидно думаю, не зависит от типа UNIX.
>>Спасибо заранее
>
>
>Линух не оч знаю, но вообще этим системные планировщики занимаются. Думаю, конкретно
>это телодвижение невозможно. К тому же top показывает весьма и весьма
>приблизительную картину. Например, он не показывает треды процессов, и где они
>выполняются.
>
>Если load average меньше единицы, забей.
Какое ядро используется? -smp?
>Какое ядро используется? -smp?Я конечно юзаю SMP. Но я так понимаю, вопрос был к топикстартеру.
>>>У меня имеется два сервера с более чем одним процессором на борту.>Какое ядро используется? -smp?
да - использую smp.
>Линух не оч знаю,
в принципе меня бы заинтересовал ответ относительно любой другой юниксоподобной системы. ФриБСД тоже интересуюсь
>но вообще этим системные планировщики занимаются. Думаю, конкретно
>это телодвижение невозможно. К тому же top показывает весьма и весьма
>приблизительную картину. Например, он не показывает треды процессова что показывает? чем посоветуете мониторить треды?
>, и где они
>выполняются.
>
>Если load average меньше единицы, забей.для основной функции сервера давно так и сделал, но вот решил использовать свободные ресурсы для своих шкурных интересов. Поэтому забить не получается :)
>в принципе меня бы заинтересовал ответ относительно любой другой юниксоподобной системы. ФриБСД тоже интересуюсьВообще я тоже в последнее время очень плотно интересуюсь этой темой. Пока что наинтересовался тем, что повсюду говорят что Linux делает FreeBSD в SMP области. Касательно тредов это есть правда - херовая реализация тредов во фре (про leading edge не вкурсе, но с 7й ветки прогнозируют значительные сдвиги в этой области).
Но дефакто - MySQL (т.е. 1 процесс, немеряно тредов) работает на линухе ой как быстрее чем на фре (на реальной SMP системе). Грубо говоря, фря держит его почти всего на одном процессоре, тогда как линукс раскидывает треды по другим процессорам.
В этом я убедился и поставил под мускуль сервак с Gentoo Linux. Прирост производительности налицо конечно, но опять проблема.
Gstat показывает примерно следующую постоянную картину. При LA порядка 1.5 - 2.5
Процессор 0:
user - 1.5, system - 0.5, iowait - 98, idle - 0Процессор 1:
idle: 100%Процессор 2: тоже какой то херней с iowait мается
Процессор 3: стоит как 1
iowait примерно понятно - ждет ответа сетки (сетевой сервер, канал 1000 Мбит/с)
Т.е. при простаивающем процессоре 1 и 3, два других заняты непонятно чем, тогда как в очереди на "run" (vmstat 1 - первая колонка) напостой 1-3 процесса.
Я хз что это значит, почему он часто оставляет процессор или два простаивающим... Возможно это логические процессоры hyperthreading, и его просто отрубить надо в ядре.
>Gstat показывает примерно следующую постоянную картину. При LA порядка 1.5 - 2.5прошу прощения за очепятку, не Gstat, а Dstat
>У меня имеется два сервера с более чем одним процессором на борту.
>
>Заметил, что утилита top всегда показывает,что занят работой только один процессор.для smp лучше возьмите mpstat
Остальные,
>стало быть, простаивают. На этих серверах установлен Линукс. Имеется ли возможность
>явно задавать выполнение определенного процесса на определенном процессоре?да, когда то это решали банальным bind pid cpu_mask
сейчас есть нормальные утилиты типа taskset -с cpu_mask pid
>Ответ на вопрос, очевидно думаю, не зависит от типа UNIX.
>Спасибо заранееещё бы поговорил об elevator (хотя они больше к io, но связь с кол-вом cpu конечно есть) коих в стандартном linux 4 штуки, и тот что по умолчанию ( anticipatory)- универсален.
>да, когда то это решали банальным bind pid cpu_mask
>
>сейчас есть нормальные утилиты типа taskset -с cpu_mask pid
>
вроде бы то что нужно>ещё бы поговорил об elevator (хотя они больше к io, но связь
а вот про это не понял. Что за элватор? где его высмотреть?>с кол-вом cpu конечно есть) коих в стандартном linux 4 штуки,
>и тот что по умолчанию ( anticipatory)- универсален.
>
>>да, когда то это решали банальным bind pid cpu_mask
>>
>>сейчас есть нормальные утилиты типа taskset -с cpu_mask pid
>>
>вроде бы то что нужно
>
>>ещё бы поговорил об elevator (хотя они больше к io, но связь
>а вот про это не понял. Что за элватор? где его высмотреть?
>
>
>>с кол-вом cpu конечно есть) коих в стандартном linux 4 штуки,
>>и тот что по умолчанию ( anticipatory)- универсален.
это шедулер, просто подгружается он в lilo как пример append="elevator=cfq" и я назвал элеватором :)в ядре секция: I/O Shedulers