LINUX.ORG.RU
ФорумTalks

Устаревшие «фишки», вредные советы, бесполезные «оптимизации» и прочий карго-культ

 , ,


7

1

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


Начну с того, что первым вспомнилось:

1. sudo make install.
Довольно часто в инструкциях по установке софта под «онтопик» говорят делать это. Не знаю, почему вообще кто-то считает это хорошей идеей (могут быть, наверное, исключения, но не советовать же это в качестве стандартного способа установки). Если пакета под ваш дистрибутив нет, используйте Flatpak, AppImage, AUR, PPA, Docker или хотя бы tar.gz, распакованный в пользовательскую директорию. (Snap не используйте, Snap — говно.)

2. sudo gedit.
В основном в «гайдах» по настройке чего-то на «бубунте». Ибо пишут эти такие же «бубунтята». Консольный текстовый редактор и то такая себе идея от рута запускать. Hint: man sudoedit.

3. «/ на SSD, $HOME на HDD».
Почему-то у линуксоидов так сложилось, что принадлежащие пользователю файлы хранятся в одной куче с данными, пренадлежищими программам. Из-за этого остаётся либо выключать в ФМ показ скрытых файлов (а потом снова вклюать, когда понадобится, после чего снова отключать), либо лицезреть помойку. Но самое страшное последствие данного маразма проявляется, когда у пользователя имеется SSD и HDD и он решает на первый поставить систему, а на второй вынести $HOME. В итоге данные, которые по назначению совпадают с содержимым / (только являются при этом специфичными для конкретного пользователя), которые программы постоянно читают и перезаписывают, оказываются на HDD. Храните свои пользовательские данные в /data/ (как в андроиде), /mnt/data/ или где-то ещё. А $HOME пусть остаётся на SSD, на том же разделе, что и /. (Хранить все данные исключительно на HDD тоже не обязательно.) Местоположение папок «Загрузки», «Документы», «Изображения» и т. д. можно настроить средствами DE либо через конфиг XDG User Directories.

4. @gremlin_the_red пишет по поводу CONFIG_HZ=1000 для плавности:

Ммм, карго культ он такой. Это очень много лет, как абсолютно ничего не даёт. […] В нашей реальности 2021го не осталось шедулеров, привязанных к config_hz, это дела давно минувших дней.

5. Отдельный раздел для swap.
Зачем лишний раз усложнять себе жизнь и плодить разделы, если можно сделать swap в виде файла? И нет, производительность от этого не упадёт. (Оказывается, что если HDD, то таки упадёт, но там, наверное, уже неважно (см. комментарии).)

★★★★★

Последнее исправление: sudopacman (всего исправлений: 3)

А $HOME пусть остаётся на SSD, на том же разделе, что и /

хреновая идея, т.к. в $HOME пишет стим по дефолту, SSD-шник моментально забьётся

Местоположение папок «Загрузки», «Документы», «Изображения» и т. д. можно настроить средствами DE либо через конфиг XDG User Directories.

отдельные телодвижения

В итоге данные, которые по назначению совпадают с содержимым / (только являются при этом специфичными для конкретного пользователя), которые программы постоянно читают и перезаписывают

ммм… нет, там всего три активные директории: .config .mozilla и .cache

вот их можно примонтировать на ssd, все остальные либо редко читаются, либо жирные

next_time ★★★★★
()

sudo make install

Юзаю sudo porg -lp shitname "make install".

byko3y ★★★★
()
Ответ на: комментарий от sudopacman

~.local/bin

Нет такой директории.

usr — ~/.local

Когда usr начала вмещать /bin?

opt — ~/

опт вмещает /usr, /etc, /bin?

Директории, существование которых на уровне пользователя бессмысленно, опущены

То есть сходство вы делаете на основе 5 директорий и зауши притянутых аргументов?

А зачем .nuget и .cargo на HDD выносить? Ради тормозов?

А зачем мне это на быстром носителе? Ну и считывание с диска — далеко не самый долгий процесс при сборке проекта на расте.

fernandos ★★★
()
Ответ на: комментарий от next_time

хреновая идея, т.к. в $HOME пишет стим по дефолту, SSD-шник моментально забьётся

То есть ради одного «стима» переносить весь хомяк на HDD. Что мешает пару кнопок в настройках нажать и сделать каталог с «игорем» в нужном месте?


То есть смена настроек XDG User Directories — это

отдельные телодвижения

а

вот их можно примонтировать на ssd, все остальные либо редко читаются, либо жирные

— нет?

sudopacman ★★★★★
() автор топика
Последнее исправление: sudopacman (всего исправлений: 1)

Есть подозрение, что п.4 полезен для сетевых шедулеров.

На сколько я помню, раньше, точность htb зависила от таймера.

п.5 - отдельный раздел для swap - это полезно для ловли oops! Как выяснилось, ramoops неработоспособен на многопроцессорных машинах.

