LINUX.ORG.RU

Избранные сообщения Mixa

Создание загрузочных образов boobstrap v1.0

Новости — Open Source
Группа Open Source

Хочу представить вашему вниманию фреймворк под названием boobstrap, написаный на POSIX shell, для создания загрузочных образов с дистрибутивами GNU/Linux. Фреймворк позволяет пройти весь пусть в три простых шага: от развёртывания системы в chroot, создания initramfs-образа включающего в себя систему из chroot, и в конечном счёте загрузочного ISO-образа. boobstrap включает в себя три утилиты mkbootstrap, mkinitramfs и mkbootisofs соответсвенно.

( читать дальше... )

>>> Получить исходный код

 

Spoofing
()

LXDE, lubuntu-desktop - открывать приложение или переключаться в него по горячей клавише

Форум — Desktop

Имеется debian 9 stretch LXDE. Открыта IDE, веб-браузер и терминал. Я хочу переключаться между ними не альт-табом, а по горячим клавишам. Я знаю, что это можно сделать с помощью рабочих столов, но у меня два монитора. Если раскидать приложения по рабочим столам, пространство экрана будет недоиспользовано.

В офтопике есть «закреплённые приложения» возле кнопки «Пуск». Когда нажимаем Win+1, Win-2 и т.п., запускается первое, второе и т.п. приложение . А если приложение уже запущено, то в него переключаюсь.

Можно ли так настроить LXDE? Или, может быть, есть какая-то ещё альтернатива?

РЕШЕНИЕ

# Установим программки...
> sudo apt-get install wmctrl wish xdg-utils
# Посмотрим, какие окошки у нас есть
> wmctrl -x -l 
0x03000046  0 sun-awt-X11-XFramePeer.jetbrains-phpstorm  deb8 rl [/y/rl] - ...ргт [rl] - PhpStorm
0x03600004  0 lxterminal.Lxterminal  deb8 den73@deb8: ~
0x03c00001  0 google-chrome.Google-chrome  deb8 Новая вкладка - Google Chrome
0x03c00014  0 google-chrome.Google-chrome  deb8 Developer Tools - https://www.google.ru/...
0x03800003  0 leafpad.Leafpad       deb8 (Без имени)
# Окошки можно искать по имени класса и по заголовку (man wmctrl).

Создадим скрипт для обработки горячих клавиш и запишем в файл ~/.config/горячие-клавиши-openbox.ш:

#!/bin/bash

function Диалог {
  echo "wm withdraw . 
  tk_messageBox -title {Помощник горячих клавиш} -message \"$0 сообщает:
[list $1]\"
  destroy ." | wish
}

command -v wmctrl || Диалог "Не установлена программа wmctrl"
case $1 in
  (W-1) 
   wmctrl -x -a Lxterminal \
   || xdg-open ~/Рабочий\ стол/lxterminal.desktop;;
  (W-2)
   wmctrl -x -a "Doublecmd" \
   || ~/doublecmd/doublecmd.sh;;
  (W-3) 
   wmctrl -a "- Google Chrome" \
   || google-chrome;;
  (W-4) 
   wmctrl -a "Developer Tools -" \
   || Диалог "$1 только активирует Chrome Developer Tools, но не запускает их";;
  (W-5) wmctrl -a "- Visual Studio Code" \
   || code;;
  ("") Диалог "В качестве параметра передай горячую клавишу, как она записана в OpenBox.";;
  (*) Диалог "Неизвестная горячая клавиша «$1»"
esac

# Сделаем файл исполняемым
> chmod u+x ~/.config/горячие-клавиши-openbox.ш
# Настроим конфигурацию LXDE
# Для LXDE
> leafpad ~/.config/openbox/lxde-rc.xml
# Для Lubuntu-desktop
> leafpad ~/.config/openbox/lubuntu-rc.xml

