Содержание
- Ошибок страницы физической памяти в секунду windows 10 что это
- Ошибки распределения памяти могут быть вызваны медленным ростом файла страницы
- Симптомы
- Причина
- Обходной путь
- Статус
- Дополнительная информация
- Ошибок страницы физической памяти в секунду windows 10 что это
- Инструкция при указанной ошибке памяти Windows 10 [решено]
- Как исправить Инструкция при указанной ошибке памяти в Windows 10
- 1. Запустите SFC & DISM Scan
- 2. Сканирование на наличие вредоносных программ
- 4. Выделите виртуальную память
- 5. Запустите обновления Windows
- 6. Сбросить систему
- Ошибок страницы физической памяти в секунду windows 10 что это
Ошибок страницы физической памяти в секунду windows 10 что это
Сообщения: 10692
Благодарности: 2886
•Ошибок отсутствия страницы в памяти/сек – ошибка отсутствия в памяти. Как правило, она может быть критической (но не всегда). Также может указывать на нехватку оперативной памяти. Такая ошибка возникает в тех случаях, когда система использует файл подкачки, который находится на жестком диске. Жесткий диск работает медленнее оперативной памяти, и использование файла подкачки снижает быстродействие системы. Если подобные ошибки слишком часто возникают, лучше расширить оперативную память.
1. Откройте командную строку с Административными правами.
2. В командной строке введите следующую команду и нажмите клавишу ВВОД:
По окончании выложите C:windowsLogsCBS CBS.log в архиве.
Запустите AIDA64 Portable от имени Администратора > Сверху, в окне программы AIDA нажмите «Отчет» >
Далее > выберите «Аппаратные разделы» > Далее > Простой текст > Готово > Сохранить в файл.
Файл, в архиве, подкрепите к сообщению.
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Сообщения: 3
Благодарности:
Доброго времени суток господа.
так. что еще можно сказать то.
Пожалуй это и натолкнуло меня написать пост именно здесь, а не создавать тему, т.к. на первый взгляд кажется всё это тесно связано между собой.
По поводу раммапа, похоже там критических утечек нет, но на мой взгляд многовато всё же для 2-х гигов)
Источник
Ошибки распределения памяти могут быть вызваны медленным ростом файла страницы
В этой статье предусмотрен обход ошибок, которые возникают при частом выделении памяти приложениями.
Применяется к: Windows 10 — все выпуски
Исходный номер КБ: 4055223
Симптомы
Приложения, которые часто выделяют память, могут испытывать случайные ошибки из памяти. Такие ошибки могут привести к другим ошибкам или неожиданному поведению в затронутых приложениях.
Причина
Сбои в распределении памяти могут возникать из-за задержки, связанные с ростом размера файла страницы для поддержки дополнительных требований к памяти в системе. Возможной причиной этих сбоев является настройка размера файла страницы в качестве «автоматического». Автоматический размер файла страницы начинается с небольшого файла страницы и автоматически растет по мере необходимости.
Система IO состоит из многих компонентов, включая фильтры файловой системы, файловые системы, фильтры громкости, фильтры хранения и т. д. Определенные компоненты в данной системе могут привести к вариативности в росте файлов страниц.
Обходной путь
Чтобы решить эту проблему, необходимо вручную настроить размер файла страницы. Для этого выполните следующие действия:
Статус
Корпорация Майкрософт подтвердила, что это проблема в Windows 10.
Дополнительная информация
При использовании компиляторов Microsoft Visual C++ (cl.exe) могут возникнуть такие ошибки сборки, как следующие:
Дополнительные сведения об ошибках компиляторов Visual C++ и о том, как их обойти, см. в материале Precompiled Header (PCH) issues and recommendations.
Источник
Ошибок страницы физической памяти в секунду windows 10 что это
Сообщения: 10692
Благодарности: 2886
•Ошибок отсутствия страницы в памяти/сек – ошибка отсутствия в памяти. Как правило, она может быть критической (но не всегда). Также может указывать на нехватку оперативной памяти. Такая ошибка возникает в тех случаях, когда система использует файл подкачки, который находится на жестком диске. Жесткий диск работает медленнее оперативной памяти, и использование файла подкачки снижает быстродействие системы. Если подобные ошибки слишком часто возникают, лучше расширить оперативную память.
1. Откройте командную строку с Административными правами.
2. В командной строке введите следующую команду и нажмите клавишу ВВОД:
По окончании выложите C:windowsLogsCBS CBS.log в архиве.
Запустите AIDA64 Portable от имени Администратора > Сверху, в окне программы AIDA нажмите «Отчет» >
Далее > выберите «Аппаратные разделы» > Далее > Простой текст > Готово > Сохранить в файл.
Файл, в архиве, подкрепите к сообщению.
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Сообщения: 3
Благодарности:
Доброго времени суток господа.
так. что еще можно сказать то.
Пожалуй это и натолкнуло меня написать пост именно здесь, а не создавать тему, т.к. на первый взгляд кажется всё это тесно связано между собой.
По поводу раммапа, похоже там критических утечек нет, но на мой взгляд многовато всё же для 2-х гигов)
Источник
Инструкция при указанной ошибке памяти Windows 10 [решено]
Инструкция в 0x00 ### ссылается на память в 0x00 ###. Ошибка чтения памяти : ошибка, связанная с ОЗУ, связанная как с системными, так и с сторонними приложениями, работающими в Windows 10. Обычно это означает, что приложение не может прочитать назначенную физическую память.
Один пользователь поделился своими проблемами на форуме Microsoft.
Когда я закрываю/перезагружаю Windows зависает с этой ошибкой
explorer.exe – ошибка приложения
Инструкция по адресу 0x00007ffee39ecc60 ссылается на память
0x0000000000000000. Память не может быть прочитана.
Местоположение памяти команд меняется с каждым отключением, но 00007ff …………. постоянно …
Узнайте, как решить эту проблему, следуя приведенным ниже инструкциям.
Как исправить Инструкция при указанной ошибке памяти в Windows 10
1. Запустите SFC & DISM Scan
Кроме того, вы можете использовать проактивные инструменты, такие как CCleaner или другие инструменты для очистки ПК, чтобы восстановить поврежденные системные файлы в реестре Windows.
2. Сканирование на наличие вредоносных программ
4. Выделите виртуальную память
5. Запустите обновления Windows
6. Сбросить систему
В качестве альтернативы, вы должны сканировать вашу оперативную память на наличие ошибок и убедиться, что вы соответствуете системным требованиям для запуска уязвимого приложения или игры, которая вызывает ошибку. Система Windows 10 требует как минимум 1 ГБ ОЗУ, но в идеале вы бы выбрали как минимум 2 ГБ.
Источник
Ошибок страницы физической памяти в секунду windows 10 что это
Что это такое? Как понимать его показания? В справке не описано.
Это нормально, когда у программы он растет со скоростью 2-3 тыс единиц в секунду?
← →
homm © ( 2007-05-01 14:42 ) [1]
> Что это такое? Как понимать его показания?
Да не паникуй ты так. Это количество страниц, к котрым онадобился доступ когда их не было в оперативной памяти. А если еще точнее, то количество страниц, к котрым онадобился доступ когда их не было в рабочем наборе приложения, что не значит что их не было в оперативе.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Нет 🙂 Пора идти в магазин за оперативой 🙂
← →
Eraser © ( 2007-05-01 14:42 ) [2]
> [0] DVM © (01.05.07 13:42)
> Что это такое?
это ошибка доступа к странице памяти, при её возникновении системы выгружает нужную страницу из файла подкачки в ОЗУ.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
не очень (хотя тут нужно смотреть конкретную ситуацию), нужно побольше ОЗУ.
← →
homm © ( 2007-05-01 15:05 ) [3]
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Я счас подергал окошко оперы за края, погонял апатчь, до 5 тышь в секунду доходило. Вот же уродский оптимайзер памяти у винды 🙁 Так что пара тысячь в секунду — вполне нормально.
procedure FastDIB2Bitmap(Src:TFastDIB;Dst:TBitmap);
begin
if Src.Handle<>0 then
begin
Dst.Handle:=Src.Handle;
// bitmaps can be selected for only one device context at a time
if(Src.hDC<>0)and Src.FreeDC then DeleteDC(Src.hDC);
if(Src.hPen<>0)then DeleteObject(Src.hPen);
if(Src.hFont<>0)then DeleteObject(Src.hFont);
if(Src.hBrush<>0)then DeleteObject(Src.hBrush);
Src.hDC:=0;
Src.FreeDC:=False;
Src.FreeBits:=False;
Src.FreeHandle:=False;
end;
end;
Вот такие преобразования моя программа делает до 200 в секунду.
Если я комментирую преобразование, то счетчик не растет практически.
Памяти 100% достаточно. Ее количество не влияет на этот счетчик. 2Гб ее.
← →
antonn © ( 2007-05-01 16:43 ) [6]
> ну если это не дает лишней нагрузки на CPU
Не нагрузки не дает абсолютно. Память не растет, никакие ресурсы не уменьшаются.
← →
Eraser © ( 2007-05-01 17:28 ) [8]
> [6] antonn © (01.05.07 16:43)
в Делфи идентификатор объекта является указателем на объект )
← →
antonn © ( 2007-05-01 18:09 ) [9]
> в Делфи идентификатор объекта является указателем на объект
> )
:Р
По логике, нужно сначала всё освободить, потом присваивать Handle. Возможно, и освобождать необязательно, во всяком случае в примере Bumpmap сделано так:
procedure TBumpForm.SetThumbnail(Image:TImage; Bmp:TFastDIB);
var
Tmp: TFastDIB;
begin
Tmp:=TFastDIB.Create;
Tmp.SetSize(105,105,Bmp.Bpp);
if Tmp.Bpp=8 then
begin
Tmp.Colors^:=Bmp.Colors^;
Tmp.UpdateColors;
end;
Bilinear(Bmp,Tmp);
Tmp.FreeHandle:=False;
Image.Picture.Bitmap.Handle:=Tmp.Handle;
Tmp.Free;
Image.Refresh;
end;
А вообще, откуда надобность выполнять подобное преобразование 200 раз/c? Может лучше выкинуть TBitmap и выполнять все операции с TFastDIB? А то мне сейчас лень смотреть, но подозреваю, что в TBitmap.SetHandle куда больше действий, чем просто присвоение переменной.
> А вообще, откуда надобность выполнять подобное преобразование
> 200 раз/c?
Да есть вот задачи. Видеонаблюдение.
> Может лучше выкинуть TBitmap и выполнять все операции с
> TFastDIB?
Так и планирую сделать, но есть свои грабли и очень много вносить изменений. В принципе FastDIB тут прикручен из-за фантастически быстрой SetSize.
> TBitmap.SetHandle куда больше действий, чем просто присвоение
> переменной.
Да, там намного больше действий.
> Sapersky
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование? У меня вот какая штука:
Во вторичном потоке происходит декодирование JPEG в TFastDIB. Далее этот FastDIB с сообщением высылается в основной поток и там преобразуется в TBitmap, который и отрисовывается при необходимости в основном потоке по WM_PAINT. Так сделано сейчас. Так вот получается, что и основной поток и вторичный на деле же работают с одним и тем же хэндлом одного и того же битмапа по сути. Ведь FastDIB2Bitmap просто присваивает хэндл. И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Или я неправ? Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
← →
homm © ( 2007-05-01 22:06 ) [12]
Хм, а я кажеться понял почему так много ошибок доступа в этом месте. Потому что по Dst.Handle:=Src.Handle; Dst фактически заново создаеться, под новый битмап выделяеться память. А менеджер памяти в виндовсе имеет такое замечательное свойство, не выделять память физически, а лишь помечать страницы как зарезервированые. А вот когда уже на новый хэндл уже копируеться изображение со старого, идет непосредственное обращение к страницам, и они выделяются физически (в ОП), а счетчик ошибок доступа мотает. Так что эта строчка имхо — большая дыра в производительности. Попробуй как минимум создавать TBitmap как DIB, как максимум, здесь вобще нужно логику программы переделывать.
← →
homm © ( 2007-05-01 22:11 ) [13]
> Так вот получается, что и основной поток и вторичный на
> деле же работают с одним и тем же хэндлом одного и того
> же битмапа по сути.
Скорее всего нет. Как я понимаю невозможно преобразовать DDB в DIB не выделив под него второй хэндл.
> Потому что по Dst.Handle:=Src.Handle; Dst фактически заново
> создаеться, под новый битмап выделяеться память
Да, получается, что так.
> Так что эта строчка имхо — большая дыра в производительности.
Может быть, но это далеко не самая тяжелая операция. Декодирование из JPEG во вторичных потоках занимает в тысячи раз больше времени.
← →
Sapersky ( 2007-05-02 00:38 ) [16]
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование?
Dst.MakeCopy(Src, True); // делается SetSize и Move
Или можно (при UseGDI = True) установить размер Dst = Src, потом
Src.Draw(Dst.hDC, 0, 0); // фактически BitBlt
удобно тем, что конвертирует битмапы разных форматов, хотя, как правило, не очень качественно. Впрочем, для этого есть FConvert.pas.
И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
← →
Игорь Шевченко © ( 2007-05-02 10:29 ) [17]
> Вот же уродский оптимайзер памяти у винды
Слону, сам понимаешь, пофиг.
> Sapersky (02.05.07 00:38) [16]
Большое спасибо. Метод TFastDib.MakeCopy() действительно то что нужно.
Счетчики ошибок страницы не растут. Утечек тоже нет. Как обстоят дела с производительностью такого решения выясняю.
Источник
Adblock
detector
Что это такое? Как понимать его показания? В справке не описано.
Это нормально, когда у программы он растет со скоростью 2-3 тыс единиц в секунду?
← →
homm © ( 2007-05-01 14:42 ) [1]
> Что это такое? Как понимать его показания?
Да не паникуй ты так. Это количество страниц, к котрым онадобился доступ когда их не было в оперативной памяти. А если еще точнее, то количество страниц, к котрым онадобился доступ когда их не было в рабочем наборе приложения, что не значит что их не было в оперативе.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Нет 🙂 Пора идти в магазин за оперативой 🙂
← →
Eraser © ( 2007-05-01 14:42 ) [2]
> [0] DVM © (01.05.07 13:42)
> Что это такое?
это ошибка доступа к странице памяти, при её возникновении системы выгружает нужную страницу из файла подкачки в ОЗУ.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
не очень (хотя тут нужно смотреть конкретную ситуацию), нужно побольше ОЗУ.
← →
homm © ( 2007-05-01 15:05 ) [3]
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Я счас подергал окошко оперы за края, погонял апатчь, до 5 тышь в секунду доходило. Вот же уродский оптимайзер памяти у винды 🙁 Так что пара тысячь в секунду — вполне нормально.
← →
DVM © ( 2007-05-01 15:35 ) [4]
Я вот попытался локализовать в своей программе место, которое более всего увеличивает счетчик — оказалось это место в FastDIB. А именно:
procedure FastDIB2Bitmap(Src:TFastDIB;Dst:TBitmap);
begin
if Src.Handle<>0 then
begin
Dst.Handle:=Src.Handle;
// bitmaps can be selected for only one device context at a time
if(Src.hDC<>0)and Src.FreeDC then DeleteDC(Src.hDC);
if(Src.hPen<>0)then DeleteObject(Src.hPen);
if(Src.hFont<>0)then DeleteObject(Src.hFont);
if(Src.hBrush<>0)then DeleteObject(Src.hBrush);
Src.hDC:=0;
Src.FreeDC:=False;
Src.FreeBits:=False;
Src.FreeHandle:=False;
end;
end;
Вот такие преобразования моя программа делает до 200 в секунду.
Если я комментирую преобразование, то счетчик не растет практически.
Памяти 100% достаточно. Ее количество не влияет на этот счетчик. 2Гб ее.
← →
Eraser © ( 2007-05-01 16:40 ) [5]
ну если это не дает лишней нагрузки на CPU — можно смело забить, если нагрузку дает — исключить вызов FastDIB2Bitmap.
← →
antonn © ( 2007-05-01 16:43 ) [6]
щас может тупой вопрос задам:)
А так — procedure FastDIB2Bitmap(Src:TFastDIB; var Dst:TBitmap);
?
← →
DVM © ( 2007-05-01 17:13 ) [7]
> ну если это не дает лишней нагрузки на CPU
Не нагрузки не дает абсолютно. Память не растет, никакие ресурсы не уменьшаются.
> щас может тупой вопрос задам:)
> А так — procedure FastDIB2Bitmap(Src:TFastDIB; var Dst:TBitmap);
>
> ?
Все то же самое.
← →
Eraser © ( 2007-05-01 17:28 ) [8]
> [6] antonn © (01.05.07 16:43)
в Делфи идентификатор объекта является указателем на объект )
← →
antonn © ( 2007-05-01 18:09 ) [9]
> в Делфи идентификатор объекта является указателем на объект
> )
:Р
← →
Sapersky ( 2007-05-01 20:51 ) [10]
Я вот попытался локализовать в своей программе место, которое более всего увеличивает счетчик — оказалось это место в FastDIB.
По логике, нужно сначала всё освободить, потом присваивать Handle. Возможно, и освобождать необязательно, во всяком случае в примере Bumpmap сделано так:
procedure TBumpForm.SetThumbnail(Image:TImage; Bmp:TFastDIB);
var
Tmp: TFastDIB;
begin
Tmp:=TFastDIB.Create;
Tmp.SetSize(105,105,Bmp.Bpp);
if Tmp.Bpp=8 then
begin
Tmp.Colors^:=Bmp.Colors^;
Tmp.UpdateColors;
end;
Bilinear(Bmp,Tmp);
Tmp.FreeHandle:=False;
Image.Picture.Bitmap.Handle:=Tmp.Handle;
Tmp.Free;
Image.Refresh;
end;
А вообще, откуда надобность выполнять подобное преобразование 200 раз/c? Может лучше выкинуть TBitmap и выполнять все операции с TFastDIB? А то мне сейчас лень смотреть, но подозреваю, что в TBitmap.SetHandle куда больше действий, чем просто присвоение переменной.
Ещё, имейте в виду, что FastGate — это не оригинальный FastLIB. Автор этого модуля уже допускал ляпы при «улучшении» библиотеки, так что аккуратнее с ним (хотя, строго говоря, и «оригинал» не безгрешен).
← →
DVM © ( 2007-05-01 22:03 ) [11]
> А вообще, откуда надобность выполнять подобное преобразование
> 200 раз/c?
Да есть вот задачи. Видеонаблюдение.
> Может лучше выкинуть TBitmap и выполнять все операции с
> TFastDIB?
Так и планирую сделать, но есть свои грабли и очень много вносить изменений. В принципе FastDIB тут прикручен из-за фантастически быстрой SetSize.
> TBitmap.SetHandle куда больше действий, чем просто присвоение
> переменной.
Да, там намного больше действий.
> Sapersky
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование? У меня вот какая штука:
Во вторичном потоке происходит декодирование JPEG в TFastDIB. Далее этот FastDIB с сообщением высылается в основной поток и там преобразуется в TBitmap, который и отрисовывается при необходимости в основном потоке по WM_PAINT. Так сделано сейчас. Так вот получается, что и основной поток и вторичный на деле же работают с одним и тем же хэндлом одного и того же битмапа по сути. Ведь FastDIB2Bitmap просто присваивает хэндл. И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Или я неправ? Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
← →
homm © ( 2007-05-01 22:06 ) [12]
Хм, а я кажеться понял почему так много ошибок доступа в этом месте. Потому что по Dst.Handle:=Src.Handle; Dst фактически заново создаеться, под новый битмап выделяеться память. А менеджер памяти в виндовсе имеет такое замечательное свойство, не выделять память физически, а лишь помечать страницы как зарезервированые. А вот когда уже на новый хэндл уже копируеться изображение со старого, идет непосредственное обращение к страницам, и они выделяются физически (в ОП), а счетчик ошибок доступа мотает. Так что эта строчка имхо — большая дыра в производительности. Попробуй как минимум создавать TBitmap как DIB, как максимум, здесь вобще нужно логику программы переделывать.
← →
homm © ( 2007-05-01 22:11 ) [13]
> Так вот получается, что и основной поток и вторичный на
> деле же работают с одним и тем же хэндлом одного и того
> же битмапа по сути.
Скорее всего нет. Как я понимаю невозможно преобразовать DDB в DIB не выделив под него второй хэндл.
← →
DVM © ( 2007-05-01 22:21 ) [14]
> Потому что по Dst.Handle:=Src.Handle; Dst фактически заново
> создаеться, под новый битмап выделяеться память
Да, получается, что так.
> Так что эта строчка имхо — большая дыра в производительности.
Может быть, но это далеко не самая тяжелая операция. Декодирование из JPEG во вторичных потоках занимает в тысячи раз больше времени.
> как максимум, здесь вобще нужно логику программы переделывать.
Я вот попробовал переделать на TFastDIB в основном потоке — проблема с ошибками страницы исчезла.
← →
DVM © ( 2007-05-01 22:25 ) [15]
Возникла другая проблема — как мне правильно передать с сообщением переменную типа TFastDIB из вторичного потока в первичный с сообщением и присвоить полченное в основном потоке значение переменной в первичном потоке. Просто присваиванием очевидно нельзя — возникают сразу утечки GDI ресурсов (вот здесь отличие от TBITMAP).
← →
Sapersky ( 2007-05-02 00:38 ) [16]
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование?
Dst.MakeCopy(Src, True); // делается SetSize и Move
Или можно (при UseGDI = True) установить размер Dst = Src, потом
Src.Draw(Dst.hDC, 0, 0); // фактически BitBlt
удобно тем, что конвертирует битмапы разных форматов, хотя, как правило, не очень качественно. Впрочем, для этого есть FConvert.pas.
И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
Если вторичный поток не изменяет размер битмапа, т.е. не портит указатель/Handle, то, наверное, можно его спокойно рисовать, в крайнем случае нарисуется половина старого, половина нового. Хотя сам не пробовал, не знаю, как функции GDI отнесутся к тому, что кто-то будет писать в используемую ими область памяти. Можно на всякий случай прицепить к битмапу крит. секцию.
Если изменяет — тогда однозначно нужна или синхронизация, или копирование, или и то, и другое.
Просто присваиванием очевидно нельзя — возникают сразу утечки GDI ресурсов (вот здесь отличие от TBITMAP).
Что такое «присваивание»?
Если Assign — возможно, «аффтар» FastGate с ним напортачил в новой версии, пытаясь добиться того же поведения, что и у TBitmap. В оригинале это поведение довольно специфическое — битмап-источник уничтожается.
В общем, лучше «присваивание» делать как Dst := Src с соответствующей синхронизацией или MakeCopy.
← →
Игорь Шевченко © ( 2007-05-02 10:29 ) [17]
> Вот же уродский оптимайзер памяти у винды
Слону, сам понимаешь, пофиг.
← →
DVM © ( 2007-05-02 13:00 ) [18]
> Sapersky (02.05.07 00:38) [16]
Большое спасибо. Метод TFastDib.MakeCopy() действительно то что нужно.
Счетчики ошибок страницы не растут. Утечек тоже нет. Как обстоят дела с производительностью такого решения выясняю.
Вот тут ответ на твой вопрос:
https://social.technet.microsoft.com/Forums/ru-RU/0e7cb14d-99b8-48bd-aa2c-00594afa2cad/1084108610851080109010861088?forum=vistaru
Если имеется в виду Page Fault то это не ошибки. Это просто значит что запрошеная страница (участок памяти размером 4К) была выгружена на диск и ее потребовалось загрузить в физическую память. Это совершенно нормальное явление в любых ОС с виртуальной памятью.
Черезмерное количество таких явлений однако может привести к снижению производительности и свидетельствует о недостатке физической памяти.
В случае вытесняющего алгоритма операционная система в любой момент времени может прервать выполнение текущего потока и переключить процессор на другой поток. В невытесняющих алгоритмах поток, которому предоставлен процессор, только сам решает, когда передать управление операционной системе.
Алгоритмы с квантованием.
Каждому потоку предоставляется квант времени, в течение которого поток может выполняться на процессоре. По истечении кванта операционная система переключает процессор на следующий поток в очереди. Квант обычно равен целому числу интервалов системного таймера1.
Алгоритмы с приоритетами.
Каждому потоку назначается приоритет (priority) – целое число, обозначающее степень привилегированности потока. Операционная система при наличии нескольких готовых к выполнению потоков выбирает из них поток с наибольшим приоритетом.
В Windows реализован смешанный алгоритм планирования – вытесняющий, на основе квантования и приоритетов.
- Тип многозадачности для приложения DOS
- Гарантии обслуживания
- Планирование процессов переднего плана
- Назначение файла подкачки
- Процессы Р1, Р2, Р3 выделяют 100, 20, 80 Мб памяти. В системе 128Мб ОП. Каков размер занятой памяти в файле подкачки. Какой размер файла подкачки.
- Что такое «страничная ошибка»?
Прерывание 14 —Страничная ошибка(#PF): Intel386 …
Генерируется, если страничный механизм активизирован (CR0.PG = 1) и при трансляции линейного адреса в физический возникает одна из следующих ситуаций:
- элемент таблицы страниц или каталога страниц, используемый при трансляции адреса, имеет нулевой бит присутствия, т.е. нужная таблица страниц или страница не присутствует в физической памяти;
- процедура не располагает уровнем привилегий, достаточным для доступа к выбранной странице или пытается произвести запись в страницу, защищенную от записи для текущего уровня привилегий.
Обработчик страничной ошибки получает информацию о ее причине из двух источников: кода ошибки, помещаемого в стек, и содержимого регистра CR2, который содержит линейный адрес, вызвавший ошибку. Код страничной ошибки имеет специальный формат (рис. 3.7.).
Прерванная программа после устранения причин, вызвавших страничную ошибку (например, загризки страницы в физическую память), может быть продолжена без каких-либо дополнительных корректировок.
Если страничная ошибка была вызвана в связи с нарушением привилегий страничной защиты, то бит доступа (A) в соответствующем элементе каталога страниц устанавливается. Поведение бита доступа в соответствующем элементе таблиц страниц для этого случая не регламентируется в процессорах Intel и может быть разным в различных моделях.
- Высокая интенсивность ошибок страниц говорит о:
— ненадежности оперативной памяти
Графа «Ошибок отсутствия страницы в памяти/сек.»
В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.
О чем говорят ошибки отсутствия страницы в памяти
Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.
В дальнейшем при чтении этих данных с диска возникает ошибка отсутствия страницы в памяти. Это вполне нормально, но если ошибки происходят одновременно для разных процессов, системе требуется дополнительное время для чтения данных с диска. Слишком частые ошибки отсутствия страницы в памяти, соответственно, снижают быстродействие системы. Вам наверняка доводилось наблюдать неожиданное замедление работы всех приложений, которое затем также неожиданно прекращалось. Почти наверняка это замедление было связано с активным перераспределением данных между физической памятью и подкачкой.
Отсюда следует вывод: если ошибки отсутствия страницы в памяти для того или иного процесса происходят слишком часто и притом регулярно, компьютеру не хватает физической памяти.
Чтобы было удобнее наблюдать за процессами, вызывающими частые ошибки отсутствия страницы в памяти, можно отметить их флажками. При этом выбранные процессы переместятся наверх списка, а в графике ошибок отсутствия страницы в памяти будут представлены оранжевой кривой.
Стоит учитывать, что распределение памяти зависит от целого ряда других факторов, и мониторинг ошибок отсутствия страницы в памяти — не лучший и не единственный способ выявления проблем. Тем не менее, он может послужить неплохой отправной точкой для наблюдения.
- Как формируется приоритет потока в Windows
В ОС Windows реализовано вытесняющее приоритетное планирование, когда каждому потоку присваивается определенное числовое значение — приоритет, в соответствии с которым ему выделяется процессор. Потоки с одинаковыми приоритетами планируются согласно алгоритму Round Robin (карусель). Важным достоинством системы является возможность вытеснения потоков, работающих в режиме ядра — код исполнительной системы полностью реентерабелен. Не вытесняются лишь потоки, удерживающие спин-блокировку (см. Синхронизация потоков ). Поэтому спин-блокировки используются с большой осторожностью и устанавливаются на минимальное время.
В системе предусмотрено 32 уровня приоритетов. Шестнадцать значений приоритетов (16-31) соответствуют группе приоритетов реального времени, пятнадцать значений (1-15) предназначены для обычных потоков, и значение 0 зарезервировано для системного потока обнуления страниц (см. рис. 6.2).
Рис. 6.2.Приоритеты потоков
Чтобы избавить пользователя от необходимости запоминать числовые значения приоритетов и иметь возможность модифицировать планировщик, разработчики ввели в систему слой абстрагирования приоритетов. Например, класс приоритета для всех потоков конкретного процесса можно задать с помощью набора констант-параметров функции SetPriorityClass, которые могут иметь следующие значения:
- реального времени ( REALTIME_PRIORITY_CLASS ) — 24
- высокий ( HIGH_PRIORITY_CLASS ) — 13
- выше нормы ( ABOVE_NORMAL_PRIORITY_CLASS ) 10
- нормальный ( NORMAL_PRIORITY_CLASS ) — 8
- ниже нормы ( BELOW_NORMAL_PRIORITY_CLASS ) — 6
- и неработающий ( IDLE_PRIORITY_CLASS ) 4
Относительный приоритет потока устанавливается аналогичными параметрами функции SetThreadPriority:
Совокупность из шести классов приоритетов процессов и семи классов приоритетов потоков образует 42 возможные комбинации и позволяет сформировать так называемый базовый приоритет потока
Базовый приоритет процесса и первичного потока по умолчанию равен значению из середины диапазонов приоритетов процессов (24, 13, 10, 8, 6 или 4). Смена приоритета процесса влечет за собой смену приоритетов всех его потоков, при этом их относительные приоритеты остаются без изменений.
Приоритеты с 16 по 31 в действительности приоритетами реального времени не являются, поскольку в рамках поддержки мягкого реального времени, которая реализована в ОС Windows, никаких гарантий относительно сроков выполнения потоков не дается. Это просто более высокие приоритеты, которые зарезервированы для системных потоков и тех потоков, которым такой приоритет дает пользователь с административными правами. Тем не менее, наличие приоритетов реального времени, а также вытесняемость кода ядра, локализация страниц памяти (см. Функционирование менеджера памяти ) и ряд дополнительных возможностей — все это позволяет выполнять в среде ОС Windows приложения мягкого реального времени, например, мультимедийные. Системный поток с нулевым приоритетом занимается обнулением страниц памяти. Обычные пользовательские потоки могут иметь приоритеты от 1 до 15.
Содержание
- Статьи к прочтению:
- Пусть говорят — «Вы мне не верили, а я умерла»Выпуск от 11.09.217
- Похожие статьи:
- Рекомендуем к прочтению
Статьи к прочтению:
Пусть говорят — «Вы мне не верили, а я умерла»Выпуск от 11.09.217
Похожие статьи:
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших либо в сторону младших адресов так, чтобы все…
На рис. 10 показана схема страничного распределения памяти. Виртуальное адресное пространство каждого процесса делится на части одинакового,…
Содержание
- 1 100 ошибок страниц диск что это
- 1.1 Анализ использования памяти с помощью Монитора ресурсов Windows 7
- 1.2 100% загрузка диска без чтения и записи
- 1.3 100 ошибок страниц диск что это
- 1.4 О чем говорят ошибки отсутствия страницы в памяти
- 1.5 ВНИМАНИЕ! САЙТ ЛЕКЦИИ.ОРГ проводит недельный опрос. ПРИМИТЕ УЧАСТИЕ. ВСЕГО 1 МИНУТА.
- 1.6 100 ошибок страниц диск что это
- 1.7 Диск загружен на 100% в Windows 10
- 1.8 Способ 1: Отключить поиск в Windows
- 1.9 Способ 2: Отключить SuperFetch
- 1.10 Способ 3: Выполнить проверку диска
- 1.11 Способ 4: Отключить виртуальную память
- 1.12 Способ 5: Временно отключить антивирусные приложения
- 1.13 Способ 6: Изменить настройки Chrome и Skype
Анализ использования памяти с помощью Монитора ресурсов Windows 7
В своей прошлой статье «Как использовать Монитор ресурсов Windows 7 для эффективной диагностики» я рассказал о возможностях Монитора ресурсов Windows 7 (Resource Monitor), объяснил, как с его помощью наблюдать за распределением системных ресурсов между процессами и службами, а также упомянул, что его можно использовать для решения конкретных задач — например, для анализа расходования памяти. Именно об этом и пойдет речь в данной статье.
Немного о памяти
Прежде чем приступать к анализу, коротко расскажу о том, как Microsoft Windows 7 управляет памятью. После этого вам будет проще понять, какая информация представлена в Мониторе ресурсов Windows 7.
Диспетчер памяти Windows 7 создает виртуальную систему памяти, которая состоит из доступной физической RAM и файла подкачки на жестком диске. Это позволяет операционной системе выделять блоки памяти фиксированной длины (страницы) с последовательными адресами в физической и виртуальной памяти.
Запуск Монитора ресурсов Windows 7
Чтобы запустить Монитор ресурсов Windows 7, откройте меню «Пуск» (Start), введите в строке поиска «Resmon.exe» и нажмите [Enter]. В открывшемся окне выберите вкладку «Память» (Memory, рис. A).
На вкладке «Память» есть таблица «Процессы» (Processes, рис. B), в которой перечислены все запущенные процессы, а сведения об используемой памяти разбиты на несколько категорий.
В колонке «Образ» (Image) указывается имя исполняемого файла процесса. Процессы, запущенные приложениями, узнать очень легко — например, процесс «notepad.exe» со всей очевидностью принадлежит Блокноту (Notepad). Процессы с именем «svchost.exe» представляют различные службы операционной системы. Название службы указывается в скобках рядом с именем процесса.
Графа «ИД процесса»
В колонке «ИД процесса» (PID) указывается номер процесса — уникальное сочетание цифр, позволяющее идентифицировать запущенный процесс.
В столбце «Завершено» (Commit) указывается объем виртуальной памяти в килобайтах, зарезервированный системой для данного процесса. Сюда входит и используемая физическая память, и сохраненные в файле подкачки страницы.
Графа «Рабочий набор»
В графе «Рабочий набор» (Working Set) указывается объем физической памяти в килобайтах, используемой процессом в данный момент времени. Рабочий набор складывается из общей и частной памяти.
В колонке «Общий» (Shareable) указан объем физической памяти в килобайтах, которую данный процесс использует совместно с другими. Использование одного сегмента памяти или страницы подкачки для родственных процессов позволяет сэкономить место в памяти. При этом физически сохраняется только одна копия страницы, которая затем сопоставляется с виртуальным адресным пространством других процессов, которые к ней обращаются. Например, все процессы, инициированные системными библиотеками DLL — Ntdll, Kernel32, Gdi32 и User32 — используют общую память.
В столбце «Частный» (Private) указывается объем физической памяти в килобайтах, используемой исключительно данным процессом. Именно это значение позволяет определить, сколько памяти нужно тому или иному приложению для работы.
Графа «Ошибок отсутствия страницы в памяти/сек.»
В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.
О чем говорят ошибки отсутствия страницы в памяти
Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.
В дальнейшем при чтении этих данных с диска возникает ошибка отсутствия страницы в памяти. Это вполне нормально, но если ошибки происходят одновременно для разных процессов, системе требуется дополнительное время для чтения данных с диска. Слишком частые ошибки отсутствия страницы в памяти, соответственно, снижают быстродействие системы. Вам наверняка доводилось наблюдать неожиданное замедление работы всех приложений, которое затем также неожиданно прекращалось. Почти наверняка это замедление было связано с активным перераспределением данных между физической памятью и подкачкой.
Отсюда следует вывод: если ошибки отсутствия страницы в памяти для того или иного процесса происходят слишком часто и притом регулярно, компьютеру не хватает физической памяти.
Чтобы было удобнее наблюдать за процессами, вызывающими частые ошибки отсутствия страницы в памяти, можно отметить их флажками. При этом выбранные процессы переместятся наверх списка, а в графике ошибок отсутствия страницы в памяти будут представлены оранжевой кривой.
Стоит учитывать, что распределение памяти зависит от целого ряда других факторов, и мониторинг ошибок отсутствия страницы в памяти — не лучший и не единственный способ выявления проблем. Тем не менее, он может послужить неплохой отправной точкой для наблюдения.
Таблица «Физическая память»
В таблице «Процессы» приводятся детальные сведения о распределении памяти между отдельными процессами, а таблица «Физическая память» (Physical Memory) дает общую картину использования RAM. Ее ключевой компонент — уникальная гистограмма, показанная на рис. C.
Каждая секция гистограммы обозначена собственным цветом и представляет определенную группу страниц памяти. По мере использования системы, диспетчер памяти в фоновом режиме перемещает данные между этими группами, поддерживая тонкий баланс между физической и виртуальной памятью для обеспечения эффективной работы всех приложений. Давайте рассмотрим гистограмму поподробнее.
Секция «Зарезервированное оборудование»
Слева расположена секция «Зарезервированное оборудование» (Hardware Reserved), обозначенная серым цветом: это память, выделенная на нужды подключенного оборудования, которую оно использует для взаимодействия с операционной системой. Зарезервированная для оборудования память заблокирована и недоступна диспетчеру памяти.
Обычно объем памяти, выделенной оборудованию, составляет от 10 до 70 Мбайт, однако этот показатель зависит от конкретной конфигурации системы и в некоторых случаях может достигать нескольких сотен мегабайт. К компонентам, влияющим на объем зарезервированной памяти, относятся:
• BIOS;
• компоненты материнской платы — например, усовершенствованный программируемый контроллер прерываний ввода/вывода (APIC);
• звуковые карты и другие устройства, осуществляющие ввод/вывод с отображением на память;
• шина PCI Express (PCIe);
• видеокарты;
• различные наборы микросхем;
• флеш-накопители.
Некоторые пользователи жалуются, что в их системах для оборудования зарезервировано ненормально много памяти. Мне с такой ситуацией сталкиваться не приходилось и потому я не могу ручаться за действенность предложенного решения, но многие отмечают, что обновление версии BIOS позволяет решить проблему.
Секция «Используется» (In Use, рис C), обозначенная зеленым цветом, представляет количество памяти, используемой системой, драйверами и запущенными процессами. Количество используемой памяти рассчитывается, как значение «Всего» (Total) за вычетом суммы показателей «Изменено» (Modified), «Ожидание» (Standby) и «Свободно» (Free). В свою очередь, значение «Всего» — это показатель «Установлено» (Installed RAM) за вычетом показателя «Зарезервированное оборудование».
Оранжевым цветом выделена секция «Изменено» (Modified), в которой представлена измененная, но не задействованная память. Фактически она не используется, но может быть в любой момент задействована, если снова понадобится. Если память не используется достаточно давно, данные переносятся в файл подкачки, а память переходит в категорию «Ожидание».
Секция «Ожидание», обозначенная синим цветом, представляет страницы памяти, удаленные из рабочих наборов, но по-прежнему с ними связанные. Другими словами, категория «Ожидание» — это фактически кэш. Страницам памяти в этой категории присваивается приоритет от 0 до 7 (максимум). Страницы, связанные с высокоприоритетными процессами, получают максимальный приоритет. Например, совместно используемые процессы обладают высоким приоритетом, поэтому связанным с ними страницам присваивается наивысший приоритет в категории «Ожидание».
Если процессу требуются данные с ожидающей страницы, диспетчер памяти сразу же возвращает эту страницу в рабочий набор. Тем не менее, все страницы в категории «Ожидание» доступны для записи данных от других процессов. Когда процессу требуется дополнительная память, а свободной памяти недостаточно, диспетчер памяти выбирает ожидающую страницу с наименьшим приоритетом, инициализирует ее и выделяет запросившему процессу.
В категории «Свободно», обозначенной голубым цветом, представлены страницы памяти, еще не выделенные ни одному процессу или освободившиеся после завершения процесса. В этой секции отображается как еще не задействованная, так и уже освобожденная память, но на самом деле, еще не задействованная память относится к другой категории — «Нулевые страницы» (Zero Page), которая так называется, потому что эти страницы инициализированы нулевым значением и готовы для использования.
О проблеме свободной памяти
Теперь, когда вы в общих чертах представляете, как работает диспетчер памяти, ненадолго остановимся на распространенном заблуждении, связанном с системой управления памятью в Windows 7. Как видно из рис. C, секция свободной памяти — одна из самых маленьких в гистограмме. Тем не менее, ошибочно на этом основании полагать, будто Windows 7 потребляет чересчур много памяти и что система не может нормально работать, если свободной памяти так мало.
На самом деле, все совсем наоборот. В контексте принятого в Windows 7 подхода к управлению памятью, свободная память бесполезна. Чем больше памяти задействовано, тем лучше. Заполняя память до максимума и постоянно перемещая страницы из одной категории в другую с использованием системы приоритетов, Windows 7 повышает эффективность работы и предотвращает попадание данных в файл подкачки, не давая ошибкам отсутствия страницы в памяти замедлить быстродействие.
Хотите понаблюдать систему управления памятью Windows 7 в действии? Перезагрузите компьютер и сразу же после запуска откройте Монитор ресурсов Windows 7. Перейдите на вкладку «Память» и обратите внимание на соотношение секций в гистограмме физической памяти.
Затем начните запускать приложения. По мере запуска следите за изменением гистограммы. Запустив как можно больше приложений, начните закрывать их по одному и наблюдайте, как изменяется соотношение секций в гистограмме физической памяти.
Проделав этот экстремальный эксперимент, вы поймете, как Windows 7 управляет памятью на вашем конкретном компьютере, и сможете использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти в нормальных условиях повседневной работы.
А что думаете вы?
Нравится ли вам идея использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти? Поделитесь своим мнением в комментариях!
Такая вот ситуация. Во время пользования компьютером случается так что жёсткий диск становится загруженным на 100%, при этом никаких операций записи или чтения не происходит. Доступ к диску также отсутствует, он может перестать определяться диспетчером задач, система может подвиснуть или выкинуть синий экран, правда дампы памяти не сохраняются так как диск по какой-то причине недоступен. Было два синих экрана со следующими сообщениями: UNEXPECTED_STORE_EXCEPTION и PAGE_FAULT_IN_NONPAGED_AREA. После последнего на втором диске сломалась файловая система и пришлось под резервной системой с флешки проводить восстановление ckdsk /f /r для обоих дисков.
Диск вернулся в рабочее состояние но проблема не ушла. У меня 2 диска, система на новом ССД стоит и второй обычный хард-хранилище с программами. Проверка Викторией не нашла ни одного подозрительного сектора, смарт чистый. Но оба диска иногда таким вот образом зависают, чаще зависает хард. Помогает только полный ребут, и даже так система стартует не с первого раза. Менял сата кабель чтобы исключить его брак, но он тут оказался не при чём. Отключал SuperFetch, службу поиска. Никаких изменений.
Небольшая предыстория которая может помочь выявить проблему:
Три года назад, когда на компе ещё стояла Windows 7, а система была на двух хардах, никаких проблем не наблюдалось. Затем был полугодовой период когда компьютер не включался вовсе. Именно после него я заметил странность — во время игр иногда экран становился чёрным и система зависала. При том звук продолжал равномерно играть через колонки, но система не отвечала ни на какие действия и экран не загорался. Тут тоже только ребут помогал. Я подумал что повредил свою видеокарту разгоном (немного подымал частоты и лимит по энергопотреблению GTX 760, но ранее всё был остабильно), и попросту вернул всё на стандартные значения, проблема временно отступила. Далее был куплен ссд на который была поставлена десятка. Затем появились проблемы с чтением у одного из дисков, он попросту пропадал из системы во время сильной нагрузки. Было принято решение его попросту отключить. Проблема снова затихла на некоторое время. Затем была куплена новая видеокарта GTX1080Ti, снова вернулись угасания экрана во время игр. Под синтетическими тестами фурмарк и одновременно тесты в АИДА64 проблема не проявлялась, Даже при повышении лимита по питанию система не выходила из строя. Но в играх случались чёрные экраны и довольно часто. Было принято решение понизить энергопотребление карты до 50%, это решило проблему. С недавних пор вернулись проблемы с дисками, о которых я тут и пишу. Собственно вопрос, кто может быть виновником проблемы: БП на 620 ватт или материнская плата? Или может быть есть другие варианты? Новый БП я уже заказал, так как похоже что системе может не хватать питания. Температуры на элементах системы в пределах нормы по спецификациям. Система, видеокарта и сата кабель менялись, даже новый ссд проблемный. Проблема непостоянна и не оставляет никаких логов, отловить сложно.
100 ошибок страниц диск что это
Что это такое? Как понимать его показания? В справке не описано.
Это нормально, когда у программы он растет со скоростью 2-3 тыс единиц в секунду?
← →
homm © ( 2007-05-01 14:42 ) [1]
> Что это такое? Как понимать его показания?
Да не паникуй ты так. Это количество страниц, к котрым онадобился доступ когда их не было в оперативной памяти. А если еще точнее, то количество страниц, к котрым онадобился доступ когда их не было в рабочем наборе приложения, что не значит что их не было в оперативе.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Нет 🙂 Пора идти в магазин за оперативой 🙂
← →
Eraser © ( 2007-05-01 14:42 ) [2]
> [0] DVM © (01.05.07 13:42)
> Что это такое?
это ошибка доступа к странице памяти, при её возникновении системы выгружает нужную страницу из файла подкачки в ОЗУ.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
не очень (хотя тут нужно смотреть конкретную ситуацию), нужно побольше ОЗУ.
← →
homm © ( 2007-05-01 15:05 ) [3]
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Я счас подергал окошко оперы за края, погонял апатчь, до 5 тышь в секунду доходило. Вот же уродский оптимайзер памяти у винды 🙁 Так что пара тысячь в секунду — вполне нормально.
← →
DVM © ( 2007-05-01 15:35 ) [4]
Я вот попытался локализовать в своей программе место, которое более всего увеличивает счетчик — оказалось это место в FastDIB. А именно:
procedure FastDIB2Bitmap(Src:TFastDIB;Dst:TBitmap);
begin
if Src.Handle<>0 then
begin
Dst.Handle:=Src.Handle;
// bitmaps can be selected for only one device context at a time
if(Src.hDC<>0)and Src.FreeDC then DeleteDC(Src.hDC);
if(Src.hPen<>0)then DeleteObject(Src.hPen);
if(Src.hFont<>0)then DeleteObject(Src.hFont);
if(Src.hBrush<>0)then DeleteObject(Src.hBrush);
Src.hDC:=0;
Src.FreeDC:=False;
Src.FreeBits:=False;
Src.FreeHandle:=False;
end;
end;
Вот такие преобразования моя программа делает до 200 в секунду.
Если я комментирую преобразование, то счетчик не растет практически.
Памяти 100% достаточно. Ее количество не влияет на этот счетчик. 2Гб ее.
← →
Eraser © ( 2007-05-01 16:40 ) [5]
ну если это не дает лишней нагрузки на CPU — можно смело забить, если нагрузку дает — исключить вызов FastDIB2Bitmap.
← →
antonn © ( 2007-05-01 16:43 ) [6]
щас может тупой вопрос задам:)
А так — procedure FastDIB2Bitmap(Src:TFastDIB; var Dst:TBitmap);
?
← →
DVM © ( 2007-05-01 17:13 ) [7]
> ну если это не дает лишней нагрузки на CPU
Не нагрузки не дает абсолютно. Память не растет, никакие ресурсы не уменьшаются.
> щас может тупой вопрос задам:)
> А так — procedure FastDIB2Bitmap(Src:TFastDIB; var Dst:TBitmap);
>
> ?
Все то же самое.
← →
Eraser © ( 2007-05-01 17:28 ) [8]
> [6] antonn © (01.05.07 16:43)
в Делфи идентификатор объекта является указателем на объект )
← →
antonn © ( 2007-05-01 18:09 ) [9]
> в Делфи идентификатор объекта является указателем на объект
> )
:Р
← →
Sapersky ( 2007-05-01 20:51 ) [10]
Я вот попытался локализовать в своей программе место, которое более всего увеличивает счетчик — оказалось это место в FastDIB.
По логике, нужно сначала всё освободить, потом присваивать Handle. Возможно, и освобождать необязательно, во всяком случае в примере Bumpmap сделано так:
procedure TBumpForm.SetThumbnail(Image:TImage; Bmp:TFastDIB);
var
Tmp: TFastDIB;
begin
Tmp:=TFastDIB.Create;
Tmp.SetSize(105,105,Bmp.Bpp);
if Tmp.Bpp=8 then
begin
Tmp.Colors^:=Bmp.Colors^;
Tmp.UpdateColors;
end;
Bilinear(Bmp,Tmp);
Tmp.FreeHandle:=False;
Image.Picture.Bitmap.Handle:=Tmp.Handle;
Tmp.Free;
Image.Refresh;
end;
А вообще, откуда надобность выполнять подобное преобразование 200 раз/c? Может лучше выкинуть TBitmap и выполнять все операции с TFastDIB? А то мне сейчас лень смотреть, но подозреваю, что в TBitmap.SetHandle куда больше действий, чем просто присвоение переменной.
Ещё, имейте в виду, что FastGate — это не оригинальный FastLIB. Автор этого модуля уже допускал ляпы при «улучшении» библиотеки, так что аккуратнее с ним (хотя, строго говоря, и «оригинал» не безгрешен).
← →
DVM © ( 2007-05-01 22:03 ) [11]
> А вообще, откуда надобность выполнять подобное преобразование
> 200 раз/c?
Да есть вот задачи. Видеонаблюдение.
> Может лучше выкинуть TBitmap и выполнять все операции с
> TFastDIB?
Так и планирую сделать, но есть свои грабли и очень много вносить изменений. В принципе FastDIB тут прикручен из-за фантастически быстрой SetSize.
> TBitmap.SetHandle куда больше действий, чем просто присвоение
> переменной.
Да, там намного больше действий.
> Sapersky
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование? У меня вот какая штука:
Во вторичном потоке происходит декодирование JPEG в TFastDIB. Далее этот FastDIB с сообщением высылается в основной поток и там преобразуется в TBitmap, который и отрисовывается при необходимости в основном потоке по WM_PAINT. Так сделано сейчас. Так вот получается, что и основной поток и вторичный на деле же работают с одним и тем же хэндлом одного и того же битмапа по сути. Ведь FastDIB2Bitmap просто присваивает хэндл. И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Или я неправ? Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
← →
homm © ( 2007-05-01 22:06 ) [12]
Хм, а я кажеться понял почему так много ошибок доступа в этом месте. Потому что по Dst.Handle:=Src.Handle; Dst фактически заново создаеться, под новый битмап выделяеться память. А менеджер памяти в виндовсе имеет такое замечательное свойство, не выделять память физически, а лишь помечать страницы как зарезервированые. А вот когда уже на новый хэндл уже копируеться изображение со старого, идет непосредственное обращение к страницам, и они выделяются физически (в ОП), а счетчик ошибок доступа мотает. Так что эта строчка имхо — большая дыра в производительности. Попробуй как минимум создавать TBitmap как DIB, как максимум, здесь вобще нужно логику программы переделывать.
← →
homm © ( 2007-05-01 22:11 ) [13]
> Так вот получается, что и основной поток и вторичный на
> деле же работают с одним и тем же хэндлом одного и того
> же битмапа по сути.
Скорее всего нет. Как я понимаю невозможно преобразовать DDB в DIB не выделив под него второй хэндл.
← →
DVM © ( 2007-05-01 22:21 ) [14]
> Потому что по Dst.Handle:=Src.Handle; Dst фактически заново
> создаеться, под новый битмап выделяеться память
Да, получается, что так.
> Так что эта строчка имхо — большая дыра в производительности.
Может быть, но это далеко не самая тяжелая операция. Декодирование из JPEG во вторичных потоках занимает в тысячи раз больше времени.
> как максимум, здесь вобще нужно логику программы переделывать.
Я вот попробовал переделать на TFastDIB в основном потоке — проблема с ошибками страницы исчезла.
← →
DVM © ( 2007-05-01 22:25 ) [15]
Возникла другая проблема — как мне правильно передать с сообщением переменную типа TFastDIB из вторичного потока в первичный с сообщением и присвоить полченное в основном потоке значение переменной в первичном потоке. Просто присваиванием очевидно нельзя — возникают сразу утечки GDI ресурсов (вот здесь отличие от TBITMAP).
← →
Sapersky ( 2007-05-02 00:38 ) [16]
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование?
Dst.MakeCopy(Src, True); // делается SetSize и Move
Или можно (при UseGDI = True) установить размер Dst = Src, потом
Src.Draw(Dst.hDC, 0, 0); // фактически BitBlt
удобно тем, что конвертирует битмапы разных форматов, хотя, как правило, не очень качественно. Впрочем, для этого есть FConvert.pas.
И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
Если вторичный поток не изменяет размер битмапа, т.е. не портит указатель/Handle, то, наверное, можно его спокойно рисовать, в крайнем случае нарисуется половина старого, половина нового. Хотя сам не пробовал, не знаю, как функции GDI отнесутся к тому, что кто-то будет писать в используемую ими область памяти. Можно на всякий случай прицепить к битмапу крит. секцию.
Если изменяет — тогда однозначно нужна или синхронизация, или копирование, или и то, и другое.
Просто присваиванием очевидно нельзя — возникают сразу утечки GDI ресурсов (вот здесь отличие от TBITMAP).
Что такое «присваивание»?
Если Assign — возможно, «аффтар» FastGate с ним напортачил в новой версии, пытаясь добиться того же поведения, что и у TBitmap. В оригинале это поведение довольно специфическое — битмап-источник уничтожается.
В общем, лучше «присваивание» делать как Dst := Src с соответствующей синхронизацией или MakeCopy.
← →
Игорь Шевченко © ( 2007-05-02 10:29 ) [17]
> Вот же уродский оптимайзер памяти у винды
Слону, сам понимаешь, пофиг.
← →
DVM © ( 2007-05-02 13:00 ) [18]
> Sapersky (02.05.07 00:38) [16]
Большое спасибо. Метод TFastDib.MakeCopy() действительно то что нужно.
Счетчики ошибок страницы не растут. Утечек тоже нет. Как обстоят дела с производительностью такого решения выясняю.
О чем говорят ошибки отсутствия страницы в памяти
ВНИМАНИЕ! САЙТ ЛЕКЦИИ.ОРГ проводит недельный опрос. ПРИМИТЕ УЧАСТИЕ. ВСЕГО 1 МИНУТА.
Вытесняющие/невытесняющие алгоритмы.
В случае вытесняющего алгоритма операционная система в любой момент времени может прервать выполнение текущего потока и переключить процессор на другой поток. В невытесняющих алгоритмах поток, которому предоставлен процессор, только сам решает, когда передать управление операционной системе.
Алгоритмы с квантованием.
Каждому потоку предоставляется квант времени, в течение которого поток может выполняться на процессоре. По истечении кванта операционная система переключает процессор на следующий поток в очереди. Квант обычно равен целому числу интервалов системного таймера 1 .
Алгоритмы с приоритетами.
Каждому потоку назначается приоритет (priority) – целое число, обозначающее степень привилегированности потока. Операционная система при наличии нескольких готовых к выполнению потоков выбирает из них поток с наибольшим приоритетом.
В Windows реализован смешанный алгоритм планирования – вытесняющий, на основе квантования и приоритетов.
- Тип многозадачности для приложения DOS
- Гарантии обслуживания
- Планирование процессов переднего плана
- Назначение файла подкачки
- Процессы Р1, Р2, Р3 выделяют 100, 20, 80 Мб памяти. В системе 128Мб ОП. Каков размер занятой памяти в файле подкачки. Какой размер файла подкачки.
- Что такое «страничная ошибка»?
Прерывание 14 —Страничная ошибка(#PF): Intel386 …
Генерируется, если страничный механизм активизирован (CR0.PG = 1) и при трансляции линейного адреса в физический возникает одна из следующих ситуаций:
- элемент таблицы страниц или каталога страниц, используемый при трансляции адреса, имеет нулевой бит присутствия, т.е. нужная таблица страниц или страница не присутствует в физической памяти;
- процедура не располагает уровнем привилегий, достаточным для доступа к выбранной странице или пытается произвести запись в страницу, защищенную от записи для текущего уровня привилегий.
Обработчик страничной ошибки получает информацию о ее причине из двух источников: кода ошибки, помещаемого в стек, и содержимого регистра CR2, который содержит линейный адрес, вызвавший ошибку. Код страничной ошибки имеет специальный формат (рис. 3.7.).
Прерванная программа после устранения причин, вызвавших страничную ошибку (например, загризки страницы в физическую память), может быть продолжена без каких-либо дополнительных корректировок.
Если страничная ошибка была вызвана в связи с нарушением привилегий страничной защиты, то бит доступа (A) в соответствующем элементе каталога страниц устанавливается. Поведение бита доступа в соответствующем элементе таблиц страниц для этого случая не регламентируется в процессорах Intel и может быть разным в различных моделях.
- Высокая интенсивность ошибок страниц говорит о:
— ненадежности оперативной памяти
Графа «Ошибок отсутствия страницы в памяти/сек.»
В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.
О чем говорят ошибки отсутствия страницы в памяти
Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.
В дальнейшем при чтении этих данных с диска возникает ошибка отсутствия страницы в памяти. Это вполне нормально, но если ошибки происходят одновременно для разных процессов, системе требуется дополнительное время для чтения данных с диска. Слишком частые ошибки отсутствия страницы в памяти, соответственно, снижают быстродействие системы. Вам наверняка доводилось наблюдать неожиданное замедление работы всех приложений, которое затем также неожиданно прекращалось. Почти наверняка это замедление было связано с активным перераспределением данных между физической памятью и подкачкой.
Отсюда следует вывод: если ошибки отсутствия страницы в памяти для того или иного процесса происходят слишком часто и притом регулярно, компьютеру не хватает физической памяти.
Чтобы было удобнее наблюдать за процессами, вызывающими частые ошибки отсутствия страницы в памяти, можно отметить их флажками. При этом выбранные процессы переместятся наверх списка, а в графике ошибок отсутствия страницы в памяти будут представлены оранжевой кривой.
Стоит учитывать, что распределение памяти зависит от целого ряда других факторов, и мониторинг ошибок отсутствия страницы в памяти — не лучший и не единственный способ выявления проблем. Тем не менее, он может послужить неплохой отправной точкой для наблюдения.
- Как формируется приоритет потока в Windows
Приоритеты
В ОС Windows реализовано вытесняющее приоритетное планирование, когда каждому потоку присваивается определенное числовое значение — приоритет, в соответствии с которым ему выделяется процессор. Потоки с одинаковыми приоритетами планируются согласно алгоритму Round Robin (карусель). Важным достоинством системы является возможность вытеснения потоков, работающих в режиме ядра — код исполнительной системы полностью реентерабелен. Не вытесняются лишь потоки, удерживающие спин-блокировку (см. «Синхронизация потоков» ). Поэтому спин-блокировки используются с большой осторожностью и устанавливаются на минимальное время.
В системе предусмотрено 32 уровня приоритетов. Шестнадцать значений приоритетов (16-31) соответствуют группе приоритетов реального времени, пятнадцать значений (1-15) предназначены для обычных потоков, и значение 0 зарезервировано для системного потока обнуления страниц (см. рис. 6.2).
Рис. 6.2.Приоритеты потоков
Чтобы избавить пользователя от необходимости запоминать числовые значения приоритетов и иметь возможность модифицировать планировщик, разработчики ввели в систему слой абстрагирования приоритетов. Например, класс приоритета для всех потоков конкретного процесса можно задать с помощью набора констант-параметров функции SetPriorityClass, которые могут иметь следующие значения:
- реального времени ( REALTIME_PRIORITY_CLASS ) — 24
- высокий ( HIGH_PRIORITY_CLASS ) — 13
- выше нормы ( ABOVE_NORMAL_PRIORITY_CLASS ) 10
- нормальный ( NORMAL_PRIORITY_CLASS ) — 8
- ниже нормы ( BELOW_NORMAL_PRIORITY_CLASS ) — 6
- и неработающий ( IDLE_PRIORITY_CLASS ) 4
Относительный приоритет потока устанавливается аналогичными параметрами функции SetThreadPriority:
Совокупность из шести классов приоритетов процессов и семи классов приоритетов потоков образует 42 возможные комбинации и позволяет сформировать так называемый базовый приоритет потока
Базовый приоритет процесса и первичного потока по умолчанию равен значению из середины диапазонов приоритетов процессов (24, 13, 10, 8, 6 или 4). Смена приоритета процесса влечет за собой смену приоритетов всех его потоков, при этом их относительные приоритеты остаются без изменений.
Приоритеты с 16 по 31 в действительности приоритетами реального времени не являются, поскольку в рамках поддержки мягкого реального времени, которая реализована в ОС Windows, никаких гарантий относительно сроков выполнения потоков не дается. Это просто более высокие приоритеты, которые зарезервированы для системных потоков и тех потоков, которым такой приоритет дает пользователь с административными правами. Тем не менее, наличие приоритетов реального времени, а также вытесняемость кода ядра, локализация страниц памяти (см. «Функционирование менеджера памяти» ) и ряд дополнительных возможностей — все это позволяет выполнять в среде ОС Windows приложения мягкого реального времени, например, мультимедийные. Системный поток с нулевым приоритетом занимается обнулением страниц памяти. Обычные пользовательские потоки могут иметь приоритеты от 1 до 15.
100 ошибок страниц диск что это
Здравствуйте, Alexander_fx, Вы писали:
A_>Что за напасть, как отловить.
Никак и не надо. Это механизм работы со swap файлом. Если страница памяти выгружена в swap, windows генерит исключение ошибки доступа к странице, и обработчик исключения загружает страницу со swap файла.
С уважением, Gleb.
Здравствуйте, GlebZ, Вы писали:
GZ>Здравствуйте, Alexander_fx, Вы писали:
A_>>Что за напасть, как отловить.
GZ>Никак и не надо. Это механизм работы со swap файлом. Если страница памяти выгружена в swap, windows генерит исключение ошибки доступа к странице, и обработчик исключения загружает страницу со swap файла.
GZ>С уважением, Gleb.
Интересно почему винды память моего приложения так часто в своп заганяют?
это не есть гуд, т.к. приложение критично ко времени исполнения.
А памяти оно 100 метров ест при наличии 2 гигов
Здравствуйте, Alexander_fx, Вы писали:
A_>Интересно почему винды память моего приложения так часто в своп заганяют?
A_>это не есть гуд, т.к. приложение критично ко времени исполнения.
A_>А памяти оно 100 метров ест при наличии 2 гигов
для оптимизации рабочего набора программ на Visual C++ есть утилита Smooth Working Set (SWS) (подробности здесь
Автор(ы): Джон Роббинс
Ошибки — жуткая гадость. Многоточие. Ошибки являются причиной обреченных
на гибель проектов с сорванными сроками, ночными бдениями и опостылевшими
коллегами. Ошибки могут превратить вашу жизнь в кошмар, поскольку, если
изрядное их число затаится в вашем продукте, пользователи могут прекратить
его применение, и вы потеряете работу. Ошибки — серьезный бизнес.
Здравствуйте, Alexander_fx, Вы писали:
A_>Интересно почему винды память моего приложения так часто в своп заганяют?
A_>это не есть гуд, т.к. приложение критично ко времени исполнения.
A_>А памяти оно 100 метров ест при наличии 2 гигов
Не обращай внимание на это. Максимум что ты можешь сделать, это испортить работу самой OS. Хотя и это практически невозможно. Ошибка страницы — это нормальная, стандартная ситуация предназначенная для работы windows. Даже при выделении страницы памяти, ты получишь ошибку выделения(по крайней мере в Windows 2000). Просто сначало выделяется дескриптор памяти. А потом, при обращении к этой странице, по ошибке ОС определяет что это не просто объява о том что память нужна, а то что реально и действительно нужна. Не обращай внимание.
Диск загружен на 100% в Windows 10
Если ПК под управлением Windows 10 (иногда и Windows стал работать очень медленно при минимальном количестве запущенных приложений, возможно возникла проблема с HDD. Если жесткий диск используется на 100%, у него отсутствуют резервы для выполнения прочих задач, поэтому скорость работы компьютера резко снижается. Чтобы убедиться в наличии проблемы, необходимо запустить Диспетчер задач и посмотреть соответствующее значение в таблице («Диск»). Существует несколько способов решения проблемы, применение каждого из которых зависит от причины её возникновения. Рекомендуется начать с первого способа и последовательно продвигаться по списку вниз.
Способ 1: Отключить поиск в Windows
Данный сервис предназначен для быстрого поиска данных внутри системы. Его можно отключить, особенно если в качестве проводника на компьютере используется Total Commander или его аналог. «Поиск в Windows» может быть отключен временно, чтобы убедиться в том, что причина заключается именно в данной службе. При последующем запуске системы сервис будет доступен снова.
Необходимо выполнить следующие действия:
- Запустить командную строку от имени администратора;
- В открывшемся окне консоли ввести команду net.exe stop «Windows search» ;
- Нажать Enter для подтверждения ввода.
Протестируйте работу ПК. Если проблема с загрузкой жесткого диска решена, можно отключить «Windows search» навсегда:
- Нажмите Windows + R;
- Введите в текстовом поле команду services.msc ;
- Найдите службу «Windows search«;
- Нажмите правой кнопкой мыши, откройте окно «Свойства»;
- Напротив записи «Тип запуска» выберите пункт списка «Отключена»;
- Нажмите «Применить» и «ОК».
Способ 2: Отключить SuperFetch
Эта технология позволяет ускорить время загрузки ОС и часто используемых приложений. Но пользователи Windows 8 и более поздних версий заметили, что она может стать причиной использования жесткого диска на 100%.
Чтобы остановить службу, необходимо:
- Запустить командную строку от имени администратора;
- В открывшемся окне консоли ввести команду net.exe stop superfetch ;
- Нажать Enter для подтверждения ввода.
Способ 3: Выполнить проверку диска
Для проверки тома нужно выполнить следующие действия:
- Запустить командную строку от имени администратора;
- Ввести команду chkdsk.exe c: /f (если появится сообщение о невозможности выполнить проверку сейчас, нажмите «Y» и «Enter», чтобы запустить процесс после перезагрузки системы);
- Нажмите «Enter» и дождитесь окончания проверки.
Способ 4: Отключить виртуальную память
Данный вид памяти позволяет расширить объем ОЗУ на ПК. Если оперативная память заполнена, ОС выделяет часть основной памяти компьютера для записи данных приложений. Отключение данной функции может решить проблему со 100% загрузкой HDD.
Нужно выполнить следующие действия:
- Нажать правой кнопкой мыши на «Этот компьютер» и открыть «Свойства»;
- Найти в левой части окна пункт «Дополнительные параметры системы»;
- Выбрать вкладку «Дополнительно» и нажать кнопку «Параметры» в области «Быстродействие»;
- Выбрать вкладку «Дополнительно», найти область с названием «Виртуальная память» и нажать кнопку «Изменить»;
- Убрать отметку напротив записи «Автоматически выбирать объем файла подкачки»;
- Выберите значение «Без файла подкачки», чтобы система не смогла использовать область памяти HDD.
Если объем ОЗУ небольшой, следует указать размер файла подкачки, значение которого должно в 1,5 раза превышать ОЗУ.
Способ 5: Временно отключить антивирусные приложения
Если на ПК недавно были установлены дополнительные антивирусные ПО (Norton, Kaspersky, AVG или другие), необходимо отключить их на время чтобы выяснить, не являются ли они причиной использования жесткого диска на 100%.
В ОС Windows 10 имеется собственно антивирусное приложение, способное обеспечить надлежащую защиту от вредоносных приложений. Можно смело отключить на время стороннее ПО без существенного риска заразить ПК вирусами.
Способ 6: Изменить настройки Chrome и Skype
В некоторых случаях совместная работа этих двух приложений способна вызвать проблему загрузки HDD на 100%.
Чтобы внести настройки, нужно выполнить следующие действия:
- Откройте браузер Chrome и зайдите в его настройки;
- Прокрутите страницу вниз и нажмите на ссылку «Дополнительные»;
- Отключите функцию «Использовать подсказки для ускорения загрузки страниц»;
- Отключите Skype, если приложение запущено;
- Перейдите в Проводнике Windows в папку «C:Program Files (x86)SkypePhone»;
- Нажмите правой кнопкой мыши на значок приложения Skype.exe и выберите пункт «Свойства»;
- Выберите вкладку «Безопасность» и нажмите «Изменить»;
- Выберите пункт «ВСЕ ПАКЕТЫ ПРИЛОЖЕНИЯ» и установите разрешение для записи;
- Нажмите кнопки «Применить» и «ОК».
Если предложенные выше способы не помогли в решении проблемы, возможно компьютер заражен вирусами или жесткий диск имеет физические повреждения. В первом случае необходимо полностью просканировать систему на наличие вирусов. Во втором – выполнить замену HDD.
Авторизуясь, вы даете согласие на обработку персональных данных.
Какое допустимое количество ошибок страницы физической памяти?
Есть небольшой сервер под управлением Windows Server 2016.
После замены планки памяти наблюдаю в мониторе ресурсов много «ошибок страницы физической памяти»:
Допустимы ли такие значения, или планка битая и лучше её заменить?
-
Вопрос заданболее трёх лет назад
-
14932 просмотра
Это не имеет никакого отношения к повреждению оперативной памяти.
Это часть механизма свопирования — ошибка означает, что при попытке обратиться к памяти выяснилось, что это участок сброшен из оперативной памяти на диск.
Пригласить эксперта
-
Показать ещё
Загружается…
08 июн. 2023, в 20:17
5000 руб./за проект
08 июн. 2023, в 20:14
2000 руб./за проект
08 июн. 2023, в 18:48
1000 руб./в час
Минуточку внимания
- Remove From My Forums
монитор ресурсов, память и ошибки страниц.
-
Вопрос
-
Имеется Vista HP. На днях при возникновении очередных тормозов в системе, занялся внимательным изучением монитора ресурсов. При этом заметил, что периодически в окошке «Память» появляются сообщения об ошибках страниц(диск)/ мин. причём они возникают при работе разных програм, в том числе и системных) и это похоже совпадает с наблюдаемыми тормозами в работе.( счёт порой идёт на сотни ошибок). Поиск на просторах интернета ничего вразумительного не дал. Что это означает? И как это лечить?
Ответы
-
Если имеется в виду Page Fault то это не ошибки. Это просто значит что запрошеная страница (участок памяти размером 4К) была выгружена на диск и ее потребовалось загрузить в физическую память. Это совершенно нормальное явление в любых ОС с виртуальной памятью.
Черезмерное количество таких явлений однако может привести к снижению производительности и свидетельствует о недостатке физической памяти.
Сотни страниц — это кстати пустяки.
This posting is provided «AS IS» with no warranties, and confers no rights.
-
Помечено в качестве ответа
8 декабря 2009 г. 8:34
-
Помечено в качестве ответа
Содержание
- Ошибок страницы физической памяти в секунду windows 10 что это
- Ошибки распределения памяти могут быть вызваны медленным ростом файла страницы
- Симптомы
- Причина
- Обходной путь
- Статус
- Дополнительная информация
- Ошибок страницы физической памяти в секунду windows 10 что это
- Инструкция при указанной ошибке памяти Windows 10 [решено]
- Как исправить Инструкция при указанной ошибке памяти в Windows 10
- 1. Запустите SFC & DISM Scan
- 2. Сканирование на наличие вредоносных программ
- 4. Выделите виртуальную память
- 5. Запустите обновления Windows
- 6. Сбросить систему
- Ошибок страницы физической памяти в секунду windows 10 что это
Ошибок страницы физической памяти в секунду windows 10 что это
Сообщения: 10692
Благодарности: 2886
•Ошибок отсутствия страницы в памяти/сек – ошибка отсутствия в памяти. Как правило, она может быть критической (но не всегда). Также может указывать на нехватку оперативной памяти. Такая ошибка возникает в тех случаях, когда система использует файл подкачки, который находится на жестком диске. Жесткий диск работает медленнее оперативной памяти, и использование файла подкачки снижает быстродействие системы. Если подобные ошибки слишком часто возникают, лучше расширить оперативную память.
1. Откройте командную строку с Административными правами.
2. В командной строке введите следующую команду и нажмите клавишу ВВОД:
По окончании выложите C:windowsLogsCBS CBS.log в архиве.
Запустите AIDA64 Portable от имени Администратора > Сверху, в окне программы AIDA нажмите «Отчет» >
Далее > выберите «Аппаратные разделы» > Далее > Простой текст > Готово > Сохранить в файл.
Файл, в архиве, подкрепите к сообщению.
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Сообщения: 3
Благодарности: 0
Доброго времени суток господа.
так. что еще можно сказать то.
Пожалуй это и натолкнуло меня написать пост именно здесь, а не создавать тему, т.к. на первый взгляд кажется всё это тесно связано между собой.
По поводу раммапа, похоже там критических утечек нет, но на мой взгляд многовато всё же для 2-х гигов)
Источник
Ошибки распределения памяти могут быть вызваны медленным ростом файла страницы
В этой статье предусмотрен обход ошибок, которые возникают при частом выделении памяти приложениями.
Применяется к: Windows 10 — все выпуски
Исходный номер КБ: 4055223
Симптомы
Приложения, которые часто выделяют память, могут испытывать случайные ошибки из памяти. Такие ошибки могут привести к другим ошибкам или неожиданному поведению в затронутых приложениях.
Причина
Сбои в распределении памяти могут возникать из-за задержки, связанные с ростом размера файла страницы для поддержки дополнительных требований к памяти в системе. Возможной причиной этих сбоев является настройка размера файла страницы в качестве «автоматического». Автоматический размер файла страницы начинается с небольшого файла страницы и автоматически растет по мере необходимости.
Система IO состоит из многих компонентов, включая фильтры файловой системы, файловые системы, фильтры громкости, фильтры хранения и т. д. Определенные компоненты в данной системе могут привести к вариативности в росте файлов страниц.
Обходной путь
Чтобы решить эту проблему, необходимо вручную настроить размер файла страницы. Для этого выполните следующие действия:
Статус
Корпорация Майкрософт подтвердила, что это проблема в Windows 10.
Дополнительная информация
При использовании компиляторов Microsoft Visual C++ (cl.exe) могут возникнуть такие ошибки сборки, как следующие:
Дополнительные сведения об ошибках компиляторов Visual C++ и о том, как их обойти, см. в материале Precompiled Header (PCH) issues and recommendations.
Источник
Ошибок страницы физической памяти в секунду windows 10 что это
Сообщения: 10692
Благодарности: 2886
•Ошибок отсутствия страницы в памяти/сек – ошибка отсутствия в памяти. Как правило, она может быть критической (но не всегда). Также может указывать на нехватку оперативной памяти. Такая ошибка возникает в тех случаях, когда система использует файл подкачки, который находится на жестком диске. Жесткий диск работает медленнее оперативной памяти, и использование файла подкачки снижает быстродействие системы. Если подобные ошибки слишком часто возникают, лучше расширить оперативную память.
1. Откройте командную строку с Административными правами.
2. В командной строке введите следующую команду и нажмите клавишу ВВОД:
По окончании выложите C:windowsLogsCBS CBS.log в архиве.
Запустите AIDA64 Portable от имени Администратора > Сверху, в окне программы AIDA нажмите «Отчет» >
Далее > выберите «Аппаратные разделы» > Далее > Простой текст > Готово > Сохранить в файл.
Файл, в архиве, подкрепите к сообщению.
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Сообщения: 3
Благодарности: 0
Доброго времени суток господа.
так. что еще можно сказать то.
Пожалуй это и натолкнуло меня написать пост именно здесь, а не создавать тему, т.к. на первый взгляд кажется всё это тесно связано между собой.
По поводу раммапа, похоже там критических утечек нет, но на мой взгляд многовато всё же для 2-х гигов)
Источник
Инструкция при указанной ошибке памяти Windows 10 [решено]
Инструкция в 0x00 ### ссылается на память в 0x00 ###. Ошибка чтения памяти : ошибка, связанная с ОЗУ, связанная как с системными, так и с сторонними приложениями, работающими в Windows 10. Обычно это означает, что приложение не может прочитать назначенную физическую память.
Один пользователь поделился своими проблемами на форуме Microsoft.
Когда я закрываю/перезагружаю Windows зависает с этой ошибкой
explorer.exe – ошибка приложения
Инструкция по адресу 0x00007ffee39ecc60 ссылается на память
0x0000000000000000. Память не может быть прочитана.
Местоположение памяти команд меняется с каждым отключением, но 00007ff …………. постоянно …
Узнайте, как решить эту проблему, следуя приведенным ниже инструкциям.
Как исправить Инструкция при указанной ошибке памяти в Windows 10
1. Запустите SFC & DISM Scan
Кроме того, вы можете использовать проактивные инструменты, такие как CCleaner или другие инструменты для очистки ПК, чтобы восстановить поврежденные системные файлы в реестре Windows.
2. Сканирование на наличие вредоносных программ
4. Выделите виртуальную память
5. Запустите обновления Windows
6. Сбросить систему
В качестве альтернативы, вы должны сканировать вашу оперативную память на наличие ошибок и убедиться, что вы соответствуете системным требованиям для запуска уязвимого приложения или игры, которая вызывает ошибку. Система Windows 10 требует как минимум 1 ГБ ОЗУ, но в идеале вы бы выбрали как минимум 2 ГБ.
Источник
Ошибок страницы физической памяти в секунду windows 10 что это
Что это такое? Как понимать его показания? В справке не описано.
Это нормально, когда у программы он растет со скоростью 2-3 тыс единиц в секунду?
← →
homm © ( 2007-05-01 14:42 ) [1]
> Что это такое? Как понимать его показания?
Да не паникуй ты так. Это количество страниц, к котрым онадобился доступ когда их не было в оперативной памяти. А если еще точнее, то количество страниц, к котрым онадобился доступ когда их не было в рабочем наборе приложения, что не значит что их не было в оперативе.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Нет 🙂 Пора идти в магазин за оперативой 🙂
← →
Eraser © ( 2007-05-01 14:42 ) [2]
> [0] DVM © (01.05.07 13:42)
> Что это такое?
это ошибка доступа к странице памяти, при её возникновении системы выгружает нужную страницу из файла подкачки в ОЗУ.
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
не очень (хотя тут нужно смотреть конкретную ситуацию), нужно побольше ОЗУ.
← →
homm © ( 2007-05-01 15:05 ) [3]
> Это нормально, когда у программы он растет со скоростью
> 2-3 тыс единиц в секунду?
Я счас подергал окошко оперы за края, погонял апатчь, до 5 тышь в секунду доходило. Вот же уродский оптимайзер памяти у винды 🙁 Так что пара тысячь в секунду — вполне нормально.
procedure FastDIB2Bitmap(Src:TFastDIB;Dst:TBitmap);
begin
if Src.Handle<>0 then
begin
Dst.Handle:=Src.Handle;
// bitmaps can be selected for only one device context at a time
if(Src.hDC<>0)and Src.FreeDC then DeleteDC(Src.hDC);
if(Src.hPen<>0)then DeleteObject(Src.hPen);
if(Src.hFont<>0)then DeleteObject(Src.hFont);
if(Src.hBrush<>0)then DeleteObject(Src.hBrush);
Src.hDC:=0;
Src.FreeDC:=False;
Src.FreeBits:=False;
Src.FreeHandle:=False;
end;
end;
Вот такие преобразования моя программа делает до 200 в секунду.
Если я комментирую преобразование, то счетчик не растет практически.
Памяти 100% достаточно. Ее количество не влияет на этот счетчик. 2Гб ее.
← →
antonn © ( 2007-05-01 16:43 ) [6]
> ну если это не дает лишней нагрузки на CPU
Не нагрузки не дает абсолютно. Память не растет, никакие ресурсы не уменьшаются.
← →
Eraser © ( 2007-05-01 17:28 ) [8]
> [6] antonn © (01.05.07 16:43)
в Делфи идентификатор объекта является указателем на объект )
← →
antonn © ( 2007-05-01 18:09 ) [9]
> в Делфи идентификатор объекта является указателем на объект
> )
:Р
По логике, нужно сначала всё освободить, потом присваивать Handle. Возможно, и освобождать необязательно, во всяком случае в примере Bumpmap сделано так:
procedure TBumpForm.SetThumbnail(Image:TImage; Bmp:TFastDIB);
var
Tmp: TFastDIB;
begin
Tmp:=TFastDIB.Create;
Tmp.SetSize(105,105,Bmp.Bpp);
if Tmp.Bpp=8 then
begin
Tmp.Colors^:=Bmp.Colors^;
Tmp.UpdateColors;
end;
Bilinear(Bmp,Tmp);
Tmp.FreeHandle:=False;
Image.Picture.Bitmap.Handle:=Tmp.Handle;
Tmp.Free;
Image.Refresh;
end;
А вообще, откуда надобность выполнять подобное преобразование 200 раз/c? Может лучше выкинуть TBitmap и выполнять все операции с TFastDIB? А то мне сейчас лень смотреть, но подозреваю, что в TBitmap.SetHandle куда больше действий, чем просто присвоение переменной.
> А вообще, откуда надобность выполнять подобное преобразование
> 200 раз/c?
Да есть вот задачи. Видеонаблюдение.
> Может лучше выкинуть TBitmap и выполнять все операции с
> TFastDIB?
Так и планирую сделать, но есть свои грабли и очень много вносить изменений. В принципе FastDIB тут прикручен из-за фантастически быстрой SetSize.
> TBitmap.SetHandle куда больше действий, чем просто присвоение
> переменной.
Да, там намного больше действий.
> Sapersky
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование? У меня вот какая штука:
Во вторичном потоке происходит декодирование JPEG в TFastDIB. Далее этот FastDIB с сообщением высылается в основной поток и там преобразуется в TBitmap, который и отрисовывается при необходимости в основном потоке по WM_PAINT. Так сделано сейчас. Так вот получается, что и основной поток и вторичный на деле же работают с одним и тем же хэндлом одного и того же битмапа по сути. Ведь FastDIB2Bitmap просто присваивает хэндл. И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Или я неправ? Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
← →
homm © ( 2007-05-01 22:06 ) [12]
Хм, а я кажеться понял почему так много ошибок доступа в этом месте. Потому что по Dst.Handle:=Src.Handle; Dst фактически заново создаеться, под новый битмап выделяеться память. А менеджер памяти в виндовсе имеет такое замечательное свойство, не выделять память физически, а лишь помечать страницы как зарезервированые. А вот когда уже на новый хэндл уже копируеться изображение со старого, идет непосредственное обращение к страницам, и они выделяются физически (в ОП), а счетчик ошибок доступа мотает. Так что эта строчка имхо — большая дыра в производительности. Попробуй как минимум создавать TBitmap как DIB, как максимум, здесь вобще нужно логику программы переделывать.
← →
homm © ( 2007-05-01 22:11 ) [13]
> Так вот получается, что и основной поток и вторичный на
> деле же работают с одним и тем же хэндлом одного и того
> же битмапа по сути.
Скорее всего нет. Как я понимаю невозможно преобразовать DDB в DIB не выделив под него второй хэндл.
> Потому что по Dst.Handle:=Src.Handle; Dst фактически заново
> создаеться, под новый битмап выделяеться память
Да, получается, что так.
> Так что эта строчка имхо — большая дыра в производительности.
Может быть, но это далеко не самая тяжелая операция. Декодирование из JPEG во вторичных потоках занимает в тысячи раз больше времени.
← →
Sapersky ( 2007-05-02 00:38 ) [16]
Не подскажите, как правильно скопировать один TFastDIB в другой. Не Assign(), а именно копирование?
Dst.MakeCopy(Src, True); // делается SetSize и Move
Или можно (при UseGDI = True) установить размер Dst = Src, потом
Src.Draw(Dst.hDC, 0, 0); // фактически BitBlt
удобно тем, что конвертирует битмапы разных форматов, хотя, как правило, не очень качественно. Впрочем, для этого есть FConvert.pas.
И пока первичный поток отрисовывает его на окне вторичный ведь может и поменять его содержимое. Так можно делать или надо полностью копироваить битмап в основной поток и там работать с ним?
← →
Игорь Шевченко © ( 2007-05-02 10:29 ) [17]
> Вот же уродский оптимайзер памяти у винды
Слону, сам понимаешь, пофиг.
> Sapersky (02.05.07 00:38) [16]
Большое спасибо. Метод TFastDib.MakeCopy() действительно то что нужно.
Счетчики ошибок страницы не растут. Утечек тоже нет. Как обстоят дела с производительностью такого решения выясняю.
Источник
Содержание1 Хотите следить за показателями аппаратных и программных ресурсов в реальном времени? Вам поможет монитор ресурсов!1.1 Что это?( )1.2 Запуск( )1.3 Обзор( )1.4 ЦП( )1.5 Сеть( )1.6 Диск( … Далее…100 ошибок страниц диск что это?
Инструменты Windows «Менеджер задач» (Task-Manager) и «Монитор ресурсов» (Resource monitor) весьма известны, однако дают лишь поверхностное представление, так как отображают лишь несколько параметров и представляют их не очень гибко. Больше возможностей предлагает «Системный монитор» в версиях Windows 7, 8 и 10.
Системный монитор Windows
Системный монитор Windows
Инструмент, происходящий из семейства Windows Server, может отображать все возможные характеристики в виде графиков, причем многие сотни возможных значений с частично зашифрованными названиями представляют новую задачу. Мы выбрали самые важные из них, которые указывают на типичные затруднения в действующей ОС Windows и расскажем, как их устранить.
В самом благоприятном случае это удается с помощью простых изменений конфигурации или (если первый вариант не помог) путем целенаправленного обновления аппаратного обеспечения.
Системный монитор Windows организует сведения о производительности по дюжине категорий, из которых для домашнего ПК наиболее интересными являются следующие: процессор, ОЗУ, жесткий диск, процессы (включая отдельные программы) и система.
Во всех категориях следует обращать внимание на различные характеристики для того, чтобы определить, вызвана ли проблема производительности только одной программой или она возникает в результате взаимодействия нескольких причин. В первом случае с помощью диспетчера задач или монитора ресурсов вы можете узнать, какая программа является виновником, и «обезвредить» ее.
Во втором случае, если чрезмерный многозадачный режим перегружает процессор или жесткий диск, доступны однозначные индикаторы производительности. С их помощью можно проанализировать все категории вашей системы для поиска и устранения причины «торможения».
Источник: http://zen.yandex.ru/media/ichip.ru/kak-uskorit-windows-poshagovoe-rukovodstvo-chip-5a9fcb53168a91262f4bd8c1
Как исправить ошибку «Использование диска 100%» в Windows 10
Сразу после выявления этой проблемы в Windows было найдено несколько ее причин. Но теперь, спустя некоторое время о сообщении Microsoft об ошибке, ее источников стало выявляться не меньше, а даже больше.
Сразу после выявлении этой проблемы у пользователя есть несколько доступных вариантов. Выполняйте следующие шаги последовательно один за другим, проверяя каждый раз индикатор состояния загрузки диска в «Диспетчере задач».
Обратите внимание, что даже при нахождении решения, Центр обновления Windows с очередными патчами может сбросить сделанные изменения. Так что стоит добавить эту страницу в закладки, чтобы в будущем использовать ее для очередных исправлений.
♥ ПО ТЕМЕ: Как настроить Windows, чтобы извлекать USB-флешки и накопители без использования «Безопасного извлечения».
Источник: http://yablyk.com/480575-disk-full-100-windows/
Отключение индексация и Windows Search
Часто обсуждаемая, кстати, тема. Судя по отзывам пользователей, нередко здесь чаще всего и кроется причина постоянной загруженности диска на 100%. Изначально задуманная для ускорения процесса поиска файлов, служба Windows Search может неслабо нагрузить своей активностью системный диск. Остановить это можно, опять же, нажав знакомую комбинацию «Win+R» и введя «cmd». В появившемся окне командной строки необходимо ввести net.exe stop “Windows search” и подтвердить нажатием «Enter». После небольшого ожидания служба остановится, но полностью активность системного поиска можно остановить, отключив индексацию на диске. Сделать это можно, как и прежде, щелкнув правой кнопкой по диску, и на вкладке «Общие» снять галочку с параметра индексации.
Источник: http://sysadmintips.ru/disk-zagruzhen-100-windows-10.html
100 ошибок страниц диск что это
Здравствуйте, уважаемые гости и читатели блога «IT Техник». После перехода на «десятку» я все чаще начал замечать, что компьютер начинает периодически зависать, а диск загружен на 100% Windows 10 (или почти на сто). Пришлось потратить немало времени, чтобы отыскать суть. Сейчас Вам подробно обо всем расскажу.
Они могут быть самыми разными:
- Вредоносные скрипты, вирусы (об их обнаружении и удалении читайте здесь);
- Обновление приложений и самой ОС;
- Ошибки системного характера;
- Неправильная работа драйверов устройств.
Чаще всего проблема кроется в последнем варианте. О нем мы обязательно поговорим. Но начать рассмотрение темы хочу со следующего пункта.
Чрезмерная активность программ
Я советую начинать искать «корни» неисправности диск 0 загружен на 100% именно с этого момента. Такое случается редко, но бывает, что процесс какой-то программы висит в автозагрузке и активно «кушает» ресурсы.
Как проверить?
- Запускаем диспетчер задач (о том, как его открыть написано здесь).
- Если открылось окно небольшого размера, то снизу кликните на ссылку «Подробнее»:
- Кликните по заголовку столбца «Диск», чтобы отсортировать компоненты по уровню использования дискового ресурса:
Если на «вершине» списка оказались установленные Вами приложения, то причина проясняется сама собой. Вероятно, это работающий торрент-клиент (который скачивает данные из сети и записывает на диск), или антивирусный софт, выполняющий сканирование/обновление.
Вполне возможно, что какая-то из программ работает некорректно, и её следует остановить (снять задачу), а также убрать из автозагрузки (вот инструкция по управлению автозапуском).
На первом месте оказался процесс «svchost.exe»? Это может указывать и на обновление Windows. Но лучше посмотреть «Подробности» на соответствующей вкладке и остановить связанную службу (если она не является критически важной).
Проверяем драйвер
Переходим к самой распространенной причине, из-за которой происходит загрузка жесткого диска 100 процентов.
Обычно никто не задумывается о подобном дефекте, но он часто приводит к «торможению». Чтобы исправить ситуацию:
- Открываем «Диспетчер устройств» через контекстное меню «Пуск» (клик правой кнопкой или сочетание клавиш Win+X :
или через строку поиска:
- Когда откроется перечень оборудования, находим раздел «Контроллеры IDE…», раскрываем его. Если в нем содержится «Стандартный контроллер», то следует выполнить обновление его управляющего элемента:
- Переходим на официальную страницу производителя Вашего чипсета (для стационарного ПК) или ноутбука. В разделе скачивания (Download или Drivers) найдите драйвера для SATA или утилиту Rapid Storage Technology. Вот пример:
Ваш случай может отличаться от приведенного на скриншоте. Если возникнут вопросы – пишите мне в комментарии или на странице вопросов и ответов.
- Скачайте установочный файл / архив с нужными ресурсами. В первом случае можно просто запустить инсталлятор, дождаться окончания установки и перезагрузить ПК. Но если скачали запакованный zip, то придется выполнить еще пару шагов.
- Распакуйте архив с помощью Вашего архиватора;
- В диспетчере устройств кликните правой кнопкой мышки по элементу, который хотите оптимизировать, и выберите из появившегося меню соответствующий вариант «Обновить…».
- Среди предложенных режимов укажите второй, чтобы вручную указать путь к расположению загруженных файлов:
- С помощью кнопки «Обзор» откройте окно проводника и укажите расположение нужных элементов. Затем — «Далее»:
Спустя пару минут отобразятся результаты, указывающие на успешность процедуры. Осталось только перезагрузить компьютер. С этой задачей разобрались!
Зачастую, проблема решение имеет именно такое. Но всякое случается. Поэтому, вот еще немного полезных советов.
Дополнительные методы
Будем надеяться, что описанные ниже шаги помогут устранить проблему — «в диспетчере задач диск загружен на 100%».
- Откройте параметры системы, кликнув на значок шестеренки слева в меню «Пуск»:
- Перейдите в раздел «Система». Слева будет перечень вкладок. Перейдите к «Уведомлениям…». Теперь справа пролистайте до переключателя «Получать советы… при использовании Виндовс» и отключите эту опцию:
- Деактивируйте лишние службы (инструкция и перечень ненужных служб – по ссылке). Особенно это касается Windows Search (Поиск), которая способна активно индексировать содержимое дисков. Запретить данную процедуру можно снятием галочки напротив соответствующего пункта в свойствах диска (на вкладке «Общие»):
Если и эти советы не помогут понять, почему жесткий диск загружен на 100% Windows 10, то потребуется откат системы к заводским настройкам или чистая установка.
Надеюсь, у Вас всё получилось!
С уважением, Виктор
20.11.2016 10:00 3207
Источник: https://it-tehnik.ru/hardware/disk-usage-100.html
Ошибки в жестком диске — проверка и исправления
Очень часто в процессе использования вашего компьютера появляются «тормоза» зависания, притормаживания, в этом случае необходимо сделать проверку жесткого диска на ошибки, благо в Windows имеется много возможностей сделать эту проверку. Прочитайте внимательно данную статью и следуйте рекомендациями.
Если в процессе работы на компьютере при выполнении каких-либо манипуляций, ПК начинает притормаживать или зависать, это может означать, что на винчестере имеются какие-то ошибки. В данном случае необходимо проверить жесткий диск на наличие ошибок и попытаться их исправить. Выполнить это довольно просто.
Стоит отметить, что нижеописанные манипуляции не помогут решить все проблемы с притормаживанием компьютера.
Однако, для тех случаев, когда «тормоза» вызывают именно ошибки на винчестере эти действия вполне подойдут.
Кроме того, исправление ошибок и поддержание винчестера в нормальном состоянии позволит продлить срок эксплуатации HDD, поэтому эту процедуру желательно регулярно выполнять.
Физические ошибки жесткого диска
Физические ошибки связаны с повреждениями поверхности диска. Такое повреждение может случиться из-за удара или падения, а может даже из-за брака на производстве. В таком случае на поверхности диска образуются битые сектора, которые не могут содержать информации. Если в таких секторах были размещены системные файлы, то операционная система будет давать сбой.
Логические ошибки жесткого диска
Логические проблемы связаны с повреждением файловой системы. На жестком диске размещена файловая система, которая управляет расположением файлов, доступом к файлам. Если повреждена файловая система, то также компьютер может перегружаться или может появиться синий экран.
Из-за чего могут возникнуть ошибки на жестком диске?
Ошибки на винчестере могут возникать по разным причинам. К примеру, при работе на компьютере внезапно пропало электричество, и при этом были открыты какие-то файлы или программы.
Кроме того, некоторые пользователи выключают компьютер путем нажатия на кнопки питания, а не через «Завершение работы». Такие действия приравниваются к внезапному отключению электроэнергии. В этом случае компьютер неправильно завершает свою работу.
Помимо этого, есть еще большое количество причин появления ошибок на винчестере.
Проверка жесткого диска на наличие ошибок в Windows
Проверить винчестер на ошибки можно несколькими способами. Выполнить это можно с помощью интегрированной утилиты командной строки CHKDSK или сторонних программ, а также графический инструмент. Для начинающих пользователей отлично подойдет последний вариант, так как он самый простой из всех. Проверка таким способом одинаково проходит на «семерке» и «восьмерке» Windows.
Данная процедура может отнять довольно много времени, в зависимости от объема винчестера и количества выявленных ошибок. Работать за компьютером в этот момент не рекомендуется. Если выполняется проверка системного диска, на котором установлена операционная система, то проводить ее нужно после перезагрузки компьютера.
- Первым делом необходимо перейти в «Мой компьютер». Если такого ярлыка на рабочем столе нет, тогда сделать это можно через меню «Пуск». При необходимости расположить этот ярлык на рабочем столе можно поискать в интернете, как это сделать.
- Затем необходимо выбрать диск, который нужно проверить и щелкнуть по нему ПКМ. В выпавшем меню необходимо выбрать «Свойства».
- Перейдя в свойства диска, нужно зайти в раздел «Сервис», где должна находиться клавиша «Выполнить проверку». Ее необходимо нажать. На экране появится окно с разделом «Параметры проверки диска». В этом окне необходимо поставить галочки возле пунктов «Автоматически исправлять системные ошибки» и «Проверять и восстанавливать поврежденные сектора». Это позволить выявлять файловые и физические ошибки на винчестере. После этого требуется нажать на кнопку «Запуск».
- Затем начнется проверка винчестера, в ходе которой присутствие пользователя не нужно, поэтому можно заняться своими делами. По завершении проверки на экране появится окно, в котором будет указано, что проверка выполнена успешно, а также будет отображаться количество ошибок, выявленных в ходе сканирования, если такие будут на винчестере.
Вот, в принципе, и все. Способ довольно простой, поэтому воспользоваться им сможет любой начинающий пользователь. При необходимости можно воспользоваться другими методами проверки, однако, они требуют имение некоего опыта работы за компьютером. Новичкам также можно попробовать использовать сторонние программы для проверки винчестера, которые способы автоматически решить все ошибки на жестком диске.
Источник: https://dcvesta.org/100-oshibok-stranits-disk-chto-eto/
Источник: http://td-maks.com/100-oshibok-stranits-disk-chto-eto/
Отключение обновлений Windows
Тоже неплохой вариант решения проблемы. Многим ненавистные обновления из Windows Update нередко портят жизнь простым пользователям. В какие случаях можно ожидать высокой нагрузки на дисковую подсистему:
- при автоматическом сканировании системы на предмет установленных патчей;
- при скачивании обновлений из Интерне;
- непосредственно при установке обновлений.
Высокая активность может быть для вас неожиданной, если был установлен полностью автоматический режим установки в Центре обновления Windows.
Выключение Центра обновления Windows можно сделать через оснастку Службы. Снова набираем на клавиатуре «Win+R» и вводим services.msc. Щелкнув по имени службы правой кнопкой мыши, можно ее вырубить, выбрав в контекстном меню пункт «Отключена».
Аналогичный результат с помощью команд:
sc stop wuauserv
sc config wuauserv start= disabled
Источник: http://sysadmintips.ru/disk-zagruzhen-100-windows-10.html
Является ли Flash причиной ошибки «диск загружен на 100%»?
Технология Flash является одним из самых известных уязвимых аспектов современных вычислительных систем. От ее использования лучше отказаться. Сама компания Adobe планирует завершить работу над своим мультимедийным плагином в 2020 году, так что нет никаких весомых причин продолжать его использовать. Flash является одной из популярных причин нагрузки на дисковую систему в Windows 10 при использовании браузера Google Chrome.
В этом браузере откройте Меню → Настройки → Дополнительные и найдите там раздел «Конфиденциальность и безопасность».
Здесь нажмите на «Настройки контента» и найдите раздел Flash.
В нем вы увидите переключатель, который стоит передвинуть в положение «Блокировать Flash на сайтах». Теперь можно вернуться назад, перезапустить браузер и проверить режим работы жесткого диска.
♥ ПО ТЕМЕ: Бесплатные видеоредакторы: 6 лучших программ для монтажа видео на Windows и Mac.
Источник: http://yablyk.com/480575-disk-full-100-windows/
4. Память | Виртуальная память
Настройка виртуальной памяти
Проблемы с оперативной памятью начинаются, когда ее слишком мало. Это происходит, если индикатор «Память | Байт выделенной виртуальной памяти» превышает значение суммы объема ОЗУ и половины объема файла подкачки. Для этого проанализируйте абсолютное число байт, отображаемое системным монитором при среднем значении.
Размер файла подкачки можно узнать так: нажмите Win+Pause, затем «Дополнительные параметры системы», выберите «Быстродействие | Параметры» и затем «Дополнительно | Изменить». Файл подкачки обычно увеличивается динамически, за исключением тех случаев, когда вы установили его фиксированный размер или жесткий диск заполнен.
Освободите место на диске и разрешите системе управлять размером файла подкачки. Если улучшения не произойдет, воспользуйтесь советами в следующем пункте.
Источник: http://zen.yandex.ru/media/ichip.ru/kak-uskorit-windows-poshagovoe-rukovodstvo-chip-5a9fcb53168a91262f4bd8c1
Отключение телеметрии
На самом деле телеметрия оказывает влияние на диск небольшое, но оно все же есть. Редки те случаи, когда сбор телеметрии настолько мощно нагружал винчестер, однако и отключение его лишним не будет. Сделать это можно через Редактор реестра. Снова комбинация «Win+R», затем вводим regedit. Конечная цель – это создать ключ с запретом на телеметрию. Для этого необходимо найти пункт под названием «DataCollection», находящийся по адресу:
HKEY_LOCAL_MACHINE/SOFTWARE/Policies/Microsoft/Windows/DataCollection.
Здесь-то и нужно создать новое значение DWORD с именем AllowTelemetry, присвоить этому ключу значение «0» и перезагрузить компьютер.
Источник: http://sysadmintips.ru/disk-zagruzhen-100-windows-10.html
7. Физический носитель данных | Время (%)
Если данное значение при системе в состоянии покоя остается в верхней области, вероятно, активность жестких дисков «тормозит» ваш ПК. Перейдите в «Мониторе ресурсов» на вкладку «Диск» и отсортируйте «Процессы с активностью носителя» по параметру «Всего (байт/с)».
Проверьте возможность завершения или изменения конфигурации процессов с наиболее интенсивным объемом ввода/вывода. Например, настройте антивирусное ПО таким образом, чтобы ежедневное сканирование выполнялось только в том случае, если оно не мешает основной работе. Наиболее эффективным решением станет переход на SSD-накопитель.
Источник: http://zen.yandex.ru/media/ichip.ru/kak-uskorit-windows-poshagovoe-rukovodstvo-chip-5a9fcb53168a91262f4bd8c1
Обновление драйверов контроллера SATA AHCI
Раз уж пошел детальный разбор всех возможных причин, нельзя и эту тему не затронуть. Самыми частыми причинами проблем в ОС Windows — синих экранов (BSOD), зависаний, тормозов — являются устаревшие драйверы устройств.
Стандартный драйвер контроллера SATA AHCI (storahci.sys) стоит в Диспетчере устройств, когда не установлен свой «родной» драйвер на материнскую плату. Этого драйвера хватает, чтобы в большинстве ситуаций не вызывать проблем во время работы, но если на то пошло – простая установка или обновление драйверов «материнки» часто решает проблему стопроцентной загрузки диска.
До установки драйвера:
После
После обновления драйверов перезагрузка Windows обязательна.
Источник: http://sysadmintips.ru/disk-zagruzhen-100-windows-10.html
11. Отображение отчета о надежности
Низкая производительность может часто становиться причиной нестабильности. Если компьютер «зависает», уже поздно что-либо предпринимать: причину можно определить после перезагрузки. Для этого перейдите из меню «Пуск» в утилиту «Просмотр журнала надежности системы». Появляется временная шкала, на которой отображаются ошибки приложений, ошибки Windows, предупреждения и т.д.
Благодаря этому вы после сбоя системы можете определить, какая программа или компонент оборудования стали причиной. Хотя сведения в пункте «Показать технические подробности» являются зашифрованными, они предлагают исходные точки для поиска решения проблемы в Интернете.
Источник: http://zen.yandex.ru/media/ichip.ru/kak-uskorit-windows-poshagovoe-rukovodstvo-chip-5a9fcb53168a91262f4bd8c1
Прочие возможные решения
Помимо всего вышеперечисленного рассмотрим все возможные причины загруженности диска, пусть и самые малые. Отключение дополнительных параметров слежения за пользователем так же может подкинуть свежих сил системному диску. Сделать это действие можно, набрав сочетание клавиш «Windows+I», далее в разделе «Конфиденциальность» поискать, что в данный момент включено.
Настройка параметров конфиденциальности
Отключение уведомлений
Так же, после нажатия «Win+R» в «Параметрах Windows» не лишним будет заглянуть в настройки различных уведомлений. Находятся они в разделе «Система» на вкладке «Уведомления и действия».
Отключение OneDrive
Если верить отзывам пользователей, сервис OneDrive тоже может быть причастен к загруженности диска. Явление это довольно редкое, поэтому и описано оно здесь, в самом конце статьи. Разорвать связь с этим сервисом довольно просто: обычно его иконка находится в нижнем правом углу экрана, правый щелчок мыши откроет его контекстное меню, в котором следует выбрать «Параметры». На вкладке «Учетная запись» есть та самая ссылка «Удалить связь OneDrive», и далее появится кнопка «Отвязать учетную запись». Так же в «Программах и компонентах» на «Панели управления» можно полностью удалить Microsoft OneDrive.
Изменение настроек Google Chrome и Skype
Для некоторых пользователей определенная комбинация настроек установленного браузера Google Chrome и Skype приводило к использованию жесткого диска на 100 процентов.
Для устранения причин нужно зайти в настройки Chrome, далее «Дополнительные» и «Конфиденциальность и безопасность», и выключить предзагрузку страниц.
Далее нужно, закрыть Skype, если он работает. Найти расположение исполняемого файла skype.exe, например:
C:Program Files (x86)SkypePhoneSkype.exe
И зайти на вкладку «Безопасность» в «Свойствах» контекстного меню.
Далее нажать «Изменить» и для ВСЕ ПАКЕТЫ ПРИЛОЖЕНИЙ установить разрешение на запись. Применить изменения.
Проверить, как изменилась нагрузка на диск в Диспетчере задач.
Источник: http://sysadmintips.ru/disk-zagruzhen-100-windows-10.html
12. Анализ «сбойного» процесса загрузки
Для определения причины слишком долгой загрузки системы существует набор утилит Windows Performance Toolkit из пакета Windows SDK (можно загрузить с сайта microsoft.com). С помощью инструмента «Запись производительности» запуск системы производится с протоколированием всех параметров.
Протокол может быть открыт с помощью утилиты «Анализатор производительности Windows», который показывает, какой процесс требует какого времени. После этого вы можете обновить или удалить соответствующую программу или изменить ее конфигурацию.
Источник: http://zen.yandex.ru/media/ichip.ru/kak-uskorit-windows-poshagovoe-rukovodstvo-chip-5a9fcb53168a91262f4bd8c1