Новости сайта http://asksoft.net

  Все выпуски  

Новости сайта http://asksoft.net. Оптимизируй это!


Если подписчиков моей рассылки заинтересует затронутая тема, отзывы принимаются на e-mail info@asksoft.net

 

Оптимизируй это!

Часть I

Пролог

Вода мокрая. Небо синее. А компьютеры созданы для автоматизации рутинных операций. Вот это мы и обсудим.

Компьютер уже давно де-факто стал бытовым прибором, но, в отличие от кофемолок и телевизоров, он не терпит соответствующего к себе отношения, слишком сложна его сущность: у пользователей часто возникают проблемы с безопасностью и работоспособностью, не говоря уж о простом комфорте.

Но человек вправе ожидать от своего творения действительно интеллектуального поведения: компьютеру вполне по плечу автоматическое выполнение большинства задач по самообслуживанию; и конечно, он просто обязан обеспечить человеку максимально комфортную и безопасную рабочую среду, предоставить в его распоряжение всю доступную мощь. Хочется, чтобы комп был умным, гибким, дружелюбным и надёжным.

Конечно, производители ПО что-то делают, но часто это не совсем то, что надо, а иногда - совсем не то. Довольно много в этом направлении мы можем сделать и сами, нужно только немного терпения. Описанные ниже советы полезны не только как конкретные способы решения конкретных задач, но и как обобщённые методики, которые можно творчески развить и переработать.

Исходной <вселенной>, в которой мы будем строить комфортную для работы среду, выбираем не нуждающуюся в представлении Windows XP. Набор используемого софта обусловлен как историческими причинами (грешен, много лет использую MS Outlook), так и вполне осознанным выбором: предпочтение отдаётся тем продуктам, которые в наибольшей степени способны удовлетворить нашим критериям.

Критерии просты и незамысловаты: ПО должно быть как гибким и управляемым (обязательна возможность запуска из командной строки), так и модульным. Реализацию этого очень важного требования проиллюстрирую на примере антивируса DrWeb (www.drweb.com). Как известно, любой современный антивирус должен, как минимум, выполнять следующие функции: сканирование дисков/папок по запросу (т.н. <сканер>, запускаемый вручную или по расписанию); перехват дискового ввода/вывода и анализ трафика на предмет наличия вирусов (<файловый монитор>)); анализ почтового трафика (<почтовый монитор>).

В DrWeb все эти функции реализованы отдельными модулями (программами), каждый из которых можно запустить/остановить независимо от других. Сканер имеет целых три реализации: с полноценным интерфейсом Win32, консольный, а также сканер для DOS. Более того, файловый монитор (анализ ввода/вывода <на лету>) и интерфейс к нему - тоже отдельные модули; можно, единожды настроив монитор, интерфейс запускать уже не всегда, а только по требованию.

Совсем иная картина у конкурирующих антивирусов, именно поэтому наш взыскующий взор скользнул мимо них.

Итак, целевой функцией наших экзерсизов является достижение высочайшей степени защиты компьютера от внешних угроз, максимальное удобство работы, минимизация использования системных ресурсов - для того, чтобы оставить их, ресурсов, как можно больше в распоряжении пользователя. Также хочется, чтобы всем этим компьютер <рулил> самостоятельно, без участия человека. Грамотный тюнинг софтовой части позволит вам быть уверенными, что в каждый момент времени вы работаете в максимально оптимизированной, защищённой и комфортной среде.

Что для этого нужно? Понимание конечной цели и путей её достижения, приличное знание ваших любимых программ, немножко терпения и хороший планировщик задач.

Теперь определимся с терминологией. Ресурсы, которыми компьютер должен гибко и эффективно распоряжаться, - это процессорное время, объём оперативной памяти и ценный дисковый ресурс.

Под дисковым ресурсом я понимаю вовсе не объём свободного или занятого места на дисках (это давно уже не проблема!), а ресурс быстродействия. Необходимо понимать, что для выполнения любой операции ввода-вывода (чтения с диска, записи на диск) компьютер должен спозиционировать магнитные головки к нужному месту на диске, выполнить чтение/запись и вернуть головки в прежнее положение - для продолжения прерванного действия. Эта операция - механическое перемещение головок - очень медленная по сравнению с производительностью любого, даже совсем старенького процессора и операциями с памятью.