Добавляем в секцию keyboard:

    <keybind key="W-1"><action name="Execute">
       <command>~/.config/горячие-клавиши-openbox.ш W-1</command></action></keybind>
    <keybind key="W-2"><action name="Execute">
       <command>~/.config/горячие-клавиши-openbox.ш W-2</command></action></keybind>
    <keybind key="W-3"><action name="Execute">
       <command>~/.config/горячие-клавиши-openbox.ш W-3</command></action></keybind>
    <keybind key="W-4"><action name="Execute">
       <command>~/.config/горячие-клавиши-openbox.ш W-4</command></action></keybind>
    <keybind key="W-5"><action name="Execute">
       <command>~/.config/горячие-клавиши-openbox.ш W-5</command></action></keybind>

Применяем

> openbox --reconfigure

Сочетания Win+1 .. Win+5 теперь вроде работают.

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

P.S. работает также в Ubuntu 12.04; также проверено в Ubuntu 16.04 для рабочего стола lubuntu-desktop

 , , переключение приложений

den73
()

Запуск сервиса (скрипта) после загрузки рабочего стола

Форум — General

Доброго времени суток всем!

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

Пытаюсь сделать через systemd, а именно создаю в /etc/systemd/user/ файл myservice.service со следующим содержимым:

[Unit]
After=graphical.target

[Service]
Type=oneshot
ExecStart=/opt/myservice.sh

[Install]
WantedBy=default.target

Затем включаю сервис:

sudo systemctl --user --global enable get-list-resources

В результате скрипт запускается сразу после запуска иксов в момент появления экрана с логином.

Пробовал писать WantedBy=xsession.target вместо WantedBy=default.target. Результат тот же.

 

speed_vm
()

Not so Common Desktop Environment (NsCDE) — окружение рабочего стола в стиле CDE

Новости — Open Source
Not so Common Desktop Environment (NsCDE) — окружение рабочего стола в стиле CDE
Группа Open Source

Как говорится, GNU/Linux тем и хорош, что в нем можно настроить и привычный всем интерфейс а-ля Windows, а можно и сделать что-то непривычное и нестандартное.

Для любителей «ретро» хорошая новость — сделать свой компьютер похожим на старые добрые теплые ламповые компьютеры из начала 90х годов стало ещё проще.

Not so Common Desktop Environment, или сокращенно NsCDE — это современная версия всем известного олдскульного окружения CDE, которое долго время считалось классическим для Unix-подобных операционных систем.


CDE или Common Desktop Environment — это окружение рабочего стола для Unix и OpenVMS, созданное на базе Motif widget toolkit. Долгое время CDE считалась «классической» средой для unix-систем. Долгое время CDE было закрытым проприетарным софтом и в свободный доступ исходники популярной в 90-е среды были выложены только в августе 2012. Они, конечно же, не представляют никакого практического интереса, так как CDE безвозвратно морально устарел в плане своих возможностей и юзабилити.


В основе проекта лежит FVWM, дополненный патчами и надстройками, необходимыми для воссоздания интерфейса CDE. Настройки и патчи написаны на Python и Shell.

Разработчики задались целью создать удобное окружение рабочего стола в ретро-стиле, поддерживающее современное ПО и технологии, и не вызывающее дискомфорта при работе с ним. В рамках разработки были сделаны генераторы соответствующих тем оформления для Xt, Xaw, Motif, GTK2, GTK3, Qt4 и Qt5, благодаря которым стало возможным стилизовать под CDE почти все современные программы.

>>> Исходный код проекта GNU General Public License v3.0

>>> Видео-презентация

>>> Подробности

 , ,

Zhbert
()

Помогите разобраться в джунглях драйверов AMD

Форум — Multimedia

Все мои знания по драйверу AMD ограничиваются этими. «run-файл можно конвертнуть в DEB, а после установки надо выполнить „aticonfig --initial -f“, чтобы „иксы“ не пытались использовать драйвер radeon вместо fglrx, а ещё нужно грузиться с опцией nomodeset или radeon.modeset=0 (или добавить это в /etc/modprobe.d/любой_файл.conf)».

