высокий уровень использования RAM в win server 2008[fixed]
Если подсчитать всю память всех процессов в системе, то получается 760 MB.по какому счетчику подсчитывал? что показывает commit size?
ps
что показывает закладка performance?
файловый кеш небось
плюс всяческие префетчи семёрочные
отключи вообще подкачку
больше чем надо не съест
Подсчитал тупо - через монитор ресурсов скопировал столбец Memory Usage со всеми данными в эксель и подсчитал сумму
по сути сервак функционирует в режиме Висты.
ЧТО ПОКАЗЫВАЕТ COMMIT SIZE в сумме по всем процессам?
В общем, по русски это зовется "Выделенная память" 3827 MB
времени и нервов - это займет меньше, чем обнаружение проблемы, а вот если проблема повторится - тогда уже стоит поискать в чем дело.
Ну как бы классика. Где-то утечка памяти. Чтобы найти ее, отруби по одному все стороннее на сервере. Мне кажется, на этом этапе уже найдешь проблему.
Типичный M$-way - проще перестаить, чем разобраться.
Типичный M$-way - проще перестаить, чем разобраться.логично. для сервера на *nix-е, чтобы он как-то работал, нанимают специального шамана, которому конкретно платят деньги за то, чтобы оно работало. вот этот шаман свои зарплату и отрабатывает.
а windows работает сам без всяких шаманов, и деньги окружающим платят за их работу, а не за укротительство ОС, и соответственно всем этим окружающим проще взять новый instance ОС, как берут новый пластиковый стаканчик, чем заклеивать жевачкой старый (чем обычно и занимается опытный *nix-шаман).
У продвинутых *nix шаманов используются легкие термокружки, которые не дырявятся, в отличие от пластиковых стаканчиков, если в них вместо воды из кулера налить горячего чаю.
это не отменяет того факта, что для каждой такой термокружки требуется по шаману, а то и по два для надежности
сколько стоит такой шаман в месяц по сравнению с однократной тратой на венду?
Записал в блокнотик. (с)
Т.е. винду надо переустанавливать раз в месяц, чтобы она нормально работала?систему(любую) имеет смысл "перезагрузить" с нуля при возникновении нештатной неповторяющейся проблемы. это удобнее, чем искать проблему. Но для профессионалов, которые этим зарабатывают, как Kivi или Гулька, всё наоборот, им выгоднее разобраться с причиной, чем от нее избавиться
Записал в блокнотик. (с)
винда так себя ведет где-то раз в три года на 100 установок
Если есть программные утечки памяти, он же вроде должны чиститься при завершении процесса.
Тут же ситуация такая, что физ. памяти используется в 10 раз больше, чем сумма памяти всех процессов вместе взятых.
Вычитал в инетрнетах, что начиная с висты (а win server 2008 ,базируется на висте ) используется superfetch
В кратце, это технология кеширует в оперативке часто импользуемые данные программ, чтобы программы стартовали шустрее. Но в таком случае,не понятно почему все начинает дико тормозить, при приближении физ. памяти к максимуму. По идее, первой жертвой должны становиться закешированные данные, но по факту обращение критичных к произовдительности системы служб к свопу (apache , Mysql и т.д.) превышает все разумные пределы.
у тебя утечка или в драйвере, или какая-то прога хавает системные объекты и не отдает
важные update-ы, кстати, все ставятся? и опциональные на драйвера?
посмотри, кстати, какой у тебя процесс так активно хавает дескрипторы?
хм, дров-то там нет практически и все родные интеловские
ну это может не мешать им косячить: тот же дисковый контроллер, к примеру
Других вариантов не было Используются только те дрова ,которые шли с интеловским серваком.
посмотри, кстати, какой у тебя процесс так активно хавает дескрипторы?
mysql
если его завершить, то что происходит?
а коннекты с ним закрываются при использовании?
Коннекты к б/д не закрываются, т.к. есть пул коннактов от сервера приложений к базе, а производительность связки app server+db в приоритете
Да ничего не просиходит, ну м.б. на 1% понизится память.дескрипторы хотя бы до какого числа сливаются?
mysql юзает порядка 60,000 дексрипоторов , остальные процессы не более 1000
mysql юзает порядка 60,000 дексрипоторов , остальные процессы не более 1000а где остальные 90тыс. дескрипторов? т.е. сумма дескрипторов по процессам не равна кол-ву на закладке performance?
это ты мечтаешь, чтобы так было, а в реальной жизни цифры другие.
Сумма по дескрипоторам совпадает с общей.
Кстати, сразу поле перезаугрзки используется 3 гига физ памяти. Сумма по процессам 1,8 гига
Сумма по дескрипоторам совпадает с общей.и сколько их при этом?
зы
как память начнет течь пофиксируй периодически (штук 10-20 точек)
как растет память
как меняется кол-во дескрипторов
как меняется разница между суммой памяти по процессорам и на закладке performance
как меняется разница между суммой дескрипторов по процессорам и на закладке performance
Сейчас просто перегрузил системуА почему ты просто не стал по одному аккуратно гасить сторонние процессы, чтобы понять, кто ест память?
А ещё проделай всё это на контроллерах домена, с сохранением всех юзеров и настроек - та ещё развлекуха. Вот здесь точно нужен именно шаман: нужно делать действия в коммандной строке, которые из гуи не делаются в принципе и документацию на это ещё поискать надо.
В юнихах как раз всё наоборот - нужен специалис, а не шаман. Даже при переустановке всё просто - все настройки в текстовых конфигах (иногда в БД - ldap и тд) - значит легко переносятся.
В кратце, это технология кеширует в оперативке часто импользуемые данные программ, чтобы программы стартовали шустрее. Но в таком случае,не понятно почему все начинает дико тормозить, при приближении физ. памяти к максимуму. По идее, первой жертвой должны становиться закешированные данные, но по факту обращение критичных к произовдительности системы служб к свопу (apache , Mysql и т.д.) превышает все разумные пределы.блин, отключи своп, сказал я тебе уже
посмотри что будет
блин, отключи своп, сказал я тебе ужесвоп-то здесь причем. при наличии утечки без свопа в определенный момент всё навернется да и всё
посмотри что будет
зы
начиная с висты отключение свопа, вообще, ни на что не влияет, это только xp(и более ранние версии) любили в своп сбрасывать редкоиспользуемую память
Сейчас просто перегрузил систему...Сумма по дескрипоторам совпадает с общей.Ну и перегружай шедуллером хоть каждую ночь (ну это я загнул, а вот раз в неделю в ночь в субботу на воскресенье).
Это может быть проблематично для систем 7*24, но такие системы обычно состоят не из одного сервака, и эти серваки можно перегружать по очереди...
а windows работает сам без всяких шамановэто сказки
Других вариантов не было Используются только те дрова ,которые шли с интеловским серваком.есть вариант обновить дрова с сайта производителя сервера/компонентов
Или там ещё какой то appserver чисто виндовый, и неохота разносить ? А чё за тогда appserver ? Какой нить .NET самописный, раз виндоус специфик ?
ps. в свете упоминания об "apache , Mysql и т.д.", вообще непонятно становится, почему винда ?
Утечка пока не обнаружилась:
Никакими стресс-тестами не удается эмулировать ситуацию с утчекой.
Как только оставляешь на пару дней, сразу пару гигов уже сжирает, уже задолбался...
Неопознанных дескриптеров не наблюдается, сумма совпадает в общим кол-вом, вот память уходит и уходит.
Винда, т.к на серваке крутится еще 1С веб сервер.Ни разу не оправдание. Он и под апач нормально поднимается под lin. Да и Сам сервер приложений 1С под линух есть (другое дело, что нормально на нём только типовые последние можно пускать - ибо Postgree и нужны управляемые блокировки в быдлокоде процедур проведения)
А если по схеме web <-> файл-серверный вариант, то и сервер приложений 1С не нужен.
В общем всё ещё непонятно почему винда. Если испоьзуется виндовый сервер приложений 1С - то где mssql ? Если он на другой тачке - то туда и 1С запихните, и извне каким нить нгинксом проксируйте. Если mssql -нет, то значит postgree и один фиг на lin всё нада переводить. А если mssql на этой же - то он и жрёт всю память. (Из моего опыта - он съедает всю свободную оперативу и обратно особо не отдаёт ... если только по потребности)
А если mssql на этой же - то он и жрёт всю память. (Из моего опыта - он съедает всю свободную оперативу и обратно особо не отдаёт ... если только по потребности)млин, счетчики зачем ТС постил?
раз сумма счетчиков не бьется с общим кол-вом занятой памяти, то проблема не штатная, и не внутри процессов
Автор постоянно чего то недоговаривает. Мб и со счётчиками недоговорил что то.
И вообще, сейчас не обсуждаем выбор ОС...
Память течет где-то в обход процессов.
Дело осложняется тем, что ключевые процессы на серваке нельзя выключать на долгое время. А за короткое время непонятно, является ли отключенный процесс причиной утечки или нет. Для выявления нудно день хотя бы.
Думаю, сейчас заюзать какой-нибудь процесс трейсер на предмет ловли утечек или закрытых/незакрытых дескриптеров и по-очереди наблюдать за подозрительными процессами
раз сумма счетчиков не бьется с общим кол-вом занятой памяти, то проблема не штатная, и не внутри процессов
Все верно, сумма всех процессов рабочего набора до 10 раз меньше общей использованной памяти
подними виртуалку на той же машине, и начни переставлять процессы из основной машины в виртуалку при этом замапив чем-нибудь порты
подними виртуалку на той же машине, и начни переставлять процессы из основной машины в виртуалку при этом замапив чем-нибудь портыЭто пипец. Кто-нибудь может объяснить мне, почему ТС до сих пор не попробовал банальное, простейшее решение: аккуратно выключать все процессы и смотреть, когда освободится память?
UPD. И да, мне кажется, я уже понял в чем причина. Но подождем ТС.
По-моему, писал уже сверху, память зажирается постепенно, а сервер рабочий и отключать что-то надолго нельзя.
Так не надо надолго. Вечером взял и за 15 минут все проверил.
А если течёт что-то ситемное, а не прикладное?
Начать стоит с проверки прикладного. Это же очевидно.
Это пипец. Кто-нибудь может объяснить мне, почему ТС до сих пор не попробовал банальное, простейшее решение: аккуратно выключать все процессы и смотреть, когда освободится память?скорее всего, даже если убить все процессы, то память не появится.
скорее всего, даже если убить все процессыМсье теоретик?
Первое, что нужно сделать, ТС так и не сделал. Свою версию я уже озвучил , расскажу, как ИС выполнит то, что нужно было сделать давно.
я согласен, что главное в таких делах - это трясти и делить проблему на части
Согласен. Теперь ждем ТС.
скорее всего, даже если убить все процессы, то память не появится.
Конечно же, все подозрительные процессы были поочередно отключены.
Результат - память процессов освобождалась, утекшая память - нет
Более того, как только поочередно включал процессы, проводил стресс тестирование (насколько это возможно было по результату утечек не было выявлено. В коротком промежутке времени обнаружить утечку не удалось.
Попробовал переставить драйвера котроллера диска и сетевухи, посмотрим.
Так же каждые 2 часа записывается состояние памяти. Таким образом, можно понять когда происходит наибольший прирост утчеки и сузить круг подозрительных процессов
Какие еще есть способы проверить - ума не приложу
можно настроить perfmon (выбрав нужные счетчики это тебе даст более детализированное представление о ситуации.
так и сделал
UPD. И да, мне кажется, я уже понял в чем причина. Но подождем ТС.
Ну так в чем?
Думаю, что в скуле. Ты его выключал?
Вчера ночью сам обнаружил, что под существенной нагрузкой на mssql память начинает ощутимо расти, за пару часов на 500MB.
Погуглив, нашел решение похожей проблемы ссылка
Оказалось, что все дело в buffer pool.
ограничить максимальный размер памяти в Sql Server.
Всем спасибо за обсуждение
На будущее учти, что проще всего врубить perfmon.msc, добавить счетчик свободной памяти и по одному завершать сначала прикладные приложения, потом сторонние службы и смотреть на то, когда освободится память. В большинстве случаев на этом этапе проблему удастся решить.
Да, еще вопрос. А какой скуль был, 32 бита или 64?
Оставить комментарий
anton7805
Имеем Windows Server 2008 R2, 8GB оперативкиСтолкнулся со следующей проблемой:
Win server через несколько дней после перезагрузки съедает почти всю физическую память и ,соответственно, сильно тормозит.
Файл подкачки определяется системой автоматически.
Если подсчитать всю память всех процессов в системе, то получается 760 MB. Но реально отжирается 7300MB, т.е. почти в 10 раз больше.
Подскажите, в какую сторону копать?