На рассматриваемых Mac стоит отметить, что необходимо попытаться отключить создание.DS_Store файлов на сетевых ресурсах, если Вы уже не сделали этого. (Детали по MacOSXHints.com)
Дополнительно необходимо знать, что по SMB Вы заметите ._FILENAME
файлы создали - это - то, как OS X поддерживает данные ветви ресурсов и такой в других файловых системах. Это может вызвать проблему для кого-то на основанной на Windows машине, если они пытаются открыть неправильный файл.
Возможно иметь сервер не, позволяют эти файлы (в smb.conf, можно установить veto_files =._ *), но где это находится в Windows Server 2003, я не уверен, но я полагаю, что использование этой статьи от TechRepublic должно подтвердить стоящую начальную точку зрения.
мой умеренно загруженный веб-сервер находится приблизительно в 100-150 переключателях в секунду большую часть времени с пиками в тысячи.
Высокие уровни контекстного переключения не являются самостоятельно проблемой, но они могут указать путь к более значительной проблеме.
править: Контекстные переключения являются признаком, не причиной. Что Вы пытаетесь работать на сервере? Если у Вас есть многопроцессорная машина, можно хотеть попытаться установить привязку CPU к основным серверным процессам.
Кроме того, если Вы работаете X, попытайтесь раскрыться в консольный режим.
отредактируйте снова: в 16k cs в секунду, каждый CPU составляет в среднем два переключателя на миллисекунду - который является половиной к одной шестой нормального интервала. Он мог работать, много IO связало потоки?
редактирование снова отправляет графики: Конечно, взгляды IO связываются. система проводит большую часть своего времени в SYS, когда контекстные переключения высоки?
редактирование еще раз: Высокий iowait и система в том последнем графике - полностью затмение пространства пользователя. У Вас есть проблемы IO.
Какую карту FC Вы используете?
править: хм. шанс получения некоторых сравнительных тестов, идущих на Ваш доступ SAN с bonnie ++ или dbench во время deadtime? Я интересовался бы наблюдением, если у них есть подобные результаты.
править: Взгляды об этом за выходные и я видел подобные скороговорки использования, когда bonnie делает "запись байт во время" передача. Это может объяснить большой объем переключения продолжения, поскольку каждая запись потребовала бы отдельного syscall.
Я более склонен коснуться об уровне заполняемости ЦП состояния системы. Если это близко к 10% или выше, который означает, что Ваша ОС проводит слишком много времени, делая контекстные переключения. Хотя перемещение, некоторые процессы к другой машине намного медленнее, она имеет право делать так.
Вещи как это состоят в том, почему необходимо попытаться сохранить базовые линии производительности для серверов. Тем путем можно сравнить вещи, которые Вы замечаете внезапно с вещами, которые Вы записали в прошлом.
Тем не менее у меня есть выполнение серверов (не очень занятые серверы Oracle, главным образом), которые устойчивы вокруг 2k с некоторыми пиками 4k. Для моих серверов, который нормален для серверов других людей, которые могли бы быть слишком низкими или слишком высокими.
Как далеко можно возвратиться в данных?
Какую информацию о ЦП можно дать нам?
Нет никакого эмпирического правила. Контекстным переключением является просто ЦП, перемещающийся от обработки одного потока другому. При выполнении большого количества процессов (или несколько очень потоковых), Вы будете видеть больше переключателей. К счастью Вы не должны волноваться о сколько контекстных переключений, там - стоимость является маленькой и более или менее неизбежной.
Это зависит очень от типа приложения, которое Вы запускаете. Если у Вас будут приложения, которые являются очень воинственным WRT syscalls, то можно ожидать видеть большое количество контекстного переключения. Если большинство Ваших приложений, неактивных вокруг и только, проснется, когда будет материал, происходящий на сокете, можно ожидать видеть низкие уровни контекстного переключения.
Системные вызовы вызывают контекстные переключения по своему очень собственному характеру. Когда процесс делает системный вызов, он в основном говорит ядру вступать во владение от, он - текущий момент времени и память, чтобы сделать материал, который процесс не привилегирован, чтобы сделать, и возвратить тому же пятну, когда он сделан.
Когда мы смотрим на определение записи (2) syscall из Linux, это становится очень ясным:
NAME write - write to a file descriptor SYNOPSIS #include ssize_t write(int fd, const void *buf, size_t count); DESCRIPTION write() writes up to count bytes from the buffer pointed buf to the file referred to by the file descriptor fd. [..] RETURN VALUE On success, the number of bytes written is returned (zero indicates nothing was written). On error, -1 is returned, and errno is set appropriately. [..]
Это в основном говорит ядру принимать операцию от процесса, перемещаться до count
байты, начинающие с адреса памяти, которым указывают *buf
к дескриптору файла fd
из текущего процесса и затем возвращаются назад к процессу и говорят ему, как он пошел.
Хорошим примером для показа этого является выделенный игровой сервер для Клапана основанные на источнике игры, hlds. http://nopaste.narf.at/f1b22dbc9 показывает одну вторую ценность syscalls, сделанного единственным экземпляром игрового сервера, который не имел никаких плееров на нем. Этот процесс занимает приблизительно 3%-е процессорное время на Xeon X3220 (2.4 ГГц), только чтобы дать Вам чувство для того, насколько дорогой это.
Другой источник контекстного переключения мог бы быть процессами, которые не делают syscalls, но должны отъехаться данный ЦП для создания места для других процессов.
Хорошим способом визуализировать это является cpuburn. cpuburn, не делает никакого syscalls самого, он просто выполняет итерации по своей собственной памяти, таким образом, он не должен вызывать контекстное переключение.
Возьмите неактивную машину, запустите vmstat и затем выполните burnMMX (или любой другой тест от cpuburn пакета) для каждого ядра процессора, которое имеет система. У Вас должно быть полное системное использование к тому времени, но едва любое увеличенное контекстное переключение. Затем попытайтесь запустить еще несколько процессов. Вы будете видеть, что повышения ставки контекстного переключения как процессы начинают конкурировать по ядрам процессора. Объем переключения зависит от отношения процессов/ядра и многозадачного разрешения Вашего ядра.
linfo.org имеет хорошую рецензию на том, каковы контекстные переключения и системные вызовы. Википедия имеет универсальную информацию и хороший набор ссылки на Системных вызовах.