Сейчас всё стало сложно и запутанно. Драйвер radeon я понимаю: драйвер в ядре, драйвер в libdrm, драйвер в Mesa, и драйвер в «иксах». А с amdgpu какие-то дебри и джунгли.

Mesa 20.1-dev RADV vs. RADV+ACO vs. AMDVLK vs. AMDGPU-PRO Vulkan Radeon Linux Gaming Performance

4 реализации Vulkan! Долбануться можно, 4 реализации Vulkan... А сколько реализаций OpenGL и OpenCL? Объясните, пожалуйста, как начать пользоваться драйвером amdgpu. И, если можно, описание каждой из реализаций Vulkan, OpenGL и OpenCL.

И ещё такой вопрос. Как разгонять? На примере Radeon HD RX580. Раньше было просто, например так: aticonfig --odsc=600,900, где нужно подставить нужные частоты GPU и памяти.

 ,

ZenitharChampion
()

HOWTO: Загрузочная флешка для Legacy BIOS/EFI 32-bit/EFI 64-bit

Форум — General

Простая хаутушка, но в инете редко попадается последовательное описание всех шагов.

Задача: сделать флешку, которая грузится на любом относительно современном PC-совместимом железе (+в пределах разумного старья).

1.

Берём флешку, размечаем её в GPT.

2.

Нам потребуется 2 раздела под загрузчик + 1 раздел собственно под систему, и сколько вам еще нужно разделов под ваши задачи.

Я делал в GParted, поэтому команд для терминала не будет.

1-й раздел - достаточно выделить 4 мегабайта. Нужен для установки стартового образа grub для legacy BIOS. Файловая система - отсутствует. Разделу нужно поставить флаг bios_grub.

Дополнительно я еще перестраховался и оставил 4 мегабайта неразмеченного пространства перед первым разделом - чисто на всякий случай, мало ли что туда бутлоадеры пишут. (Ничего не должны писать.)

2-й раздел - fat32. Нужен для установки всех остальных частей grub. Размер - сколько не жалко. Я поставил 128 мегабайт. Файловая система нужна такая, которую понимает EFI, т.е. fat. (Gparted мне зачем-то автоматически поставил флаг msftdata, я не стал менять. Не знаю, на что он влияет.)

3-й раздел и последующие — под систему и всё остальное.

В fdisk получается примерно так:

Диск /dev/sdc: 28,66 GiB, 30752636928 байт, 60063744 секторов
Disk model: Ultra USB 3.0   
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: gpt

Устр-во    начало    Конец  Секторы Размер Тип
/dev/sdc1    8192    16383     8192     4M BIOS boot
/dev/sdc2   16384   278527   262144   128M Microsoft basic data
/dev/sdc3  278528 60061695 59783168  28,5G Файловая система Linux

3.

Дальше ставим 3 варианта grub:

mount /dev/sdc2 /mnt/sdc2
grub-install --target=i386-pc --boot-directory=/mnt/sdc2/boot --verbose /dev/sdc
grub-install --target=i386-efi --efi-directory=/mnt/sdc2 --boot-directory=/mnt/sdc2/boot --removable --verbose /dev/sdc
grub-install --target=x86_64-efi --efi-directory=/mnt/sdc2 --boot-directory=/mnt/sdc2/boot --removable --verbose /dev/sdc

Всё.

Конфиг у всех трёх общий, отличаются только бинарники. Как отредактировать конфиг boot/grub/grub.cfg и поставить ОС на системный раздел — сами разберётесь, не маленькие.

 , , ,

Deleted
()

Чего использовать на десктопе, чтобы не болели глаза и не тормозило

Форум — Desktop

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

Про консоль не говорю. Говорю ПРО ГУИ и desktop еxperience.

Все GUI медленные, тормозные, деревянные. Гребаный файрфокс запускается секунд по 10. Даже в офтопике все летает лучше.