vel ★★★★★
()
Ответ на: комментарий от a1batross

У меня ни один SSD не умер

Я два из двух похоронил. По сроку службы. А вот hdd за те же 11 лет только 1 из 7 до реалока дошел, да и то «вовремя», всё руки не доходили на хранилке харды побольше воткнуть, место давно поджимало.

anc ★★★★★
()
Ответ на: комментарий от fernandos

Нет такой директории.

Потому что по умолчанию в «хомяке» нет исполняемых пользователем файлов. Но когда они есть, их принято хранить в ~/.local/bin.

Когда usr начала вмещать /bin?

Уже давно:

➜  ~ ll /bin
lrwxrwxrwx 1 root root 7 May 31 03:39 /bin -> usr/bin

опт вмещает /usr, /etc, /bin?

В различных директориях внутри $HOME может складываться то же, что и в opt.

То есть сходство вы делаете на основе 5 директорий и зауши притянутых аргументов?

Хватит шланговать.

А зачем мне это на быстром носителе?

А зачем его оттуда убирать?

sudopacman ★★★★★
() автор топика
Ответ на: комментарий от sudopacman

Потому что по умолчанию в «хомяке» нет исполняемых пользователем файлов

Ага, поэтому хомяк не так похож на корень.

Уже давно:

Не у всех.

Хватит шланговать.

Это я шлангую? У вас аргументы на уровен «смотрите, тут вот есть директория для бинарников, но её нет, но похоже же». Вы не понимаете, что 5 директорий из где-то 20 — ничто? Где в корне дотфайлы? Их нет, структура хомяка не соответствует структуре корня.

А зачем его оттуда убирать?

Директории разрастаться ещё сильнее, зачем место тратить?

fernandos ★★★
()
Ответ на: комментарий от Nervous

Ну можно кончно всё на одном физическом носителе хранить и не париться. Здесь же рассматривается распространённая ситуация, когда для быстрой работы софта маленький SSD, а для файлопомойки - большой HDD. Так дешевле чем покупать большой SSD.

eternal_sorrow ★★★★★
()
Ответ на: комментарий от sniper21

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

sudopacman ★★★★★
() автор топика
Ответ на: комментарий от sudopacman

Ну смотря что значит трястись. Если можно обойтись без ненужной записи на ccd то почему бы и нет?

anc ★★★★★
()
  1. Отдельный раздел для swap. Зачем лишний раз усложнять себе жизнь и плодить разделы, если можно сделать swap в виде файла? И нет, производительность от этого не упадёт.

Упадёт на HDD: https://www.vidarholen.net/contents/blog/?p=1110

kmeaw ★★★
()

И нет, производительность от этого не упадёт.

Проверял? Или применил тезис демагога «это общеизвестно»? :)

zemidius
()
Ответ на: комментарий от fernandos

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

hateWin ★☆
()
  1. Минимальная инструкция для установки в юниксах в /usr/local.
  2. О да. Купленный за много денех ссд изнашивается и к концу недели обязательно крякнется. Любая запись на ссд приближает его конец, а торренты так вообще убьют к концу дня. На прозводительность ссд следует любоваться строго в бенчмарке.
undef ★★
()
Ответ на: комментарий от hateWin

Тем, что sudoedit копирует (под рутом) во временный файл содержимое того, что редактируем, запускает редактор (не под рутом), а после, если обнаружены изменения, копирует (под рутом) изменения обратно. Таким образом, редактор работает под непривилегированным пользователем в обычном окружении.

Запуск редактора под рутом плох по двум причинам:

  1. Окружение отличается от пользовательского. Другие конфиги ($HOME/.vimrc), другие переменные окружения (sudo может чистить environment, поведение зависит от настроек). Из-за этого редактор может выглядеть непривычно, работать неправильно или вовсе сломаться; например, если sudo почистит $DISPLAY и/или $XAUTHORITY, а редактор графический (является X11-клиентом).

  2. Безопасность. Из редактора, запущенного под рутом, можно отредактировать другие файлы или запустить шелл (! в vim). По этой причине в sudoers лучше не давать доступ к sudo vim /some/file, так как это примерно то же самое, что дать доступ к sudo bash.

kmeaw ★★★
()
Ответ на: комментарий от fernandos

Ага, поэтому хомяк не так похож на корень.

Исполняемых файлов в «хомяке» нет, потому что они уже есть в системе. За исключением случаев, когда софт устанавливается для конкретного пользователя (Flatpak, AppImage, Tor Browser и т. д.). А для программных данных «хомяк» по определению выполняет ту же функцию, что и /, но локально.

Вы не понимаете, что 5 директорий из где-то 20 — ничто?

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

Директории разрастаться ещё сильнее, зачем место тратить?

Его так сильно не хватает?

Где в корне дотфайлы? Их нет, структура хомяка не соответствует структуре корня.

