Задать вопрос
Ответы пользователя по тегу Linux
  • Как обнаружить высокое потребление CPU?

    @rPman
    Для определения нагрузки однопоточного не асинхронного приложения достаточно считать время, которое выполняется запрос. Если у тебя несколько процессов, то считать нагрузку для каждого отдельно.

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

    Но, так как часто бывает, процесс большую часть времени чего то ждет, например IO операции с базой, сетью или диском, то таким образом не получится вычислить нагрузку именно на процессор. Поэтому, либо перед каждой такой операцией отключаешь счетчик (т.е. снова засекаешь время начала и конца) либо используешь средства операционной системы, для определения нагрузки на процессор конкретным процессом/потоком... они для каждой ОС и фреймворков/языков программирования - свои
    Ответ написан
  • Полноценная Убунта поверх WSL?

    @rPman
    Главная беда windows, которая многократно ухудшается при использовании wsl - это медленная работа с диском, первая же статья из гугла где проводили тесты
    Methods
    For this experiment, I used Windows Version 2004 build 19035.1000 on a ThinkPad X1 Extreme with 32GB of RAM and a Samsung 970 Evo Plus 1TB NVMe SSD.

    The four tests are:

    yarn build create-react-app: Use webpack and babel to build the basic open source create-react-app. This generates about 40KB of gzipped code.
    yarn build tsnsi: Use webpack and typescript to build a large proprietary application that I work on most days. This generates about 40MB of minimized javascript code. This repo contains just over 100000 files. THANKS node_modules!
    du -sh tsnsi: Calculate disk usage over the 100000 small files in the proprietary project.
    du -sh cpbotha.net: Calculate disk usage over my personal blog’s hugo source files. 4700 files of varying sizes occupying about 780MB.

    In all but one case (du tsnsi on WSL2 NTFS, because the spread was just too great), I ran the test multiple times, and recorded the average time in seconds. After the first run, standard deviation was low.

    In all cases, the built-in Microsoft anti-virus real-time protection was disabled, as that can have a significant effect on IO-based benchmarks.

    Test WSL 1 ntfs WSL 2 ntfs WSL 2 samba WSL 1 lxfs WSL 2 ext4 native linux
    yarn build c-r-a 11.89 63.14 13 7.38 5.8 4.63
    yarn build tsnsi 45.25 263.71 65 31.70 28.75 24.13
    du tsnsi 4.9 70 - 155 (4x) 13.5 8.6 0.19 0.19
    du cpbotha.net 0.24 3.7 0.5 0.074 0.011 0.015
    Числа - время выполнения в секундах, антивирус отключен. Не вижу смысла что то еще добавлять.

    p.s. wsl - отличная идея, 1 версия позволяет работать числодробилкам на процессоре, без заметной потери производительности, 2 версия - позволяет устаналивать драйвера на gpu и запускать приложения числодробилки на видеокартах, сам лично не пробовал но пишут что работает без потери производительности... Считаю это лучший способ постепенно уходить от windows it разработчикам, которые все еще сидят на этой платформе но не имеют никакого опыта и резко все еще опасаются это сделать. Все равно многие вещи через docker там и так уже запускаются, помучавшись с тормозами будет логично выкинуть windows и идти в мир linux,... а там надеюсь наконец и производители оборудования подтянутся.
    Ответ написан
  • Можно ли в Linux на файловой системе EXT4 запретить именовать файлы одинаково с разным регистром букв?

    @rPman
    Принципиально поискал решение сам а потом пообщался с ИИ (anthropic)... в общем ИИ молодец но бессмысленно пытаться от него добиваться решения в лоб (проблема в том как документация к mount написана - все в одной куче, если ИИ дать мануал и задать вопрос - он корректно ответит, иначе по памяти он ключи одних файловых систем применит к ext4 и скажет что можно, всегда нужно проверять).

    В общем у файловых систем hpfs, vfat и ntfs есть опции, позволяющие такой функционал, но ext4 нет

    Зато есть fuse файловые системы, являющиеся прослойками, добавляющие возможности, например ciopfs (есть в репах), это надстройка поверх любой файловой системы, добавляющая нужный функционал... нужно понимать то она чуть чуть медленнее, и имеет смысл только для пользовательских каталогов, настоятельно не рекомендую в ней размещать базы данных и любые другие файлы с многопотоковым доступом.
    Ответ написан
    4 комментария
  • Как восстановить ввод в Linux?

    @rPman
    Попробуй полностью удалить de, xserver и драйвера на видеокарту, после удаления пакетов, почистит настройки (в debian дистрибутивах это apt pirge пакет, или аналог у тебя)... Некоторые настройки потеряться, потому что хранятся не в пользовательском каталоге...
    Ответ написан
    Комментировать
  • Как обновить программу "ip" в Linux?

    @rPman
    -br это короткая нотация --brief выводит в коротком виде информацию, странно что у тебя не поддерживается но это не так критично... скорее всего вместо типовой утилиты ip используется упрощенная ее замена (экономят место на диске?)

    По поводу обновления, для начала ты брал образы тут?

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

    upd. поддержка --brief появилась в 2021г в версии 5.15 смотри какие версии твоей ОС содержат эту версию или старше
    Ответ написан
    2 комментария
  • Как заставить oracle linux 9 увидеть рейд 3ware 9690SA-8I?

    @rPman
    Смотришь на работающей centos 7 какой модуль ядра используется, с помощью lspci, lsmod и т.п., ищешь готовый (может он есть, даже в репах оракла, просто не установлен) или исходники, собираешь на linux oracle...

    но вообще это странно, единственная причина выбирать linux oracle это что бы все было совместимо и с поддержкой oracle, ибо за нее уплочено, а если ты лезешь во внутренности, то поддержка пшик, и остается один геморой
    Ответ написан
  • Как теперь запустить Linux на внешнем SSD?

    @rPman
    Если используется EFI то по стандарту разработчиков материнских плат не обязали давать такую возможность из биоса, т.е. нужно прописать в биосе (это можно сделать из linux с помощью efibootmgr) какая еще ОС у тебя на машине доступна.

    Исключение сделали для removable drives но трактовать что есть что оставили за производителем материнки (обычно это работает только для usb flash и cdrom, но не для внешних sata/nvme контроллеров).

    Все автоматически может сделать grub-install, достаточно загрузиться с liveusb любой linux (настоятельно рекомендую тот же что установлен, как минимум аритектура та же), смонтировать корневую и boot в какой-нибудь каталог, например /mnt (если там отдельно есть /boot и /boot/efi то их тоже смонтировать соответственно в /mnt/boot и /mnt/boot/efi), удостовериться что sdX это диск с linux и сделать
    grub-install /dev/sdX --root-directory=/mnt

    p.s. для legacy mbr режима достаточно было бы выбрать диск из BIOS но многие контроллеры в биосе не доступны, потому что драйверов нет.

    p.p.s. совмещать загрузчик linux и windows на одном диске чревато его удалением (inux загрузчика) windows при очередном обновлении, это уже происходило, поэтому если с драйверами проблема, то устанавливают grub на маленький носитель, с которого загрузка работает, типа миниатюрный usb flash или карту памяти (например многие ноутбуки имеют картридер)
    Ответ написан
    2 комментария
  • Как установить Windows 11 с Linux?

    @rPman
    Не уверен, но в режиме EFI под паролем биос не должен давать что-либо менять (добавлять новую ОС в загрузку), по крайней мере это была бы дырища, полностью убирающая смысл пароля.

    Но если у вас уже есть рабочий linux (достаточно grub) то с его помощью можно загружать уже установленный windows, добавив в меню что то типа такого (это пример для EFI режима):
    menuentry 'Windows' {
       insmod part_gpt
       search --fs-uuid --set=root $uuid
       chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    }


    Но предварительно нужно установить windows, настроить boot.ini на правильный каталог и т.п. В принципе, с помощью virtualbox можно это сделать, предварительно осторожно подвигав разделы, но без знаний и опыта можно все сломать.

    p.s. ищите способ сброса пароля для биоса для своего ноутбука, и скорее всего без доступа к материнской плате это будет невозможно, иначе ну какой тогда смысл в паролях? Без адекватной возможности загрузиться со внешнего носителя у вас связаны руки.
    Ответ написан
    Комментировать
  • Возможно ли переписать это на PowerShell?

    @rPman
    В windows встроено (устанавливается из коробки) несколько языков программирования, начиная с javascript/vbasic в древнем windows scripting host (запускать программу в виде текстового файла .js или .vbs с помощь cscript.exe //nologo имя_файла.js) и заканчивая полноценного .net c#/vbs#/js# собираемого в .exe одной строчкой (никаких проектов, никаких студий, просто в редакторе пишешь код и запускаешь)

    Но люди продолжают ломать свои мозги, используя неадекватный ему инструмент что в windows (cmd и спасибо powershell лучше но все равно извращение, лучше он только потому что предоставляет больше доступа к windows-specific функционалу но не как язык программирования) так и в linux (когда я вижу, как люди в очередной раз пишут многостраничные простыни на bash чтобы работать с датами, вместо того чтобы написать код в пару строчек на python/php/..., мне становится грустно, куча всего в linux буквально написано на bash, поддерживать это неадекватное месиво ужасно.

    И да, я знаю, что бывает код на bash/powershell проще, но только потому что там уже есть решение проблемы, и весь этот код - просто способ описания этой проблемы.
    Ответ написан
    4 комментария
  • Какая утилита root доступа для Linux работает в консольном режиме без белого ip?

    @rPman
    почти полная замена teamviewer/anydesk - это rustdesk, можно настроить свои сервера, открытый, доступный, достаточно шустрый

    p.s. штатный инструмент удаленной работы с linux - x2go (аналог msrdp в windows), а для доступа можно настроить обратный ssh с перенаправлениями (это когда все ваши машины за NAT подключаются к одному вашему серверу с белым ip) а вы уже через свой сервер подключаетесь., но лучше конечно vpn свой поднять, то же самое только будет локальная сеть.
    Ответ написан
    Комментировать
  • LPT внутрь виртуальной машины KVM?

    @rPman
    proxmox использует kvm
    kmv позволяет пробрасывать pci и pci-e (очень старое железо без pci с isa скорее всего не получится, но там и kvm запустить нормально не получится) контроллеры в виртуальную машину, с помощью lspci посмотри, на какой именно контроллер повешан lpt и пробрось его (в биосе нужно будет включить iommu кажется называется), гуглить по ключевым словам kvm pci passthrough

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

    в общем сначала нужно удостовериться что на материнке для lpt не развели отдельного pci контроллера (как это делают с usb), в windows можно посмотреть прямо в диспетчере устройств (в меню выбрать - по подключению)

    p.s. у virtualbox вроде бы есть проброс lpt
    Ответ написан
    1 комментарий
  • Как запустить Electron на Linux удалённо по ssh?

    @rPman
    Если нужно что бы приложение работало и выводило изображение на удаленном сервере, можно указать в переменной окружения сеанса ssh DISPLAY=:0 (точнее посмотреть это значение из уже запущенной сессии на машине).

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

    X2go сам создаст сеанс, при отключении приложения могут продолжать работать. Клиенты есть подо все, кроме может только android.
    Ответ написан
    Комментировать
  • Как восстановить конкретную папку на btrfs если нет снапшотов?

    @rPman
    Ты не пробовал гуглить? первый же ответ:
    btrfs restore -v -i /dev/sdaX /path/to/recovery/ --path /path/to/deleted/file
    Ответ написан
    2 комментария
  • Как в Linux полностью программно сменить основную видеокарту?

    @rPman
    Уходите от Wayland, например к xfce или gnome, бонусом возвращения будет возможность, используя штатный loginctl, настроить два рабочих места, по отдельности на каждую видеокарту (и не важно что второе рабочее место с intel ark не будет использоваться). Доступ к второй видеокарте в числодробилках останется, а вот графический интерфейс будет привязан к указанному gpu железно.
    spoiler
    Исключение wine (ну и его потомки типа proton), я столкнулся с проблемой именно со вторым рабочим местом, wine видит первую видеокарту и часть работы перекладывает на нее, как не указывай.
    Ответ написан
    Комментировать
  • Какие альтернативы Rufus под Linux?

    @rPman
    консольный
    dd if=win.iso of=/dev/sdX bs=1024k status=progress


    замени /dev/sdX на имя устройства с флешкой (внимание не /dev/sdX1 т.е. разделов не будет) список получи с помощью lsblk

    bs=1024k заставит писать блоками по 1мб, а status=progress будет выводить какую то информацию о прогрессе
    Ответ написан
    1 комментарий
  • Как правильно бэкапить в этом случае?

    @rPman
    ACL - во всех современных linux дает дополнительный слой прав поверх привычных chown/chmod.

    Можно с помощью setfacl выдать дополнительные права на файловую систему специально созданному пользователю backup и тогда rsync с удаленной машины сможет залогиниться под этим пользователем и скопировать файлы.
    Типа так:
    sudo setfacl -R -m u:backup:rx /
    а копирование с удаленной машины типа так:
    rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} backup@remote:/ /path/to/destination

    дополнительно нужно будет настроить без парольную аутентификацию под пользователем backup на эту машину

    p.s. резервное копирование больших объемов данных, особенно если файлы большие или, к примеру, во время резервного копирования могут быть записаны, потребует заморозку файловой системы с помощью снапшотов, выбор технологии которых накладывает различные ограничения, например LVS кратно роняет скорость работы файловой системы, на которой создан снапшот. Я бы рекомендовал cow файловые системы btrfs/zfs, у них из коробки максимально эффективная система снапшотов (на основе которой можно создать инкрементальные бакапы на порядок удобнее и быстрее чем с помощью rsync) но они роняют (десятки процентов на hdd) скорость работы баз данных в принципе... в общем нужно думать и правильное решение - исключить файлы баз данных из резервного копирования и настройка этого копирования уже средствами базы данных.

    В общем полностью абстрагироваться от клиентских машин не получится, что то на них настраивать придется
    Ответ написан
    1 комментарий
  • Как получить федеральный цифровой канал DVB-T2 и стримить его через Linux?

    @rPman
    На сколько я знаю все в одном есть в vlc и в ffmpeg, они могут брать поток из любого источника (будь то pci плата захвата или usb) а так же позволяет публиковать поток

    p.s. ubuntu 24.04 lts может получиться нежданчик с поддержкой железа, еще года с выхода не прошло, но я очень давно такой фигней не занимался, может там уже все хорошо

    p.p.s. пожалей свои мозги и мозги своих пользователей в сети, не нужно множить зло федеранльный мусор

    Раз в неделю собирай список раздач с какого-нибудь торрент трекера, скачивай его консольным rtorrent, отправляй на трансляцию, удаляй, скрипты по 2-3 строчки.

    Там тебе и развлечения, и новости, и фильмы,.. без рекламы, по твоему выбору.
    Ответ написан
    9 комментариев
  • Как можно запустить одну программу с windows сервера через Linux?

    @rPman
    Не использовать server ревизии windows.

    Использовать рабочие ревизии windows, с ibik aster, настраивая на каждого пользователя свое рабочее место (формально достаточно порта на видеокарте, но DP при наличии соответствующего хаба может умножить это значение в несколько раз. Как минимум 12 рабочих мест организовать так можно.
    spoiler
    Помню был большой и абсурдно выглядящий спор, по поводу легальности такого способа использования windows, у майкрософт очень сильно подгорало, что одна лицензия буквально позволяет работать с компьютером нескольким человек, но это вопрос философии... ведь к примеру нельзя запретить играть в компьютерную игру в несколько человек на одном экране (например hotsit), и в чем разница, с помощью какой программы и с какими целями это разделение происходит. В общем полагаю как то разобрались и ibik aster формально легален, а их софт получает подписи от майкрософт.

    Доступ к приложениям можно организовать через vnc или аналоги. Мало того, с технической точки зрения, наверное всю конструкцию можно собрать внутри виртуальной машины (все виртуалки позволяют создавать виртуальные мониторы), ну только что ревизия windows должна быть enterprise/ultimate.

    p.s. иногда мне кажется, что искусственно созданные ограничения майкрософт вынуждают людей покупать больше железа, тратить больше энергии и ресурсов планеты, только чтобы не платить абсурдно высокую стоимость за ненужный софт.
    Ответ написан
    5 комментариев
  • Как залить большой файл sql в базу?

    @rPman
    Телепатствую.

    Главная причина, чаще всего, это не отключенные индексы, запись в таблицу с ними это n*log(n), а без индексов это n или даже log(n).

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

    Отдельно в sql коде можно расставить commit через некоторое количество (десятки тысяч +-) insert-ов, что бы лог не переполнялся.

    Следующий вариант - оптимизация дисковой записи, найди способ принудительно включить lazy writes на диске с базой, например с помощью виртуализации или хотя бы ext4 опция data writeback. Внимание! в этом режиме любая проблема с ос (например отключили питание) испортит данные. Т.е. на время импорта создай файловую систему для таблиц отдельно, потом данные тупо скопируешь. Но если у тебя норм ssd или дисковый контроллер с хорошим кешем, то это не актуально.

    И если говорить об самым экстремально большом ускорении, размести файлы базы в tmpfs (оперативка, сотня гигабайт сейчас даже дома не проблема)... Можно для этого арендовать в облаке vps-ку, но желательно в этом же датацентре, а то копировать сотню гигабайт может быть долго. И да, следи за тем что бы была та же архитектура процессора и версия mysql
    Ответ написан
    Комментировать
  • Как установить Винду через Линукс?

    @rPman
    Почти в любой установке linux есть приложение Диски (kde другое, например etcher, ну и никто не мешает gnome-disk-utility, это для тех кто ленится написать в консоли dd....), оно позволяет в 5 кликов мыши записать iso образ на флешку как есть (без распаковки, просто записывая его в режиме dd сектор в сектор). Выбрать целевую флешку в списке слева, нажать меню справа (кнопка три точки) - восстановить образ диска - выбрать iso образ и нажать - начать восстановление (проигнорировать предупреждение если флешка больше iso-шки)

    Этот режим поддерживается наверное всеми материнскими платами, как новыми uefi (тем вообще пофиг) так и очень старыми, у меня была материнка со времен только только появившегося usb2, точнее когда с usb заработала загрузка, так вот этот режим записи iso прекрасно сработал (правда пришлось выбирать режим usb cdrom в биосе)... когда как многие другие методы создавали кучу проблем.

    Это работает, потому что файлавая система iso, используемая на cdrom поддерживается всеми биосами во всех режимах, а в efi режиме никто не заморачивается проверкой типа файловой системы соответствию типа носителя, лишь бы драйвер был в биосе
    Ответ написан
    Комментировать