Pull to refresh
4
0.1

Программист php, Bitrix

Send message

АМД ухитряется же как-то. Эппл вон не так давно всем прям вообще наглядно показал, что можно сделать с правильной архитектурой, выпустив свой процессор.
Не в количестве транзисторов счастье-то..

Лично вы с таким часто встречаетесь среди оффлайн знакомых? Я подозреваю, что нет.

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

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

И? Вот мне регулярно приносят для настройки сервера в состоянии "дико лагает, хз почему, сделайте уже хоть что-нибудь!". Логирование толком не настроено - что есть из коробки по-умолчанию, то и есть. Апдейты последний раз ставили несколько лет назад и с тех пор на сервер никто не заходил вообще.

Так что я бы вообще начал с вопроса, какого на линуксах у большинства ПО (включая системные) дефолтные настройки в таком состоянии?

...Мне как пример отношения разработчиков больше всего нравится mysql/mariadb и иже с ними - там в 2024 году в комплекте идет конфиг, рассчитанный на запуск на чем-то уровня селерона начала 2000-х годов выпуска - с памятью в 256-512 мб и 1-2 ядрами. И ведь куда не сунься - весь линукс-софт в таком же состоянии!

Единственный случай, когда "невидимые айноды", это когда процесс, который держит файлы, не убит. То есть обычный рестарт все это дело чистит.

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

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

Да какая разница, сколько там лимит? Вам не про это пишу. В fat/ntfs вы все эти файлы увидите любым софтом, хоть даже проводником - сразу увидите, вам не нужно лезть куда-то в потроха ФС. А в ext3/4 - вам придется лезть в спец. софт и работать с незапоминаемыми людьми числовыми данными, вместо нормальных имен. Это просто тупо неудобно, неприятно и разрабатывать такое - это фу-фу-фу.

Еще раз повторю - речь не о производительности и не о том, какая ФС лучше реализована. Речь об удобстве работы, когда "что-то пошло не так". А "что-то идет не так" достаточно регулярно, чтобы про это надо было задумываться.

Нанометры - в большой степени просто маркетинг. Плюс можно вспомнить, что тот же Интел до сих пор толком не сполз с 14++++ нм, но это ему не мешает каждый год новый чип выкатывать, который хоть чуть-чуть, но лучше предыдущего.

Так что вопрос должен быть не про то, какие там нанометры - а насколько хорошо сделана архитектура чипа.

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

Логи это не миллионы файлов. Это десятки/сотни ну тысячи. но никак не миллионы.

Зависит от кривизны рук программистов и количества прошедшего времени: https://superuser.com/questions/1733104/millions-of-files-in-a-single-directory

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

Или вот, конкретно пример попытки бэкапить диск с 40 млн файлами https://stackoverflow.com/questions/28444401/ext-performance-handling-millions-of-files

Плюс это просто берется и чистится, или настраивается ротейт.
Нет там ничего невидимого.

Вот сначала вы столкнетесь с проблемой, решите её и только потом будете думать как эти логи чистить автоматом - или как логику переделать, чтобы такого не происходило.

Я вас очень удивлю, но так работают ВСЕ файловые системы. И ntfs в том числе. Если бы приходилось удалять файлы целиком, то удаление занимало бы столько же времени, сколько копирование.

Вы путаете сущности. Никто не говорил о том, что чистится место, занимаемое файлом. Я писал о том, что если у вас по какой-то причине залочится файл и не сможет вовремя удалиться, то на винде вы все эти файлы увидите. Глазами увидите. А на линуксе - это будут невидимые иноды, о которых вы даже не узнаете, пока ситуация с их количеством не станет настолько критичной, что вы словите странные ошибки при работе с диском - и только тогда начнете разбираться, что вообще происходит.

Что за бред? Это что такое должно было случиться?

Да банальный кривой код. Не такое уж невероятное событие.

Или вот https://askubuntu.com/questions/231585/running-out-of-inodes

Или вот, замечательное: https://superuser.com/questions/1067904/cant-find-why-inodes-running-out - насоздавалось дофига файлов сессий веб-сервера. Это прям вообще как нефиг делать, я лично встречал серваки с 15 гигами накопившихся за полгода сессий, а это, в общем-то, мелкие-мелкие файлики. Мне повезло, сервер правильно настроили и сессии хранились в БД, а не на диске, как это задано в php.ini по умолчанию.

Не то чтобы у NTFS не было своих проблем. Но система с инодами нифига не панацея.

Ситуация, когда кто-то хранит десятки миллионов файлов на диске весьма нечастая

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

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

Что? Файлы удаляются, а не становятся невидимыми. Мы обсуждали нечастый кейс, когда открытый процессом файл можно удалить.

Так у вас вместо удаления файлов фактически удаляется только его имя. Сам файл физически на диске как был в виде иноды - так и остается. Ну, понятно, что я имею ввиду случаи когда "что-то пошло не так" и файл вовремя не отпустили или еще что-то такое. Т.е. с течением времени вы сможете получить кучку занятых инод, к которым не привязаны имена файлов, доступные ls. И вы даже не узнаете об этом.

Какие невидимые иноды и зачем их чистить? Это стандартная файловая структура для файловых систем линукса, они просто есть. Или в виндовс кто-то чистить МФТ файл?

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

И как мы уже ранее выяснили - всё это происходит ещё и потому, что у вас в ФС файлы вместо удаления становятся просто невидимыми.

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

Какую дичь? Цитаты плиз.

Мне все ваши комментарии перечислить? У вас в каждом - ошибки или просто незнание вопроса. На что вам не только я, но и другие уже несколько раз указали.

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

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

Так это сегодня они топовые. А завтра это уже миддл будет. А послезавтра - ширпотреб для всех. Скоро, вон, 5000-ая серия должна выйти - вы ж не думаете, что она по производительности будет как 4000-ая? И в санкциях-то как раз ограничение по производительности, не по наименованиям моделей.

Так что несколько лет/поколений и под санкциями окажется всё более-менее приличное. Как раз к этому времени Loongson своё и допилят - учитывая их темпы разработки.

Если (когда) на них наложат еще чуть-чуть санкций и продолжат не продавать топовые видюхи в Китай, то настойчивости будет дофига. Получить 1,5-млрдный рынок на халяву и с полным отсутствием конкурентов - это ж просто мечта.

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

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

Более того, это базовый функционал и в линуксах тоже. И тоже существует там кучу десятков лет уже.

Погуглите уже что-ли...

Я вот не понимаю "выделить 10% дискового пространства на бэкапы". Бэкапы чего?

Вы опять что-то своё придумали и с этим боретесь? В приведенной мной ссылке вообще ни разу не упоминается 10% и даже просто %.

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

Чудо какое-то! Мне тоже не нужно думать про реестр (я вообще про него не думаю - удивительное дело!), набор уникальных драйверов и привязку к хардвару. Потому что винда сегодня спокойно запускается на любом железе, достаточно просто диск с ОС переткнуть туда. Но вы об этом не знаете, потому что у вас ВинХР всё ещё "современная ОС".

В Виндовс оказывается так плохо и медленно работает штатный софт, что сторонние бэкап системы вынуждены напрямую читать ntfs структуры

Ну да, ну да. В линукс же такого нет - и нет кучи вопросов про то, как почистить невидимые иноды на диске, где есть куча места, но записать на него ничего нельзя ))

У всех ОС есть свои особенности. Почему в линуксе это хорошо, а в винде, внезапно, ужас-ужас?

В Линуксе да, полезно читать документацию по командам, но ты точно представляешь как все работает под капотом.

И сколько процентов пользователей это реально делают? Вот именно чтобы разобраться? Особенно вон те, кто десктоп-Убунту ставит, потому что "она проще"? Вы понимаете, что полтора гика - это не весь мир?

И я не понимаю, что вам неясно, когда я вам описал как на практике работал скриптик, который бэкапировал изменения на диске с миллионом файлов рсинком и уходило на это минимум времени. Удобно как-то вырывать удобные из контекста куски фраз вопреки логике и писать нелогичную претензию...

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

Наверное стоит свернуть этот диалог с человеком, который не зная ничего утверждает что я никогда не видел Windows.

Да-да. Именно поэтому вы нам упорно рассказываете про проблемы реестра виндовс, которых не существует уже больше 20 лет, и разную другую дичь.

А образ системы у винды - у меня всегда вопросы вызывал 'а что туда, собственно, попадет?

Так вроде ж на первом шаге вас и спрашивают, что именно в образ положить. Если вам только систему - то собственно весь системный раздел там и будет + обязательные доп. разделы с загрузчиком и софтом для восстановления при сбоях. Короче, всё что нужно, чтобы восстановить рабочую систему. Там же, при желании, в этот образ можно и другие диски добавить.

Я не вижу сложностей вообще. Для начинающего вопросы вызывает только терминология и придется погуглить что какой вид бэкапов значит. Но это нормально.

Или 'а как мне этот образ прочитать или вытащить пару файликов из него, если я не хочу все восстанавливать?'

Тупо. Двумя кликами. По файлу. В поводнике.

Не надо думать, не надо гадать. Оно просто работает.

А что, у вас многопоточность уже отменили, да? И все копии mysql используют ровно по одному потоку, да? И даже не могут обслужить больше одного внешнего подключения?

Вы меня всё сильнее поражаете своими знаниями...

Или вы считаете что отдельные бэкап утилиты работают по волшебству, а не по тем же самым принципам как rsync

Современные бэкапилки могут работать напрямую с записями ntfs - это в разы быстрее, чем делать то же самое через стандартные api. rsync так не может - как минимум на винде.

Еще можно свой фильтр-драйвер для ФС написать, и оптимизировать процесс сканирования через него.

Ну т.е. решения - есть. Просто они уже не внутри user-space и обычный (а тем более кроссплатформенный) софт им сильно проигрывает в скорости.

Почему личное? На работе была задача.

Ну так для работы оценка затрат совсем по другим критериям идет. И когда у вас куча машин, понятно, что выгоднее сделать один раз конфиги хорошо и потом только таскать их туда-сюда.

А вот если мы говорим про использование компьютера дома и более-менее редкие или вообще разовые задачи, то всё вот это написание наколенных скриптов вызывает скорее недоумение. Даже иногда бесит.

Там реально две кнопки - вот, тут можете скриншоты посмотреть https://remontka.pro/backup-windows-10/
Я и говорю, что вы вообще винду в глаза не видели, но делаете какие-то выводы неизвестно на чем базирующиеся.

Если вы 10 лет работаете с каким-то софтом и наизусть помните кнопочки

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

По времени настройки будет практически сопоставимо.

Не будет. Потому что настройка бэкапа в винде - три клика. Настройка его же автоматом по расписанию - четыре. Посмотреть результат бэкапа или вытащить оттуда файлик - один-два клика мышкой. Причем всё это наглядно и думать просто не нужно.

Но в Линукс это будет еще и бесплатно и входит в штатную поставку.

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

Как вообще в здравом уме можно себе представить одновременную запись во множество позиций в одном (или разных) файле на жестком диске?

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

Но ничего этого не существует, такой софт невозможно сделать, да-да.

Вы хоть понимаете, что там физическое позиционирование головки есть?

Ну да, конечно, в 2024 надо думать о физическом позиционировании головок. Десятка слоев уровней кеширования начиная с ОС и заканчивая встроенным кешем диска же не существует. Почитайте про очереди что-ли - NCQ хотя бы. Хотя да, у вас же линукс - вы, видимо, до сих пор всем этим вручную рулите)

Номера инод и нужны для низкоуровневого интерфейса, а не для людей.

Ну вот и получается, что разработчики ntfs подумали о том, как люди этим будут пользоваться, а разработчики ext3/4 положили на людей большой болт. Традиционный линукс-подход "мучайтесь там сами, нам лень".

На вашей любимой винде примерно весь софт так и делает, но вы и об этом не знаете?

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

Ну я повторю, что на диске с 10 млн файлов ваш rsync будет работать вечность - потому что, ну очевидно, что мне нужно синхронизировать сразу кучу файлов, а не один-два. И в итоге получается, что кроме тупого dd вариантов просто нет. Притом что современный софт для бэкапов уже много-много лет предлагает просто кучу разных вариантов бэкапов помимо тупого копирования один-в-один.

Сам с такой ситуацией сталкивался, решилось за 2 вечера, чтобы отшлифовать скрипт.

Ну вам личное время не жалко? Не проще взять готовый софт и в 2 клика сделать нужное, чем сидеть скрипты писать-отлаживать?

Ага, всё правильно - нет других ФС, кроме линуксовых.

Через килобитный канал попробуйте, ага.

Ну конечно, все ж только через килобитные каналы работают, других вариантов просто не может быть! Я вот лично даже кино смотрел через rdp - вполне нормально тянет. А вы продолжайте по ssh через северный полюс ходить...

Копии лежат рядом с новыми версиями, поищите.

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

Как вам уже написали - это разные сущности. Они похожи, но разные - и используются для разного.

И, кстати, опять возвращаясь к исходной теме. Вот я открыл справку как пользоваться LVM - https://it-lux.ru/lvm-snapshot/ и вот ответьте мне, вы правда считаете что вот эта жесть с кучей команд и флагов лучше стандартного бэкапа одной-двумя кнопками в винде? Кстати, снапшоты там тоже есть, если вдруг захочется.

Information

Rating
3,202-nd
Location
Тамбов, Тамбовская обл., Россия
Date of birth
Registered
Activity