При чём тут структура? Речь идёт о функциях. /etc/programname/programname.conf соответствует ~/.config/programname/programname.conf и т. д.

sudopacman ★★★★★
() автор топика
Ответ на: комментарий от chenbr0

Линукс не совсем корректно работает со старым железом.
Фряха и серверная винда лучше поддерживают старое железо.

А-фи-геть... Это насколько старое железо и какое именно?

anc ★★★★★
()
Ответ на: комментарий от zemidius

Проверял?

Я знаю, почему тезис «swap-файл медленее, т. к. находится поверх ФС» неверный. И это если не общеизвестно, то как минимум легко гуглится.

sudopacman ★★★★★
() автор топика
Последнее исправление: sudopacman (всего исправлений: 2)
Ответ на: комментарий от anc

Если можно обойтись без ненужной записи на ccd SSD то почему бы и нет?

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

sudopacman ★★★★★
() автор топика
  1. sudo make install.

До сих пор есть софт, который так и распространяется, например Anki. Так и ставлю каждый свежий релиз.

  1. sudo gedit.

SUDO_EDITOR="gedit -s", рекомендую, а также скрытый ярлык, где Exec=sudoedit %F, чтобы редактировать файлы из наутилуса за пределами хомяка.

  1. «/ на SSD, $HOME на HDD».

Маялся такой фигней ради сохранности ссд, но завязал, всё лежит в /, удобно.

  1. Отдельный раздел для swap.

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

papin-aziat ★★★★★
()
Ответ на: комментарий от hateWin

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

Та ну... Они прямо-таки в любых условиях всегда хранятся линейно и ещё поделено на кол-во блинов*2.

anc ★★★★★
()
Ответ на: комментарий от papin-aziat

До сих пор есть софт, который так и распространяется, например Anki. Так и ставлю каждый свежий релиз.

Anki есть в AUR и на Flathub. AppImage тоже есть. Не надо никаких make install.

sudopacman ★★★★★
() автор топика
Ответ на: комментарий от papin-aziat

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

А если нужно будет увеличить размер swap? Или захочется уменьшить?

sudopacman ★★★★★
() автор топика
Ответ на: комментарий от sudopacman

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

papin-aziat ★★★★★
()
Ответ на: комментарий от sudopacman

Если это в ущерб производительности

Значит не трястись. Я именно про вариант когда спокойно можно обойтись.
ЗЫ Спасибо за исправление. Даже не догадаетесь откуда такое родилось. :) Каталог в ovpn :)

anc ★★★★★
()
Ответ на: комментарий от sudopacman

Вот я тоже так думал, поэтому заморачивался с файлом, но там лишь какие-то мегабайты. Я уже swapiness выставил 100, и всё равно мало используется своп.

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

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

papin-aziat ★★★★★
()
Ответ на: комментарий от sudopacman

А если нужно будет увеличить размер swap?

Значит докуплю памяти.

Или захочется уменьшить?

Ну зааа где-то 27 лет такого желания не возникало, так что предпочту не думать об ответе на этот вопрос. Хотя решений больше одного и если понадобиться, то буду отталкиваться от конкретных условий.

anc ★★★★★
()
Ответ на: комментарий от CrX

Повсеместное использование докера, где надо и не надо. Причём скачивая собранное Васяном.

+1.

Сегодня на Реддите и HackerNews было обсуждение, что первый результат поиска по ключевому слову Minecraft (minecraft101/minecraft-server) - это не Minecraft, а криптомайнер. Более того, детектируется ClamAV’ом. Т.е. эти товарищи, которые за Docker Hub отвечают, даже элементарные автоматизированные проверки на малварь не делают.

AEP ★★★★★
()

Из-за этого остаётся либо выключать в ФМ показ скрытых файлов

вот бесит, хоть из родного /home не сваливай, будто тебя из своего дома выгоняют.

darkenshvein ★★★★★
()
Ответ на: комментарий от Zhbert

gedit в принципе нельзя запускать. как и любой gtk-софт.

а то одним прекрасным утром проснёшься и (не) обнаружишь у себя CoC

darkenshvein ★★★★★
()

sudoedit

Как много у тебя свободного времени? Можно ведь сократить на 1 символ - sudo -e

SR_team ★★★★★
()
Ответ на: комментарий от zemidius

Устаревшие «фишки», вредные советы, бесполезные «оптимизации» и прочий карго-культ (комментарий)

В ОП я оговорку всё равно добавлю, но потом.

sudopacman ★★★★★
() автор топика
Последнее исправление: sudopacman (всего исправлений: 2)
Ответ на: комментарий от papin-aziat

а также скрытый ярлык, где Exec=sudoedit %F, чтобы редактировать файлы из наутилуса за пределами хомяка.

gedit разве не умеет запрашивать права через Polkit, если сохраняется файл другого пользователя или в чужую директорию?

SR_team ★★★★★
()
Последнее исправление: SR_team (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.