Поэтому компьютер должен рачительно относиться к ресурсу ввода/вывода и не использовать его понапрасну. Но этому не способствуют производители ПО (как именно <не способствуют>, поговорим ниже), и такое положение дел - предмет для изучения и коррекции.

Реализация этих идей выглядит так. У нас - чистый, ничем не заражённый компьютер (если это не так, пролечите его). После загрузки Windows XP занимает в памяти 90-115 Мб; остальной объём оперативной памяти - в распоряжении пользователя. Хотя у меня лично безлимитный интернет, я не приветствую постоянное подключение; о причинах скажу ниже. Таким образом, сразу после загрузки компьютер не подключен к сети. Не запущены ни антивирус, ни брандмауэр - они не занимают десятки мегабайт в оперативной памяти и не расходуют ценный дисковый ресурс. При этом, в силу того, что пока никаких угроз нет, нет и урона безопасности.

При появлении потенциальных угроз компьютер тут же задействует адекватный уровень защиты. Например, при вставке в USB-порт флешки или CD/DVD диска в дисковод, автоматически запустится антивирусный файловый монитор (SpiderNT в случае с DrWeb'ом): он будет перехватывать весь дисковый ввод/вывод и не позволит заразе проникнуть с внешнего носителя в ваш компьютер. При извлечении флешки или диска антивирус будет остановлен и выгружен из памяти, перестав мониторить (а значит, тормозить!) работу "винта".

Аналогично, при появлении потенциальной угрозы в случае подключения к интернету, компьютер использует защиту более высокого уровня: теперь, кроме антивируса, запустится ещё брандмауэр. При его грамотной настройке у сетевой "нечисти" нет никаких шансов навредить вашему компьютеру. Более того, если в момент соединения был запущен почтовый клиент (например, MS Outlook), компьютер дополнительно возведёт ещё один барьер - почтовый антивирусный монитор (DrWeb SpiderMail), который не пропустит заразу, присланную вам по e-mail. Если почтовый клиент запускается уже после соединения с интернетом, почтовый монитор также запустится вместе с ним, а при закрытии почтовика будет выгружен из памяти: нужда в нём отпала, нечего занимать дефицитную оперативную память.

Конечно же, при отключении от Сети все эти защитные средства будут остановлены и выгружены из памяти: угроза миновала, снова все ресурсы - пользователю!

Всем давно известно, что любой антивирус будет эффективно работать только при наличии свежих вирусных баз. Поэтому компьютер, увидев, что появился доступ в Сеть, тут же обновляет базы антивируса и антишпионской программы (я использую Ad-Aware). В итоге мы имеем всегда свежие базы и можем быть уверены, что периметр компьютера (тонкая грань, отделяющая его от хладного внешнего мира) надёжно защищён.

Кроме жизненно необходимых вещей, компьютер, почуяв выход в "большой мир", делает для меня несколько приятных мелочей: синхронизирует свои часы с атомным сервером времени (самые точные часы в доме - компьютерные), уведомляет меня о том, что пришла новая почта, даже когда почтовый клиент не запущен, скачивает новости с популярных новостных сайтов и закидывает их на флешку (почитаю в офисе :), забрасывает на ту же флешку прогноз погоды, а также обновляет программу телепередач для моего TV-тюнера. Мне нравится иногда, работая, смотреть какой-нибудь боевичок в уголке экрана, и приятно всегда иметь актуальную ТВ-программу, не заморачиваясь еженедельным обновлением.

Кроме того, вся дневная работа синхронизируется через флешку между офисным и домашним компьютерами. Без моего участия, но с моего благоволения. Кстати, более уместным, на мой взгляд, был бы термин не "синхронизация" (от "хронос" - время), а "синдатизация" - от "data" - данные.

Компьютер очищает временные и приравненные к ним файлы, "Корзину", удаляет "мусор" за неаккуратными приложениями: не все из них, настрогав временных файлов, при закрытии чистят их за собой.

Более того, есть довольно софтин, которые при запуске умеют запускать потребные им в работе службы (services), но недостаточно умны, чтобы останавливать эти службы при своём закрытии. Мой компьютер, зная такой грех за этими приложениями, аккуратно останавливает и выгружает из памяти службы, ставшие ненужными при закрытии таких программ.

Естественно, автоматически делаются резервные копии всей важной информации. В таком важном деле полезно полностью исключить человеческий фактор: компьютер не забудет сделать BACKUP и не ошибётся в процессе.

Ну и, напоследок, если комп двух- или более ядерный, ему можно объяснить, что некоторые процессы лучше запускать на первом ядре, другие - на втором, и т.д. Пример навскидку: я до сих пор использую для разработки софта "Borland C++ Builder 6.0". Естественно, это чудо ничего не знает о многоядерных процессорах и умеет работать только на одном ядре. А Windows умна донельзя и начинает "перебрасывать" процесс "bcb.exe" с одного ядра на другое. При этом имеют место накладные расходы - ведь, чтобы перекинуть процесс с ядра на ядро, система должна запомнить его (процесса) состояние, содержимое регистров, и т.д., а после переброски восстановить всё это хозяйство на другом ядре. Причём всё это выливается в макровремя, я ставил эксперимент: время компиляции самого большого проекта на одном ядре на несколько секунд МЕНЬШЕ времени компиляции на двух ядрах.

Вывод: пока не все программы умеют использовать преимущества многоядерности, компьютеру лучше указать на такие софтины, и пусть он "сознательно" ими руководит. Например, компиляция у меня всегда работает на первом ядре, а медиа-проигрыватель, AIMP и программа просмотра ТВ - на втором ядре, и они друг другу не мешают; и Windows не жонглирует ими, расходуя ресурсы на полную ерунду. И всё это - без ручного переключения из "диспетчера задач".

Конечно, результирующий выигрыш не очень заметен, может быть, даже умозрителен, но "копейка рубль бережёт". Оптимизируем тут, там, сям, - в итоге компьютер будет работать, как хорошо отлаженный механизм, и никогда не доставит вам неприятностей.

Не обойдена вниманием и необходимость дефрагментации дисков: на офисном компьютере дефрагментатор запускается ежевечерне, после моего ухода. А на домашнем компе, если пользователь не работал в течение заданного времени (у меня - 10 мин.) и всё это время компьютер ничем особенным не занимался (загрузка процессора близка к нулевой) и нет соединения с интернетом - вот тогда и будет запущена вначале глубокая очистка дисков, а затем - их дефрагментация. Причём, если пользователь решил снова подсесть к компьютеру, дефрагментация будет остановлена, чтобы не тормозить его работу.

"Глубокая очистка дисков" - это шибко умное название довольно простого механизма, который, не удалив ни одного файла, высвободит, однако, на ваших дисках сотни мегабайт. Описание его - в одной из последующих статей.

Самое главное: вся эта благодать работает без привлечения сторонних утилит. На самом деле, их в интернете просто немеряно: миллионы программок для очистки диска и реестра, тысячи планировщиков и программ резервного копирования, завалы из дефрагменташек, и т.д.

И только утилита для "разруливания" процессов по ядрам мне известна всего одна, достаточно ресурсоёмкая, но и она нам не нужна.

Конечно, можно набрать себе полный карман этого добра, установить на комп, всё это хозяйство скажет: "добавь меня в автозагрузку", чтобы я работало, вы с этим согласитесь, и в итоге можете, конечно, чего-то достигнуть, но какой ценой! Память вашего компа будет перегружена кучей всякого разного, всё это будет мигать и переливаться, хрустеть <винтом>, отжирать у вас процессорное время и оперативную память. Ночной кошмар любого компьютера!

Ниже я буду неторопливо и обстоятельно, подробно разбирая те вещи, что считаю важными, рассказывать, как выстроить самодостаточную систему, которая сделает лишней ушастую прокладку между клавиатурой и стулом. Шутка. Но в ней есть доля истины.

Курс молодого бойца

Мы уже упоминали, что нынче стало модным запихивать в <автозагрузку> всё, что надо и не надо. И если такой метод работы ещё простителен для, к примеру, антивирусов, то другие программы безбожно злоупотребляют им. Они, конечно выполняют заявленные функции, но какой ценой, разработчиков не интересует. <К пуговицам претензии есть? Нет? До свидания!>.

Чтобы не быть голословным, приведу иллюстрацию с калькулятором в руках. Антивирус DrWeb после установки с параметрами <по умолчанию> занимает в памяти 58 Мб. При этом файловый монитор тормозит работу компьютера; например, компиляция моих проектов с включенным монитором на несколько десятков секунд медленнее, чем без него.

Брандмауэр (www.agnitum.ru) отнимет у вас ещё 42 Мб.

Дефрагментатор дисков (www.raxco.com) - ещё 7 Мб.

Средство создания резервных копий системы <Acronis TrueImage> - 18 Мб. Обойтись без подобного средства можно, но не нужно: совсем недавно чада порушили мою домашнюю систему; если бы не копия, пришлось бы потратить несколько дней на повторную инсталляцию и настройку всего и вся.

Планировщик заданий - ещё несколько мегабайт. Итого -128 и более Мб, и это только жизненно необходимый софт, не считая всяких Winamp'ов, <асек> и пр.!

А если, не приведи господи, компьютер для вас не только игрушка, но и рабочий инструмент, вам могут понадобиться дополнительные инструменты. Например, VMware Workstation - минус 23 Мб.

Если у вас не один-два гигабайта памяти, <с огоньком> работать вы уже никогда не будете: Windows будет постоянно что-то выгружать в файл подкачки, что-то из него подгружать, не говоря уже о нескольких процентах процессорного времени и о замедлении функционирования дисковой подсистемы.

Можно, конечно, прикупить побольше оперативной памяти, но ведь это неспортивно! Проблемы будут не решены, а загнаны вглубь, более того, - усугублены: пользователь, обрадованный временным облегчением, ещё меньше будет задумываться об эффективности и продолжит устанавливать всё новый и новый софт. Со всеми вытекающими. Получается гонка в замкнутом круге некомпетентной неэффективности:

Сосредоточение

Методы оптимизации нами уже упоминались: следует изучить каждое из используемых приложений, выяснить, чем оно способно загрузить компьютер, и позволить ему делать это не всегда, а только по необходимости.

В этом нам поможет событийно-ориентированный планировщик nnCron (www.nncron.ru). Такой планировщик отличается от всех прочих тем, что умеет запускать задания на выполнение не только в указанное время, но и при возникновении в системе определённых событий. Номенклатура обрабатываемых событий довольно широка, что и позволяет использовать его в наших целях. Кроме того, nnCron чрезвычайно маленький и нетребовательный к ресурсам продукт.

Системные службы

Пробежимся галопом по тем системным службам, от которых можно осмысленно отказаться.

- можно отключить, если только вы не работаете с факсами на дому

- только память занимает

<Автоматическое обновление> - может быть отключена, особенно если ваша Windows не <голубых кровей>

<Адаптер производительности WMI> - можно установить тип запуска <Вручную>

<Брандмауэр Windows/Общий доступ к Интернету (ICS)> - эту службу надо отключить, если будете пользоваться сторонним брандмауэром

<Обозреватель компьютеров> - можно установить тип запуска <Вручную>

<Планировщик заданий> - следует отключить эту службу: мы будем использовать гораздо более функциональный планировщик

<Служба COM записи компакт-дисков IMAPI> - можно остановить, если будете использовать для записи CD сторонние утилиты

<Справка и поддержка> - можно установить тип запуска <Вручную>

<Удаленный реестр> - интересно, как это согласуется с понятием безопасности?

<Центр обеспечения безопасности> - отключить; мы сами всем будем рулить.

 

Таким образом, мы высвободили несколько мегабайт.

Планировщик

Возвращаемся к событийно-ориентированному планировщику nnCron. После его установки в системном лотке (рядом с часами) появится значок . Все манипуляции с планировщиком выполняются посредством щелчка правой кнопкой мышки на этом значке.

Первым делом его нужно зарегистрировать. Для жителей б.СССР это бесплатное удовольствие: в первой строке введите <xUSSR регистрация>, во второй - текущий день недели, например, <четверг>. Согласитесь, для забугорного пользователя неразрешимая задача.

Следующий этап - отключить в параметрах <Непотопляемый режим> - см. рис. 1. Если это не сделать, в памяти будет висеть дополнительная служба, перезапускающая nnCron в случае его <падения>. Во всех современных Windows того же можно добиться стандартными средствами (см. рис. 2), поэтому излишествам скажем решительное <нет>!

В заключение следует обязательно добавить в nnCron несколько плагинов. Это такие <примочки>, расширяющие возможности планировщика. Для наших целей nnCron'у должны быть доступны все плагины, показанные на рис. 3.

 

Во второй статье будет подробно рассмотрен процесс установки, настройки и оптимизации антивируса DrWeb, а также методы управления его работой посредством планировщика.

 

Рис. 1

 

Рис. 2

 

Рис. 3


В избранное