Конфигурация pc: i7-2600k, 8Gb, 210 nVidia, HDD.

Вопросы:

  • Чего вы используете, чтобы не тормозило и не болели глаза?
  • Какой GUI используешь?
  • Какие шрифты ставишь?
  • Используешь ли SSD на Desktop?

 ,

dopedopedope
()

Выбор дистрибутива для постоянного использования и работы

Форум — General

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

  1. Шуструю систему
  2. Безопасную, т.к. не хочется утечки информации
  3. Разумеется стабильную

Также немаловажен эстетический пункт, когда система радует глаз и работать хочется лучше)

Опыт был только с убунтой. Сейчас чисто визуально приглянулась Deepin, но слышал, что там есть проблемы с безопасностью. Буду рад услышать серьезные аргументы прям по полочкам, чтобы даже мне было понятно, что какая-нибудь %DistribName% самая лучшая и вообще высшая система, а все остальные даже рядом стоять недостойны))

 ,

artegor
()

Низкая скорость при копировании на флешку

Форум — General

О данной проблеме уже писали тут: USB flash плохое копирование файлов на Debian 9 У меня аналогичная ситуация. При копировании файла на флешку с файловой системой fat32 индикатор быстро заполняется примерно до 80-90%, а потом надолго остаётся на этой отметке.

dd показывает скорость в 1 мегабайт в секунду.

OC - Ubuntu 18.04

 , , ,

qx255
()

TT2020 — свободный шрифт пишущей машинки от Фредрика Брэннана

Новости — Open Source
Группа Open Source

1 января 2020 года Фредрик Брэннан (Fredrick Brennan) представил свободный шрифт «TT2020» — многоязычный шрифт пишущей машинки созданый с помощью редактора шрифтов FontForge.

Особенности шрифта

  • Реалистичная симуляци дефектов печати текста свойственных печатным машинкам;
  • Многоязычность;
  • 9 начертаний «дефектов» для каждого символа в каждом из 6 стилей шрифта;
  • Лицензия: SIL OFLv1.1 (SIL Open Font License, version 1.1).

Среди предыдущих шрифтовых работ стоит отметить свободные шрифты «Chomsky» (стилизованый под текст заголовка издания «The New York Times»), «Some Time Later» (стилизованый под шрифты из комиксов и мультсериала «Губка Боб Квадратные Штаны»), «LCD Font» (стилизованый под 14-сегментный шрифт ЖК-дисплеев) и другие.

Фредрик также принимает активное участие в разработке и подготовке следующего релиза FontForge.

>>> Подробности

 , typewriter,

atsym
()

Firefox. Встроенный переводчик.

Форум — Desktop

Доброго времени! На сколько мне известно, в Firefox (в версиях выше 41) имеется встроенный переводчик страниц). О чем впринципе и свидетельствуют некоторые скрытые настройки:

  1. browser.translation.detectLanguage
  2. browser.translation.ui.show
  3. browser.translation.engine Так же на просторах интернета есть инструкции о том, как включить данный переводчик. К примеру вот:
    1. Убедитесь, что у вас установлен Firefox 41 или выше, так как в более младших версиях «огненного лиса» данного функционала нет. Чтобы увидеть версию, введите «about:support» в адресную строку браузера и нажмите Enter:
    1. Введите в адресную строку «about:config» и нажмите «Enter». В появившемся сообщении кликните по кнопке - «Я обещаю, что буду осторожен!»
    1. С помощью поисковой строки найдите параметр «browser.translation.detectLanguage» Дважды кликните по строчке с ним левой кнопкой мыши чтобы присвоенное ему значение сменилось с «false» на «true»
    1. Сделайте то же самое для параметра «browser.translation.ui.show»
    1. Далее найдите параметр «browser.translation.engine». Дважды кликните по нему и в появившемся окошке сотрите «bing», а вместо него вручную напишите «yandex» и нажмите кнопку ok
    1. Перейдите на сайт Yandex’s Translate API и войдите там в свою учётную запись на Яндекс, нажав ссылку Log in в верхнем правом углу по ссылке: https://tech.yandex.com/translate/
    1. Теперь прокрутите страницу вниз и кликните по ссылке «Get a free API key»
    1. На следующей странице поставьте галочку напротив «I have read….» и кликните по кнопке «Get API key»
    1. В итоге Яндекс сгенерирует для вас уникальный ключ, благодаря которому вы сможете встроить его переводчик в ваш Firefox. Скопируйте этот ключ в любой текстовый файл
    1. Вновь вернитесь на страницу «about:config». Щёлкните мышкой на пустом месте и в контекстном меню выберите «Создать» - «Строка»
    1. В появившемся окошке в качестве имени строки укажите "browser.translation.yandex.apiKeyOverride "
    1. В следующее, заключительное, окошко целиком скопируйте ключ, полученный в пункте 9.
  • Теперь закройте все служебные страницы, перезапустите браузер и попробуйте зайти на любой иностранный сайт.

И впринципе данная инструкция (по моему мнению) имеет право на жизнь, но дело в том, что у меня на пункте 10 возникает проблема, в контекстном меню нет «Создать», да и вообще контекстное меню страницы about:config выглядит так же как и на любой другой странице, хотя там добжно появляться совсем другое (служебное) контекстное меню. Ну и собственно теперь сам вопрос. Как воплотить данную инструкцию в Firefox?

И впринципе данная инструкция (по моему мнению) имеет право на жизнь, но дело в том, что у меня на пункте 10 возникает проблема, в контекстном меню нет «Создать», да и вообще контекстное меню страницы about:config выглядит так же как и на любой другой странице, хотя там добжно появляться совсем другое (служебное) контекстное меню. Ну и собственно теперь сам вопрос. Как воплотить данную инструкцию в Firefox?

Firefox 73.0. И впринципе данная инструкция (по моему мнению) имеет право на жизнь, но дело в том, что у меня на пункте 10 возникает проблема, в контекстном меню нет «Создать», да и вообще контекстное меню страницы about:config выглядит так же как и на любой другой странице, хотя там добжно появляться совсем другое (служебное) контекстное меню. Ну и собственно теперь сам вопрос. Как воплотить данную инструкцию в Firefox?

И впринципе данная инструкция (по моему мнению) имеет право на жизнь, но дело в том, что у меня на пункте 10 возникает проблема, в контекстном меню нет «Создать», да и вообще контекстное меню страницы about:config выглядит так же как и на любой другой странице, хотя там добжно появляться совсем другое (служебное) контекстное меню. Ну и собственно теперь сам вопрос. Как воплотить данную инструкцию в Firefox?

  • Firefox 73.0.
  • Kubuntu 18.94 LTS.

 

parnyagan
()

Посоветуйте браузер

Форум — Desktop

Собственно сабж.

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

 , ,

rk-d
()

much performance II

Галерея — Скриншоты

Всем привет! Спустя некоторое время выкладываю продолжение результатов «упорных» стараний над оптимизацией Gentoo на ПК с Intel Celeron Coppermine 900 MHz и 256 Mb RAM. Что сделал:

  • С помощью ноута собрал 17-ую версию;
  • Ядро теперь 4.14.8, а так же я поснимал еще больше звездочек в menuconfig (на старте без X и MariaDB - min 13 Mb RAM, c XFCE - min ~60 Mb RAM);
  • Нет теперь dm, запуск X происходит автоматически с помощью getty+autologin;
  • Браузер Palemoon SSE версия работает шустрее, страницы открывает почти как в 2018 году;
  • Все тот же gimp2 и теперь OpenOffice 4, который пришел на смену LO, так как LO заколебал своими багами;

Была попытка использовать вылизанную Plasma 5, но черепашьему HDD это не понравилось.

