ДИСКОВАЯ НАЛИЧКА

Спецвыпуск Xakep, номер #021, стр. 021-066-1


кэш под микроскопом

Карен Казарьян aka Kirion (kirion@spez.fatal.ru)

Дело все в том, что основным узким местом, тормозящим работу системы, является вовсе не твой любимый разогнанный Celeron и не видюха, а дисковая подсистема.

Должен ли минимальный кэш равняться максимальному? Я считаю, что должен! Но не всегда :).

Единственный, если не главный минус cacheman'a, - под win2k/XP из настроек кэша остается только убогая менюшка с четырьмя пунктами :(.

Если поискать в сети материалы по оптимизации - можно очень долго разбирать горы хлама, противоречащих друг другу заявлений и сообщений о "волшебном" ключике в реестре, после которого у чела 486-й стал работать быстрее соседского Thunderbird'a. Не верь им, верь только мне :). Я надеюсь, у тебя уже есть некоторые свои взгляды на оптимизацию, и я не собираюсь их оспаривать, даже наоборот, если с чем не согласен - напиши и поделись своими мыслями. Но если ты боишься запускать regedit, лезть в системные файлы или разбираться в настройках твикеров - послушай бывалого оптимизатора, человека, которого начинает трясти при виде не фрагментированного годами харда, человека, у которого начинают чесаться ручки, когда ему попадаются где-нибудь настройки, выставленные по дефолту, и, наконец, человека, которого друзья уже не подпускают к своим компам :). Даже если после моих советов комп и не станет сразу работать в двадцать раз шустрее, не отчаивайся: все, что я рассказываю, - легко для понимания, и ты быстро сам смекнешь, что и как надо подкорректировать именно для твоей машины. Ты готов? Тогда приступим к первому занятию - работе с кэшем.

БУФЕРА И УЗКИЕ МЕСТА

И где только не рассказывалось, что надо прописать в system.ini, чтобы оптимизировать кэш так, как считает нужным автор статьи, но мало где разъяснялось, а на фига, собственно, этот кэш нужен (не понял, наезды на босса? - прим. Дронича). Дело все в том, что основным узким местом, тормозящим работу системы, является вовсе не твой любимый разогнанный Celeron и не видюха, а дисковая подсистема. Даже самые быстрые интерфейсы (SCSI, Raid, ATA133) не могут сравниться по пропускной способности с оперативкой. Разница - во много раз. К тому же несколько операций записи-чтения в общем случае не могут происходить одновременно: головка должна переместиться, считать инфу, перейти в другое место. Но представь - мы считали файл, поработали с ним, закрыли. Какое-то время он находился в оперативке, а потом что - исчез? А если он понадобится еще раз - нам его опять считывать? Ты должен уже почувствовать подвох и закричать: "Да не может такого быть!" :). На самом деле файл должен сохраниться в специально отведенной части оперативки - дисковом кэше. Кэш использовали еще в старые ДОСовские времена - загружали в оперативку FAT, пробовали использовать отложенное чтение (почитай как-нибудь на досуге про Smartdrive). Казалось бы, за это время можно научиться хорошо настраивать кэш. Но из-за кривых рук Гейтса (хотя, может, и из-за твоих, если ты неправильно юзаешь твикеры) так происходит не всегда. Более того, слишком большой кэш отнимает место у приложений, и приходится его динамически уменьшать. По идее, грамотная реализация динамического изменения кэша должна быть лучше любой статической настройки, но на деле получается, что винда отводит слишком мало места под кэш в системе, где много памяти, и слишком мало в системе, где памяти нет. Следовательно, оптимальные настройки придется искать самим.

Содержание  Вперед на стр. 021-066-2