Анализ нагрузки на веб-сервер linux

Статистика веб-сервера

Для веб-серверов можно воспользоваться служебной страницей просмотра статуса. Она может показать статистику запросов к веб-серверу.

Apache

Для Apache необходим модуль mod_status, который идет в комплекте с данным веб-сервером. Проверить подключение модуля можно в конфигурационном файле httpd.conf (в разных Linux системах может находится в различных каталогах).

По умолчанию, server-status не активен. Создаем конфигурационный файл.

Для CentOS / Red Hat:

vi /etc/httpd/conf.d/server-status.conf

Для Ubuntu / Debian:

vi /etc/apache2/sites-enabled/server-status.conf

* где 2 — используемая версия apache.

В открытый конфигурационный файл добавим:

ExtendedStatus on
<VirtualHost *:80>
  servername 111.111.111.111
  <Location /server-status>
    Sethandler server-status
  </Location>
</VirtualHost>
<Location /server-status>
    SetHandler server-status
</Location>

* где 111.111.111.111 — IP-адрес нашего веб-сервера; 80 — порт, на котором слушает apache.* в данном примере мы прописали два варианта просмотра статистики: первый — обращение в браузере к серверу по IP-адресу + /server-status; второй — обращение к любому сайту + /server-status. Разные способы оправданы для разных настроек самих сайтов и используемых CMS.

Проверим корректность внесенных данных и перезапустим веб-сервер apache:

apachectl configtest

systemctl restart httpd || systemctl restart apache2

Теперь открываем браузер и вводим название сайта + /server-status, например, http://www.dmosk.ru/server-status. Или обращаемся к серверу по IP-адресу, например, http://111.111.111.111/server-status.

NGINX + PHP-FPM

Открываем конфигурационный файл nginx:

vi /etc/nginx/nginx.conf

В секцию http добавляем:


    server {
        listen 80;
        server_name 111.111.111.111;
        location /server-status {
              stub_status on;
        }
    }

* где 111.111.111.111 — IP-адрес нашего веб-сервера.

Проверяем корректность настройки и перезапускаем nginx:

nginx -t

systemctl restart nginx

Открываем браузер и заходим на страницу 111.111.111.111/server-status. Мы должны увидеть статистику использования сервера:

Теперь настроим статистику для php-fpm. В конфигурационном файле nginx в нашу директиву server добавим:

vi /etc/nginx/nginx.conf


    server {
        listen 80;
        server_name 78.110.63.31;
        location /server-status {
            stub_status on;
        }
        location /status {
            access_log off;
            include fastcgi_params;
            #fastcgi_pass unix:/var/run/php-fpm/php5-fpm.sock;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }

* обратите внимание на закомментированную строку и строку под ней. В зависимости от того, как настроен php-fpm (слушает на порту или через сокетный файл) необходимо настроить nginx

В данном примере подразумевается, что php-fpm слушает на 9000 порту.

Открываем конфигурационный файл php-fpm:

vi /etc/php-fpm.d/www.conf

Снимаем комментарий со следующей строки:

pm.status_path = /status

Проверяем настройку nginx, перезапускаем его и php-fpm:

nginx -t

systemctl restart nginx

systemctl restart php-fpm

Открываем браузер и заходим на страницу 111.111.111.111/server-status. Мы должны увидеть статистику использования сервера:

Использование ab

Для того чтобы установить ab в debian необходимо установить пакет apache2-utils:

apt-get install apache2-utils

Параметры

Утилита запускается с помощью команды ab. Далее рассмотрим основные параметры.

  • -c — очень важный параметр. Определяет количество параллельных запросов отправляемых одновременно
  • -n — количество отправляемых запросов
  • -t — максимальное количество секунд отведенное на тест. Подходит для тестирования приложения в течении определенного временного промежутка. При этому необходимо задать большое значение параметру -n
  • -C cookie-name=value — добавляем cookie в каждый запрос к серверу
  • -H — задаем заголовок запроса
  • -T — Content-type заголовок запроса
  • -p — файл содержащий тело POST запроса

Выполнение теста

Давайте выполним тестирование какого-либо сайта и рассмотрим содержание отчета, который генерирует ab.

ab -c 10 -n 100 http://google.com/
Benchmarking google.com (be patient).....done

Server Software:        gws
Server Hostname:        google.com
Server Port:            80

Document Path:          /
Document Length:        219 bytes

Concurrency Level:      10
Time taken for tests:   1.290 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Non-2xx responses:      100
Total transferred:      54000 bytes
HTML transferred:       21900 bytes
Requests per second:    77.51 [#/sec] (mean)
Time per request:       129.018  (mean)
Time per request:       12.902  (mean, across all concurrent requests)
Transfer rate:          40.87 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       54   56   2.0     55      63
Processing:    70   72   2.4     72      82
Waiting:       70   72   2.3     72      82
Total:        124  128   3.4    127     140

Percentage of the requests served within a certain time (ms)
  50%    127
  66%    128
  75%    129
  80%    130
  90%    133
  95%    134
  98%    138
  99%    140
 100%    140 (longest request)

Сначала выводится различная информация о проводимом тесте, такая как типа серверного ПО, хост, порт, путь и тд. Дальше идут более интересные характеристики. Рассмотрим наиболее важные из них:

  • Time taken for tests — суммарное время потраченное на весь тест
  • Complete requests — количество выполненных запросов
  • Failed requests — количество запросов завершенных отказом
  • Total transferred и HTML transferred — суммарный объем и объем html переданные во время теста
  • Requests per second или rps — количество обрабатываемых запросов в секунду
  • Time per request — среднее время затраченное на запрос с и без учета распараллеливания
  • Transfer rate — скорость передачи данных при прохождении теста

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

Режим совместимости конфигурации 1С

Приветствую, коллеги! В этой статье будет сделан обзор функции совместимости конфигурации 1С с другими версиями конфигураций 1С, а также рассмотрено, как выбрать и настроить режим совместимости конфигурации с версией 1С 8.3.
Во-первых, разберём главное понятие в этой статье: режим совместимости в конфигурации – это устройство, благодаря которому выводится номер версии системы, под которую станет открыто приложение 1С:Предприятие. Данный режим существует на платформе 1С начиная с версий 8.2 и 8.3 (платформа версии 1С:Предприятие 8.3 совместима с платформой версии 1С:Предприятие 8.2).

Nload

Nload — это инструмент командной строки, который позволяет пользователям контролировать входящий и исходящий трафик отдельно. Он также выводит график, указывающий то же самое, масштаб которого можно отрегулировать. Прост в использовании и не поддерживает множество опций.

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

Чтобы выйти мониторинга сети, достаточно нажать клавишу Q

Установить в Debian или Ubuntu можно из репозиториев по-умолчанию:

Пользователи CentOS или Fedora могут установить командой:

Если в CentOS при установке возникли проблемы, то скорее всего вам нужно подключить

А затем ввести команду установки заново.

Установка платформы 1С 8.3.20.1363 и более старших версий на RHEL8 и любые другие rpm-based linux. Решение проблемы установки меньших версий 1С8.3 (webkitgtk3) на RHEL 8 / CentOS 8 / Fedora Linux

Начиная с версии платформы 1С 8.3.20.1363 реализована программа установки компонентов системы «1С:Предприятие» для ОС Linux. Теперь любой пользователь Линукс может без проблем установить 1С на свою любимую систему. Попытка установки 1С:Предприятия 8.3 меньших версий, чем 1С 8.3.20.1363 на RedHat Enterprise Linux 8 / CentOS 8 / Fedora не увенчается успехом, произойдет ошибка: Неудовлетворенные зависимости: libwebkitgtk-3.0.so.0()(64bit) нужен для 1c-enterprise-8.3.18.1128-training-8.3.18-1128.x86_64. Конфликт заключается в том, что 1С требует устаревшую версию пакета libwebkitgtk-3.0.so.0()(64bit), запрещенную из-за проблем безопасности, и не может работать с актуальной версией пакета webkit2gtk3. Гуглить в интернете можно долго, хочу поделиться с Вами уже найденным рабочим решением в конце данной статьи.

№13: iptraf – сетевая статистика в режиме реального времени

Команда iptraf запускает цветной интерактивный монитор, следящий за сетевыми IP. Этот монитор сетевых IP базируется на команде ncurses, которая выдает различную сетевую статистику, в том числе информацию о TCP, ведет подсчет UDP, выдает сведения о ICMP и OSPF, информацию о нагрузке на Ethernet, статистику по узлам сети, данные об ошибках контрольных сумм пакетов IP и многое другое. Монитор предоставляет в удобном для чтения виде следующие данные:

  • Статистику сетевого трафика по TCP подключениям
  • Статистику IP трафика по сетевым интерфейсам
  • Статистику сетевого трафика по протоколам
  • Статистику сетевого трафика по портам TCP/UDP и по размерам пакетов
  • Статистику сетевого трафика по адресам протоколов второго уровня

Рис.02; Общая статистика по интерфейсам: статистика трафика IP по сетевым интерфейсам

Рис.03: Статистика сетевого трафика по TCP подключениям

№ 5: ps – список процессов

Команда ps выдаст краткий список текущих процессов. Для того, чтобы выбрать все процессы, используете параметр -A или –e:

# ps -A

Пример вывода данных:

  PID TTY          TIME CMD
    1 ?        00:00:02 init
    2 ?        00:00:02 migration/0
    3 ?        00:00:01 ksoftirqd/0
    4 ?        00:00:00 watchdog/0
    5 ?        00:00:00 migration/1
    6 ?        00:00:15 ksoftirqd/1
....
.....
 4881 ?        00:53:28 java
 4885 tty1     00:00:00 mingetty
 4886 tty2     00:00:00 mingetty
 4887 tty3     00:00:00 mingetty
 4888 tty4     00:00:00 mingetty
 4891 tty5     00:00:00 mingetty
 4892 tty6     00:00:00 mingetty
 4893 ttyS1    00:00:00 agetty
12853 ?        00:00:00 cifsoplockd
12854 ?        00:00:00 cifsdnotifyd
14231 ?        00:10:34 lighttpd
14232 ?        00:00:00 php-cgi
54981 pts/0    00:00:00 vim
55465 ?        00:00:00 php-cgi
55546 ?        00:00:00 bind9-snmp-stat
55704 pts/1    00:00:00 ps

Команда ps подобна команде top, но выдает больше информации.

Показать больше данных

# ps -Al

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

# ps -AlF

Настроить выдачу данных в формате, определенном пользователем

# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
# ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
# ps -eopid,tt,user,fname,tmout,f,wchan
# ps -C lighttpd -o pid=

или

# pgrep lighttpd

или

# pgrep -u vivek php-cgi

Примеры использования

А теперь давайте рассмотрим примеры использования утилиты ss Linux. Возможно, из описания опций вы мало что поняли, но с примерами все встанет на свои места.

Мониторинг сетевых подключений

Сначала смотрим все сетевые подключения:

Посмотрим только TCP соединения:

Или:

Теперь только Unix:

Для отображения UDP сокетов используйте опцию u. По умолчанию будут показаны только подключенные соединения. Если хотите получить все, нужно использовать опцию a. Поскольку UDP, это протокол без постоянного соединения, то без опции -a мы ничего не увидим:

По умолчанию утилита не пытается определять имена хостов через dns, но можно ее попросить делать это опцией -r:

Обратная опция -n, не будет выполняться не только dns резолвинг, но и определение протоколов портов, зато мониторинг сети в Linux работать будет быстрее:

Теперь просмотрим только прослушиваемые tcp сокеты.

Здесь мы видим только имена служб, это не всегда удобно, указав опцию n, мы получим номера портов. Так же само можно посмотреть прослушиваемые udp сокеты:

Также мы можем попытаться узнать название и PID процесса, использующего сокет:

Просмотр статистики статистики сетевых подключений

Для просмотра статистики по использованию сетевых подключений наберите:

С помощью опции -о можно посмотреть информацию о таймере и состоянии подключения.

Фильтрация по протоколу

Мы можем отображать только нужный нам протокол. Например только ipv4:

Или:

Так же само можно отобразить только соединения ipv6:

Фильтрация по состоянию соединения

В синтаксисе команды мы описали два дополнительных параметра. Фильтрация состояния и фильтрация по адресу. Рассмотрим теперь как ими пользоваться. Сокет TCP может находиться в одном из нескольких состояний. Например, так утилита ss linux выведет только подключенные сокеты.

Или сокеты в состоянии ожидания:

В параметр state можно передать одно из следующих значений:

  • established
  • syn-sent
  • syn-recv
  • fin-wait-1
  • fin-wait-2
  • time-wait
  • closed
  • close-wait
  • last-ack
  • closing
  • all  — все состояния
  • connected — все кроме прослушиваемых и закрытых
  • synchronized — все кроме syn-sent
  • bucket —  time-wait и syn-recv
  • big — все кроме bucket

Не все состояния подключений можно увидеть просто выполнив команду. Например, syn-sent и syn-recv вряд ли получиться словить, потому что соединения находятся в этом состоянии очень короткое время. Для их отображения удобно использовать команду watch:

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

Фильтрация по адресу и номеру порта

Кроме фильтрации по состоянию, tcp сокеты можно фильтровать по адресам или портам соединений.

Например, отберем все сетевые подключения linux с портом источником или приемником ssh, то есть все входящие и исходящие соединения ssh:

Или сокеты с портом назначения 80 или 443:

Такой синтаксис тоже будет работать:

Еще несколько примеров фильтрации:

Фильтрация по адресу:

Фильтрация по адресу и подсети:

И по адресу и порту:

Если вы хотите фильтровать сетевые соединения по порту, перед портом ставьте двоеточие:

Можно использовать такие операторы сравнения:

  • <= или le — меньше или ровно порту.
  • >= или ge — больше или ровно порту.
  • == или eq — точное соответствие.
  • != или ne — не равно.
  • < или gt — меньше.
  • > или lt — больше.

Долгие запросы

С помощью длительных запросов к веб-серверу или СУБД можно сделать выводы о том, что является узким местом в работе сервиса.

MySQL / MariDB

Для начала, воспользуемся инструкцией, чтобы настроить ведение лога медленных запросов (для MySQL или MariaDB).

После, воспользовавшись статистикой, находим неоптимальные запросы. В одних случаях необходимо будет переписать сам запрос, в других — создать индексы базы данных.

PHP-FPM

Открываем конфигурационный файл:

vi /etc/php-fpm.d/www.conf

Редактируем следующие параметры:

request_slowlog_timeout = 10s
slowlog = /var/log/php-fpm/www-slow.log

* request_slowlog_timeout определяет время, в течение которого должен выполняться запрос, чтобы он считался медленным; slowlog — путь до лога, куда будет сохранена информация о медленных запросах.

Перезапускаем сервис:

systemctl restart php-fpm

Непрерывный просмотр лога можно запустить командой:

tail -f /var/log/php-fpm/www-slow.log

№14: tcpdump – детальный анализ сетевого трафика

Команда tcpdump – простая команда, выдающая дамп сетевого трафика. Однако, вам нужно
хорошо понимать протоколы TCP/IP для того, чтобы использовать это средство. Например, для того, чтобы показать информацию о трафике DNS, введите следующее:

# tcpdump -i eth1 'udp port 53'

Для того, чтобы показать все IPv4 HTTP пакеты, идущие на порт и с порта 80, т.е. выдать только те пакеты, которые содержат данные, и, например, не учитывать пакеты SYN и FIN и пакеты ACK-only, введите следующее:

# tcpdump 'tcp port 80 and (((ip - ((ip&0xf)<2)) - ((tcp&0xf0)>>2)) != 0)'

Для того, чтобы показать все сессии FTP для адреса 202.54.1.5, введите следующее:

# tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20'

Для того, чтобы показать все сессии HTTP для адреса 192.168.1.5, введите следующее:

# tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http'

Введите следующую команду и используйте для просмотра подробностей программу анализа
:

# tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80

Glances

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

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

Установка:

sudo apt —reinstall install python3-pip -y

sudo apt —reinstall install python3 -y

pip3 install glances

Команда для запуска:

glances

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

Мониторинг сети с помощью других утилит

Самая мощная программа для мониторинга сети — это iptraf. Она предоставляет всю необходимую для администраторов информацию. Но, кроме нее, существуют и другие продукты. Рассмотрим их более подробно.

1. iftop

Утилита имеет более простой интерфейс и отображает намного меньше информации. Она выводит ip адреса отправителя и получателя, а также количество переданных или полученных данных за несколько последних секунд:

Установить программу в Ubuntu можно командной:

Хотя здесь отображается информация по каждому соединению, программа не может идентифицировать программу, которая создает пакеты.

2. nload

nload — это очень простая утилита, которая отображает только скорость входящих и исходящих соединений. Это позволяет сделать примитивный анализ сети linux и определить нагрузку. Отображается текущая скорость, максимальная и минимальная скорость за период работы. Также данные о скорости выводятся в виде графика, поэтому вам будет достаточно беглого взгляда, чтобы понять что происходит.

Для установки программы в Ubuntu используйте команду:

3. nethogs

Nethogs — это достаточно интересная утилита для мониторинга сетей, которая выделяется среди других. С помощью нее можно посмотреть какой процесс создает тот или иной трафик. Здесь отображаются PID процессов и имена пользователей, отсортированные по занимаемой пропускной способности сети:

Программа, как и другие доступна из официальных репозиториев, поэтому у вас не возникнет проблем с установкой:

4. bmon

Утилита bmon позволяет отображать достаточно подробно статистику по каждому сетевому интерфейсу. Она работает похоже на nload и выводит график кроме текстовой информации:

Для установки программы выполните:

5. Vnstat

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

Далее необходимо запустить сервис, для этого выполните такую команду:

Далее необходимо немного подождать, пока утилита соберет данные и можно просматривать статистику:

Здесь будет отображаться информация о нагрузке на сеть с указанием дат и периодов. Также вы можете посмотреть доступную информацию в реальном времени. Для этого используйте опцию -l:

Видео про использование и настройку vnstat:

6. bwm-ng

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

Для установки утилиты выполните такую команду:

7. speedometer

Это еще один простой инструмент, который позволяет выполнить мониторинг сети и выводит данные в виде красивых графиков. Для установки программы выполните:

Как видите, она есть в официальных репозиториев не всех дистрибутивов, зато вы можете установить программу из репозитория python.

Опция -r указывает интерфейс, с которого необходимо отображать количество полученных пакетов, а опция -t — отправленных.

8. netwatch

Netwatch — это небольшая утилита, которая входит в набор инструментов Netdiag и показывает сетевые соединения между локальной и удаленными системами, а также скорость, с которой будут передаваться данные. Для установки программы используйте:

Затем для запуска:

9. ifstat

Утилита ifstat показывает пропускную способность сети, измеряя количество переданных и принятых пакетов. Вывод утилиты можно использовать и анализировать в других программах. Утилита не выводит информацию об ip адресах или других параметрах, а только скорость. Для установки используйте:

Для запуска:

10. trafshow

Это утилита, очень похожа на iftop, которая отображает не только скорость передачи, но и сами соединения. Здесь выводится информация по соединениях, размеры пакетов и протокол. Для установки программы наберите:

Осталось запустить программу:

Red Hat Enterprise Linux

Операционная система создана на базе Fedora в июне 2014 года. Данный дистрибутив предназначен для корпоративного использования в финансовых организациях, телекоммуникационных компаниях и дата-центрах. От него напрямую зависит надежность и безопасность корпоративной IT-инфраструктуры.

С момента создания ОС для VPS-сервера прошла ряд капитальных обновлений, благодаря которым система обладает новыми возможностями. В частности, ее файловая система обеспечивает поддержку накопителей до 500 ТБ, а также может работать с контейнерами Docker.

Особенности Red Hat Enterprise Linux Server

  • Разрабатывался специально для серверов.
  • Централизованное управление всеми средствами аутентификации.
  • Автоматическое резервное копирование состояния дисковых образов для работающих гостевых систем.
  • Возможность разработки корпоративных приложений и решений на базе Linux.
  • Наличие несколько языков программирования.
  • Есть коммерческая поддержка.

Проверьте, установлен ли Python.

В большинстве случаев эта ошибка возникает в приглашении оболочки или командной строке, потому что python не установлен или поврежден. Давайте сначала проверим, установлен ли Python.

Выполните следующие команды, чтобы найти установленное местоположение Python.

$ which python3

или же

$ type -a python3

Вывод:

python3 is/usr/bin/python3
python3 is/bin/python3

или же

$ ls -l/usr/bin/python
$ ls -l/usr/local/bin

Запустите команду, чтобы проверить версию Python:

$ python3 --version

Простая команда запуска python3:

$ python3
Python 3.8.2 (default, Jul 16 2020, 14:00:26)
 on linux
Type "help", "copyright", "credits" or "license" for more information.

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

Установите Python в Ubuntu/Debian

Debian, Ubuntu и производные от них дистрибутивы поставляются с предустановленным python. Если он поврежден или не установлен, используйте следующую команду.

Чтобы установить python 2, введите:

$ sudo apt install python
After January 1, 2020 Python 2 no longer receives any updates, and recommend not using it.

или же

Чтобы установить python 3, введите:

$ sudo apt install python3

Python установлен из исходников, по умолчанию установлен в http://usr/local/bin/. В этом случае при вводе python в консоли будет выполняться не тот, который находится внутри /usr/local/bin/, а тот, который находится внутри/usr/bin/.

Если вы хотите выполнить тот, который находится внутри /usr/local/bin/, вы можете легко настроить систему, используя псевдоним. Псевдоним следует поместить в файл.bashrc, как показано ниже.

alias python=/usr/local/bin/python3.9

Благодаря диспетчеру пакетов dnf вы можете легко установить python в Fedora:

$ sudo dnf установить python38

Установите Python на RHEL/CentOS

Чтобы установить Python на RHEL, Oracle Linux и CentOS, используйте команду yum следующим образом:

$ sudo yum установить python

Выпуск самоподписанного сертификата

После установки Apache в операционной системе уже должен быть установлен openssl как зависимость к дистрибутиву. Поэтому можно сразу приступить к генерации сертификата.

Первоначально нужно перейти в директорию хранилища сертификатов с помощью команды:

cd /etc/ssl/certs

После чего требуется ввести команду генерации сертификата, где вместо <SERVER> нужно подставить имя компьютера, на котором планируется размещен Apache:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout <SERVER>.key -out <SERVER>.crt

 Во время выполнения команды будет задано несколько вопросов. Для «Common Name (e.g. server FQDN or Your bane)» нужно также указать имя сервера. Остальные поля заполняются произвольно (кроме «Country name» — здесь можно оставить по умолчанию).

Включение подсистемы Windows для Linux

Для включения компоненты «Подсистема Windows для Linux» в Windows 10 необходимо выполнить следующие действия:

  • открыть «Панель управления» (Пуск -> Служебные -> Windows -> Панель управления);
  • открыть окно «Компоненты Windows» (пункт «Программы» в «Панели управления» -> Включение и отключение компонентов Windows);
  • установить галочку напротив опции «Подсистема Windows для Linux» и нажать «ОК»;
  • перезагрузить операционную систему.

Для использования WSL 2 вам необходимо дополнительно ещё включить в окне «Компоненты Windows» необязательный компонент «Платформа виртуальной машины».

Какую версию WSL выбрать

Чтобы определиться какая версия WSL вам нужна, нужно рассмотреть их различия.

WSL 2 в отличие от WSL 1 имеет полнофункциональное ядро Linux с полной совместимостью системных вызовов. Это позволяет использовать внутри WSL 2 целый ряд приложений (Docker и другие). Если вам нужна поддержка этих приложений, то тогда однозначно стоит остановится на 2 версии этой подсистемы. К сведению, ядро Linux для WSL 2 собранно компанией Microsoft и будет автоматически обновляться через центр обновления Windows.

WSL 1 рекомендуется использовать для проектов, файлы которого будут находиться в файловой системе Windows. В этом случае вы получите более высокую производительность, чем на WSL 2.

На мой взгляд, использовать вторую версию WSL пока не имеет особого смысла, только если вы не используете Docker или другое приложение, которому нужна полная совместимость системных вызовов Linux. Т.к. при использовании WSL 2 вам необходимо будет располагать проект в файловой системе Linux, иначе производительность файловых систем ОС при работе с этим проектом будет достаточно низкой. Но в любом случае вы можете переключить WSL для дистрибутива Linux как на первую версию, так и на вторую, и посмотреть какой вариант этой подсистемы для работы вам более подходит.

Работа с версиями WSL

Установку версии WSL, которую вы хотите использовать по умолчанию, осуществляется посредством выполнения в PowerShell следующей команды (например, WSL 2):

Эта команда установит по умолчанию в качестве версии WSL 2. Если нужно WSL 1, то в вместо 2, нужно указать соответственно 1.

Проверить WSL версию, назначенному каждому из установленных дистрибутивов Linux можно в PowerShell через следующую команду:

Для того чтобы изменить назначенную WSL версию дистрибутиву Linux на другую:

Например, для того чтобы перевести Ubuntu-18.04 на WSL 2 необходимо выполнить команду:

Доступ к файловым системам ОС

Получить в Windows доступ к файлам WSL можно, например, через проводник, введя в его адресной строке путь или просто выполнив в Bash команду .

В WSL получение доступа к файловой системе Windows выполняется через . Например, для того чтобы в Bash перейти на диск необходимо ввести , а на — .

8. Iostat – Статистика ввода/вывода

IoStat – это простой инструмент, который собирает и показывает статистику по системному вводу и выводу на устройства хранения. Этот инструмент часто используется для отслеживания проблем производительности, в том числе на устройствах, локальных дисках, удалённых дисках таких как NFS. Программа по умолчанию недоступна. Она включена в пакет sysstat, т.е. для её использования нужно установить этот пакет.

iostat
Linux 4.9.6-1-ARCH (HackWare) 	29.01.2017 	_x86_64_	(3 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3,42    0,00    0,11    0,51    0,00   95,97

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1,57        23,90         1,79     372283      27897
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: