![](/user_photo/_userpic.png)
книги хакеры / журнал хакер / 205_Optimized
.pdf![](/html/77786/195/html_yvILJ72Pp0.lzbb/htmlconvd-QvhHeT311x1.jpg)
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|||
P |
|
|
|
|
|
NOW! |
o |
|
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
|
||||
|
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
.c |
|
Набираем http://localhost:3000 и можем работать. |
||
|
|
p |
|
|
|
|
g |
|
|
||
|
|
|
df |
|
|
n |
e |
|
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
X |
|
|
|
|
|
|||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
|
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
m |
||||||
|
|
|
|
|
|||||||
|
|
|
|
|
|
||||||
w |
|
|
|
|
|
|
|
|
|
||
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
|
-x cha |
|
|
|
|
Интерфейс Dockerding
УПРАВЛЕНИЕ СОБСТВЕННЫМ РЕПОЗИТОРИЕМ
Когда собранных образов становится много, следует задуматься о частном репозитории. Для создания собственного репозитория разработчики Docker предлагают Docker Registry, к которому уже сегодня доступен десяток самых разных интерфейсов.
Docker Registry UI — веб-интерфейс для Docker Registry, позволяющий создавать приватный репозиторий, просматривать список образов, производить поиск и удаление образов, просматривать конфигурацию. Поддерживается управление несколькими репозиториями. Конфигурация по умолчанию сохраняется во внутренней базе H2, но можно подключаться и к внешней H2. Запуск прост. Вначале нам понадобится сам Docker Registry.
$ sudo docker run -p 5000:5000 registry
![](/html/77786/195/html_yvILJ72Pp0.lzbb/htmlconvd-QvhHeT312x1.jpg)
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
|
|
- |
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
|
F |
|
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
r |
|||||
P |
|
|
|
|
|
NOW! |
o |
|
|
P |
|
|
|
|
|
NOW! |
o |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
BUY |
|
|
|
|
|
|
|
|
|
BUY |
|
|
||||||||
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
|
|
to |
|
|
|
|
|
|
||
w Click |
|
|
|
|
|
m |
|
w Click |
|
|
|
|
|
m |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|||
|
w |
|
|
|
|
|
|
|
|
o |
|
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
|
.c |
|
Запускаем, указав URL нужного репозитория (использовать localhost нельзя), |
|
. |
|
|
|
|
|
|
.c |
|
|||||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
p |
|
|
|
|
g |
|
|
|
||||
|
|
|
df |
|
|
n |
e |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
хотя при необходимости подключить любое количество можно впоследствии и через веб-интерфейс.
$ sudo docker run -p 8080:8080 -e REG1=http://example.org:5000/v1/
atcol/docker-registry-ui
Теперь смотрим в браузере страницу http://example.org:8080. Репозиторий должен быть показан во вкладке Registeres, а статус обязательно должен сообщать Ping succeeded. После этого в Images найдем все образы, добавленные
врепозиторий. Параметр -e READ_ONLY=true позволяет запускать контейнер
врежиме «только чтение».
Подключение к репозиторию в Docker Registry UI
Те, кому нужен инструмент с большими функциями, должны обратить внимание на Portus, предлагающий улучшенные возможности по авторизации пользователей на основе ролей. Организация может иметь команды (teams). Кроме
![](/html/77786/195/html_yvILJ72Pp0.lzbb/htmlconvd-QvhHeT313x1.jpg)
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
|
|
- |
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
|
F |
|
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
r |
|||||
P |
|
|
|
|
|
NOW! |
o |
|
|
P |
|
|
|
|
|
NOW! |
o |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
BUY |
|
|
|
|
|
|
|
|
|
BUY |
|
|
||||||||
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
|
|
to |
|
|
|
|
|
|
||
w Click |
|
|
|
|
|
m |
|
w Click |
|
|
|
|
|
m |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|||
|
w |
|
|
|
|
|
|
|
|
o |
|
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
|
.c |
|
этого, предоставляются наборы пространств имен (namespaces), представля- |
|
. |
|
|
|
|
|
|
.c |
|
|||||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
p |
|
|
|
|
g |
|
|
|
||||
|
|
|
df |
|
|
n |
e |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
ющих собой коллекцию репозиториев. Сами namespaces могут принадлежать конкретной команде, быть глобальными или персональными. Пользователи в namespaces могут иметь один из трех уровней доступа: Viewers (только получение образов), Contributors (плюс публикация образов) и Owners (плюс управление составом команды). Есть функция временного отключения пользователей. Реализован поиск в реестре, аудит (все события регистрируются), рейтинг хранилищ. Поддерживается аутентификация по протоколу LDAP.
РАЗРАБОТКА И СБОРКА
Развертывание и тестирование — самая сложная часть проекта. Когда количество сборок начинает превышать определенный предел, задумываешься о некоторой автоматизации и возможности контроля изменений.
Одна из популярных систем контроля версий Git вполне подходит для хранения версий Dockerfile и связанных с проектом файлов. Captain позволяет автоматизировать сборку новых контейнеров при коммите. Контейнеры в зависимости от настроек автоматически получают номер сборки. Предусмотрено тестирование сборки и отправка в репозиторий.
Zodiac — инструмент, использующий Docker Compose, упрощающий развертывание и откат к нужной версии при сборке контейнеров. Работает очень просто. После создания docker-compose.yml производится сборка проекта zodiac deploy. Затем после внесения изменений в docker-compose.yml операция повторяется. Список zodiac list покажет все сборки. Если после тестирования необходимо откатиться до предыдущей, то просто вводим «zodiac rollback номер_сборки».
Rocker-compose — приложение, идущее на замену официальному Docker Compose, предназначенному для запуска мультиконтейнерных окружений, но обладающее рядом полезных возможностей. Автоматически удаляются контейнеры, которые больше не используются в конфигурации. В случае краха перезапускается только проблемный контейнер, а не все. Поддерживаются настраиваемые имена в названиях контейнеров (Docker Compose не понимает символы подчеркивания). При пересборке проекта сохраняется имя контейнера, это упрощает сопровождение и избавляет от сообщений, что имя занято и старый контейнер нужно удалить. Использование шаблонов в файле манифеста (не только ENV).
АЛЬТЕРНАТИВНЫЙ ОБРАЗ BASEIMAGE-DOCKER
Образы для Docker распространяются через репозитории, откуда их можно скачать или загрузить. Для Docker официальным является Docker Hub, содержащий огромное количество образов, в том числе и предоставленные сторонними фирмами и разработчиками. Многие образы похожи по принципу, так как
![](/html/77786/195/html_yvILJ72Pp0.lzbb/htmlconvd-QvhHeT314x1.jpg)
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
|
|
|
|
- |
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
|
|
|
F |
|
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
|
|
r |
|||||
P |
|
|
|
|
|
NOW! |
o |
|
|
|
|
P |
|
|
|
|
|
NOW! |
o |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
BUY |
|
|
|
|
|
|
|
|
|
|
|
BUY |
|
|
||||||||
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
to |
|
|
|
|
|
|
||
w Click |
|
|
|
|
|
m |
|
|
|
w Click |
|
|
|
|
|
m |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|||
|
w |
|
|
|
|
|
|
|
|
o |
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
|
.c |
|
созданы из основных, доступных в репозитории, без особой переделки внутри. |
|
. |
|
|
|
|
|
|
.c |
|
|||||||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
p |
|
|
|
|
g |
|
|
|
||||||
|
|
|
df |
|
|
n |
e |
|
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
||||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
Но есть интересные проекты. Так, самый популярный образ сторонних разра- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
ботчиков — Baseimage-docker, доступный как phusion/baseimage. Одна из при- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
чин его появления — проблема PID 1, возникшая из-за того, что многие дистри- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
бутивы Linux изначально не рассчитаны на применение в контейнерах. Docker |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
получается не совсем Linux и не использует единый init-процесс для инициа- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
лизации и остановки всех дочерних процессов контейнера, как это принято |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
в Linux. В случае Docker первым процессом может быть что угодно, даже CMD. |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
В результате это может привести к большому количеству зомби-процессов, |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
так как SIGTERM некорректно отрабатывается при остановке системы и пере- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
запуске сервиса, что приводит еще и к потере данных. В некоторых ситуаци- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
ях (например, тестирование приложения) это, может, и неважно, но веб-сайт |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
держать в таком контейнере проблематично. Baseimage-docker поставляется |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
с собственной системой инициализации /sbin/my_init, являющейся родите- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
лем для всех процессов в контейнере. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Еще один момент. Docker построен вокруг идеи о том, что в каждом контей- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
нере должен работать только один сервис. Все важные системные службы не |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
запускаются автоматически, об этом необходимо позаботиться самому. При |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
необходимости сервисы связываются. Такой подход дает большую гибкость, |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
так как позволяет с легкостью менять конфигурацию, тестировать обновления |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
и выполнять миграцию отдельных сервисов на другие машины. Поэтому в окру- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
жении нет корректного syslog, crond и прочих демонов, требуемых для нормаль- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
ной работы любой UNIX-системы и приложений, а это вызывает проблемы. В об- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
разах нет SSH, а до появления docker |
exec в Docker 1.4 дать команду внутри |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
контейнера было непросто. В Baseimage-docker используется runit, позволяю- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
щий добавлять дополнительные приложения к образу. Специальный инструмент |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
setuser позволяет запускать разные демоны от разных учетных записей. |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Процессы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
в Baseimage- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
docker |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
с обычным |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
контейнером |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
![](/html/77786/195/html_yvILJ72Pp0.lzbb/htmlconvd-QvhHeT315x1.jpg)
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
|
|
- |
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
|
F |
|
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
r |
|||||
P |
|
|
|
|
|
NOW! |
o |
|
|
P |
|
|
|
|
|
NOW! |
o |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
BUY |
|
|
|
|
|
|
|
|
|
BUY |
|
|
||||||||
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
|
|
to |
|
|
|
|
|
|
||
w Click |
|
|
|
|
|
m |
|
w Click |
|
|
|
|
|
m |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|||
|
w |
|
|
|
|
|
|
|
|
o |
|
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
|
.c |
|
ВЫВОД |
|
|
. |
|
|
|
|
|
|
.c |
|
||||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
p |
|
|
|
|
g |
|
|
|
|||
|
|
|
df |
|
|
n |
e |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
Это далеко не полный список дополнительных приложений, расширяющих базовые возможности Docker. Хорошо поискав в интернете, можно найти решения для простого управления сетью, простого деплоя, непрерывной интеграции и доставки, создания и проверки Docker-файлов, менеджеры кластеров и многое другое.
![](/html/77786/195/html_yvILJ72Pp0.lzbb/htmlconvd-QvhHeT316x1.jpg)
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|||
P |
|
|
|
|
|
NOW! |
o |
|
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
FAQ |
|
|
|
|
df-xchan |
|
|
|
|||||
w Click |
to |
|
|
|
|
|
m |
|
|||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
.c |
|
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
|
Алексей Zemond Панкратов
3em0nd@gmail.com
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
FAQ
ОТВЕТЫ НА ВОПРОСЫ ЧИТАТЕЛЕЙ
(ЕСТЬ ВОПРОСЫ? ШЛИ НА FAQ@GLC.RU)
![](/html/77786/195/html_yvILJ72Pp0.lzbb/htmlconvd-QvhHeT317x1.jpg)
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||
|
|
X |
|
|
|
|
|
|
||
|
- |
|
|
|
|
d |
|
|
||
|
F |
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
|||
P |
|
|
|
|
|
NOW! |
o |
|
||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
BUY |
|
|
|
||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
m |
|
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
.c |
|
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
|
e |
|
АНАЛИЗИРУЕМ ЗАГРУЖЕННОСТЬ ОБОРУДОВАНИЯ |
|
|
|
|
|
|
n |
|
|
|||
|
|
|
|
-xcha |
|
|
|
|||
|
|
|
|
|
|
|
|
ШТАТНЫМИ СРЕДСТВАМИ WINDOWS
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Когда уже настроено все, что только можно, а компьютер упорно продолжает виснутьилитормозить,остаетсятолькозасучитьрукаваибратьсязатестированиеоборудования. В этом поможет самый разный софт, но давай попробуем обратиться к штатным средствам Windows. Они весьма неплохи и, главное, всегда под рукой.
Предполагаю, что ты слышал про Performance Monitor, именно он нам и поможет. Думаю, вопросов о том, где он находится, не должно быть, но если вдруг запамятовал, то ищи его в меню «Пуск» (стартовый экран в Server 2012), в разделе Administrative tools. Или, если привык к командной строке, запускай perfmon.msc.
Без подготовки не так-то просто разобраться в огромном количестве счетчиков. Но, поверь, проанализировав систему пару-тройку раз, ты будешь ориентироваться в них с закрытыми глазами. Для начала предлагаю определиться с тем, что будем измерять. Нас интересуют следующие параметры:
•Memory f Pages/sec
•Processor [_Total] f %Processor Time
•System f Processor Queue Length
•Physical Disk f Avg. Disk Queue Length
•Network Interface f Bytes Total / sec
Частоту получения значений рекомендую выставить порядка пятнадцати секунд. Анализ данных следует проводить на основании среднего и максимального значения для каждого счетчика на выбранном интервале времени. Эти значения показаны в нижней части основного окна Performance Monitor.
Теперь разберемся, что же мы будем анализировать. Думаю, ты уже запустил процесс сбора данных и получил разные странные графики, с которыми пока не знаешь, что делать. Вот таблица, которая поможет тебе разобраться. В ней сначала идет группа, потом счетчик, описание, критерий и узкое место системы:
Memory |
Pages/sec |
Интенсивность |
Среднее: около 0. |
Недостаточно |
|
|
|
|
обмена между |
Максимальное: |
оперативной |
|
|
|
|
дисковой подси- |
не более 20 |
памяти |
|
|
|
|
стемой и опера- |
|
|
|
|
|
|
тивной памятью |
|
|
|
|
|
|
|
|
|
|
|
Processor[_Total] |
% Processor |
Загруженность |
Не более 70% |
Недостаточная |
|
|
|
Time |
процессоров |
в течение |
производитель- |
|
|
|
|
|
длительного |
ность процес |
|
|
|
|
|
времени |
соров |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
![](/html/77786/195/html_yvILJ72Pp0.lzbb/htmlconvd-QvhHeT318x1.jpg)
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
X |
|
|
|
|
|
|||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
|
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
m |
||||||
|
|
|
|
|
|||||||
|
|
|
|
|
|
||||||
w |
|
|
|
|
|
|
|
|
|
||
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
|
-x cha |
|
|
|
|
System |
Processor |
Очередь |
Не более 2*коли- |
Недостаточная |
|
Queue Length |
к процессорам |
чество ядер про- |
производитель- |
|
|
|
цессоров в тече- |
ность процес |
|
|
|
ние длительного |
соров |
|
|
|
времени |
|
Physical Disk |
Avg. Disk |
Очередь |
Не более 2*ко- |
Недостаточная |
|
Queue Length |
к дискам |
личество дисков, |
производитель- |
|
|
|
работающих |
ность дисковой |
|
|
|
параллельно |
подсистемы |
Network Interface |
Bytes Total / |
Скорость пере |
Не более 65% |
Недостаточная |
|
sec |
дачи данных |
от пропускной |
пропускная спо- |
|
|
через сеть |
способности |
собность сетево- |
|
|
|
сетевого адаптера |
го интерфейса |
Узнав, что вызывает торможение, ты можешь выжать из своего железа все возможное.
![](/html/77786/195/html_yvILJ72Pp0.lzbb/htmlconvd-QvhHeT319x1.jpg)
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||
|
|
X |
|
|
|
|
|
|
||
|
- |
|
|
|
|
d |
|
|
||
|
F |
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
|||
P |
|
|
|
|
|
NOW! |
o |
|
||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
BUY |
|
|
|
||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
m |
|
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
.c |
|
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
|
e |
|
КАК ОТУЧИТЬ АНТИВИРУС ТОРМОЗИТЬ РАБОТУ |
|
|
|
|
|
|
n |
|
|
|||
|
|
|
|
-xcha |
|
|
|
|||
|
|
|
|
|
|
|
|
СТОРОННИХ ПРОГРАММ ДЛЯ РАБОТЫ СО СКАНЕРОМ
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
X |
|
|
|
|
|
|||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
|
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
m |
||||||
|
|
|
|
|
|||||||
|
|
|
|
|
|
||||||
w |
|
|
|
|
|
|
|
|
|
||
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
|
-x cha |
|
|
|
|
Если ты решил заменить стандартные средства работы со сканером на что-ни- будь, что тебе больше по нраву, то есть вероятность встретиться с досадной ситуацией, когда сканирование одной страницы длится около десяти минут. И виноват в этом, скорее всего, не твой сканер и не твой альтернативный софт, а антивирус.
Именно с такой неприятностью я недавно столкнулся. Использовался принтер из большого и далеко не нового семейства HP, а сканировал я при помощи ScanToPdf — это удобная портативная и очень простая в применении софтина. Как выяснилось позже, проблемы были не только с ней, но и с другими подобными программами. Что это за ерунда и кто в этом виноват? Перебирая все варианты, я нашел, в чем дело.
Стоило отключить антивирус, и все заработало как положено. Но не оставлять же машину без антивируса! Первое, что приходит в голову, — это добавить исполняемый файл ScanToPdf в исключение, однако это не дало никаких результатов. Пришлось обращаться к тяжелой артиллерии, а именно к пакету Марка Руссиновича Sysinternals. При помощи тулзы Process Explorer можно смотреть, что делает программа. ScanToPdf, помимо обращений к разным DLL, пишет различную служебную информацию в файл twain.log. Вот полный путь к нему:
C:\Users\%username%\AppData\Local\Temp\twain.log
И все бы ничего, но обращений слишком много, и это вызывает тревогу у антивируса. Он считает эту активность подозрительной и начинает сканировать файл. Цикл записи и сканирования и занимает примерно десять минут. Если добавить twain.log в исключения, то проблема полностью решится и сканирование будет проходить намного быстрее. Главное, чтобы этим не воспользовались вирусописатели.
![](/html/77786/195/html_yvILJ72Pp0.lzbb/htmlconvd-QvhHeT320x1.jpg)