Некоторое время Gentoo даже обновлялась до первого прихода gcc. ПК использовался в качестве печатной машинки, для работы с таблицами, для того, чтобы поправить картинки в gimp, и в качестве сервера CUPS и базы данных MariaDB с последующем подключением через OO Base.

Вот еще два скриншота:

К сожалению, это последние скриншоты, ко мне наведался «ИТ отдел» с новым ПК, с установленным Windows 7, мой компьютер обещали форматнуть с аргументом !внезапно! «линукс нелицензионный, нельзя, точка», и скорее всего будет отправлен на свалку. Комп 04.01.2002 даты рождения, с ним я работал 2 года, был мной почищен от пыли и от XP ZverCD с заменой термопасты. По информации из BIOS с 45'С упало до 36. Оформляется stage4. Сегодня или завтра его последний день :(

И немного конфигов:

>>> Просмотр (1280x1024, 537 Kb)

 ,

mfhunruh
()

Как правильно копировать вывод терминала

Форум — Linux-org-ru

Это — небольшая заметка для новичков. Модераторам — просьба закрепить.

В принципе, краткий ответ на вопрос «Как правильно копировать вывод терминала?» будет: www.linux.org.ru/help/markdown.md

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

Итак, вот ситуация: вас попросили процитировать вывод какой-либо команды со своего компа. Для простоты, скажем,

lsb_release -a
Вот как это сделать правильно:

  1. Открываете свой эмулятор терминала и выполняете там эту самую команду: https://wampi.ru/image/RjF9fEZ
  2. Потом выделяете (банально зажатой левой кнопкой мыши) нужный вам вывод в терминале: https://wampi.ru/image/RjF9mSf
  3. Потом копируете этот вывод в буфер обмена или через хоткей (в большинстве терминалов Ctrl+Shift+C), или через банальное контекстное меню: https://wampi.ru/image/RjF9vby
  4. Потом, никак не модифицируя, просто вставляете в ответ: https://wampi.ru/image/RjF9wOk
  5. Потом добавляете 3 обратных апострофа ``` на строчку выше и на строчку ниже текста (обратный апостроф ` и апостроф ' — разные символы, не путайте, обратный апостроф часто находится на клавише с буквой Ё): https://wampi.ru/image/RjF93Wg
  6. Нажимаем кнопку «Предпросмотр» и о чудо — текст красиво и правильно выделен: https://wampi.ru/image/RjF9Fdt
  7. Можно нажимать внизу кнопку «Поместить», зная, что всё будет отображаться как надо и читаться легко.

Вообще, как видите, ничего сложного.

P.S. Ранее я неправильно писал названия символов и сам их путал, теперь вроде верно.

https://ru.wikipedia.org/wiki/Машинописный_обратный_апостроф

 

Vsevolod-linuxoid
()

Как понять, отчего программа тормозит?

Форум — General

Иногда у меня сильно тормозят некоторые программы (chrome/chromium, файловые менеджеры на разных тулкитах и даже gvim иногда). Иногда я подключаюсь к программе при помощи strace и пытаюсь понять, в чём причина тормозов. Как правило, безуспешно — мне не хватает базовых знаний (я не программист).

Вопрос: что (кроме man strace) нужно знать для поиска тормозов ПО?

Можете накидать годных ссылок на описание процесса решения проблем при помощи strace (и другого ПО)?

 

Harliff
()

Помогите пожалуйста с браузером для очень слабой системы (lubuntu)

Форум — General

Валялся у меня старый нетбук, решил туда установить lubuntu, все хорошо установилось, только вопрос с браузером, Firefox уж очень сильно лагает, работать невозможно, система такая:Процессор: Intel Atom N450 1,66 ГГц; Оперативная память: 1 ГБ DDR2, одноканальный контроллер памяти; Какой лучше всего поставить браузер ?

 ,

greenl
()

Делюсь опытом ускорения чтения файловой систем

Форум — General

Привет, друзья! С Праздником!

Интересуясь настройкой производительности своего ноута, натолкнулся на интересный тест в комментарии файла ioblksize.h (coreutils) от автора его кода Jim Meyering:

#!/bin/bash
for i in $(seq 0 10)
	do bs=$((1024*2**$i))
    printf "%7s=" $bs
    timeout --foreground -sINT 2 \
        dd bs=$bs if=/dev/zero of=/dev/null 2>&1 \
        | sed -n 's/.* \([0-9,.]* [GM]B\/s\)/\1/p'
done

Из приложенной таблицы результатов тестов разных процессоров видно, что в среднем наибольшая скорость чтения наблюдается при размере блока 128 Кб:

                per-system transfer rate (GB/s)
   blksize   #1    #2    #3    #4    #5    #6    #7
   ------------------------------------------------
      1024  .73   1.7   2.6   .64   1.0   2.5   1.3
      2048  1.3   3.0   4.4   1.2   2.0   4.4   2.5
      4096  2.4   5.1   6.5   2.3   3.7   7.4   4.8
      8192  3.5   7.3   8.5   4.0   6.0  10.4   9.2
     16384  3.9   9.4  10.1   6.3   8.3  13.3  16.8
     32768  5.2   9.9  11.1   8.1  10.7  13.2  28.0
     65536  5.3  11.2  12.0  10.6  12.8  16.1  41.4
    131072  5.5  11.8  12.3  12.1  14.0  16.7  54.8
    262144  5.7  11.6  12.5  12.3  14.7  16.4  40.0
    524288  5.7  11.4  12.5  12.1  14.7  15.5  34.5
   1048576  5.8  11.4  12.6  12.2  14.9  15.7  36.5

Но на некоторых машинах чтение ФС очевидно быстрее с альтернативным размером блока. Так оказалось и в случае с моим N3540:

   1024=667 MB/s
   2048=1,2 GB/s
   4096=2,1 GB/s
   8192=3,2 GB/s
  16384=4,2 GB/s
  32768=5,1 GB/s
  65536=5,8 GB/s
 131072=6,2 GB/s
 262144=6,5 GB/s
 524288=6,6 GB/s
1048576=5,4 GB/s

Наблюдается очевидный пик при размере блока 512 Кб. Тем не менее, по умолчанию при подключении диска к системе параметр read_ahead_kb устанавливается в 128 Кб. Чтобы проверить, повлияет ли на скорость чтения ФС изменение размера блока по рекомендации теста Jim Meyering, я провёл ряд испытаний в максимально одинаковых условиях: сразу после загрузки, когда участвующие в тестах дирректории ещё не кэшированы. Засекал время на копирование файлов с жёсткого диска в /tmp. Использовал как системную cp, так и утилиту rsync. В тестах принимали участие процессор N3540 и SSD от одного производителя. Результат в секундах, ФС ext4.

Видео 2,4 ГбМелкие файлы (2110 шт.) 1,7 Гб
командаcp -rrsync -avhiscp -rrsync -avhis
размер блока128 Кб512 Кб128 Кб512 Кб128 Кб512 Кб128 Кб512 Кб
«холодный старт»10,6989,57921,78113,9308,6088,22716,89612,048
повторное копирование3,9052,80512,50812,4852,0482,0279,1418,990

Как видно из таблицы, с блоком 512 Кб наблюдается значительное ускорение при чтении незакэшированного содержимого диска (кэшированные файлы читаются примерно одинаково). Особенно это сказывается на работе rsync. Чтобы изменение сделать постоянным, добавил правило udev:

ACTION=="add|change", SUBSYSTEM=="block", RUN+="/bin/sh -c '/bin/echo 512 > /sys%p/queue/read_ahead_kb'"

Результатом очень доволен. Приятно узнать, что твой компьютер может больше, лучше, быстрее. А самое важное – на ожидание копирований/перемещений файлов тратится меньше драгоценного времени.

Интересно, с каким размером блока у вас файловая система работает быстрее? Поделитесь в комментариях!

 , ,

rmu
()