- 1
- 2
- 3
- 4
- 5
if(object)
if(object->isSolid)
event.isCancelled = true;
;else //<
throw NullEventArgumentException("object == nullptr");
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
if(object)
if(object->isSolid)
event.isCancelled = true;
;else //<
throw NullEventArgumentException("object == nullptr");
Новый токен в C++ про который знает только 0.6% говнокодеров
bagrinho # 0
bormand # 0 ⇈
guest # 0 ⇈
Питух хочет разместить на файловой системе примерно сто тыщ файлов.
Медианный размер файла -- 100 байт. Минимальный 1. Максимальный -- 400 мегабайт (но таких файлов очень мало).
Питух выделяет на этого отдельную файловую систему ext4, и настраивает её так:
"block size" -- 1024 (учитывая медианный размер файла)
"bytes-per-inode" -- тоже 1024 (чтобы не обосраться с нехваткой inodes).
Питух так же отключает atime (к сожалению, остальные таймы ему нужны).
Всё остальное остается по умолчанию, как в tun2fs.conf, например dir_index и пр.
Файлы пишутся на ФС каждые пять минут, старые удаляются раз в час.
Какие-то еще советы можно дать питуху чтобы уменьшить фрагментацию и проёбываение места?
bormand # 0 ⇈
Даже с дефолтным 4к блоком 100к файлов займут всего полгига. У тебя же явно не гиговый диск, чтобы на спичках экономить. Да и одна запись в пять минут - не хайлоад.
Тут главное, имхо, не валить все эти 100к файлов в один каталог. Раздели их по часам, по первым цифрам хеша или ещё как-то на более-менее мелкие подкаталоги. Иначе потом заебёшься удалять.
MAKAKA # 0 ⇈
Я еще думаю отрубить журнал, но если виртуалку перегрузят некорректно, то я буду ждать пять минут следующей полной загрузки... ну или fsck
bormand # 0 ⇈
Журнал нет никакого смысла отрубать. Один сраный файл в 5 минут твоя файлуха даже не заметит. Ладно бы ты там каждую секунду что-то писал...
MAKAKA # 0 ⇈
Запись может содержать от ноля до 50-ти где-то тыщ файлов. Просто старые удаляются.
То-есть так:
* Я залил 20К
* Через пять мин залил еще 20К
* Через пять мин залил 1 файл.
--- прошел час---
* Я удалил старые файлы
* Через пять мин залил еще 20К
* Через пять мин залил 1 файл.
итд
bormand # 0 ⇈
О_о
Да, сотня файлов в секунду уже намного серьёзнее выглядит... Может быть их мёржить как-то? Например сразу потоком в .tar.gz писать? Они же иммутабельные судя по всему.
MAKAKA # 0 ⇈
>сотня файлов в секунду уже намного серьёзнее выглядит
Ну оно же не равномерно.
* залил 20к
* пять минут спокойствия
bormand # 0 ⇈
Т.е. ты потом какие-то из них удалишь, а какие-то останутся лежать дальше?
В общем, я бы на твоём месте попробовал промоделировать такую запись, посмотреть сколько она идёт, какая нагрузка на проц и диск и т.п. Покрутил бы под средней и пиковой нагрузкой пару дней. Без замеров сложно оптимизировать. Да и может оказаться, что оно вообще не тормозит и весь пердолинг уйдёт впустую (на ssd скорее всего так и есть).
MAKAKA # 0 ⇈
постоянно подсовываются новые файлы, а старые удаляются.
Я больше думал не про тормоза, а про фрагментацию и лишнее место на диске, но ты прав: лучше промоделировать
bormand # 0 ⇈
MAKAKA # 0 ⇈
* Сжимать файлы имеет смысл только если они больше 512 примерно байт (в моем случае), иначе размер может даже стать больше
* Все сосут у zstd.
* GZIP довольно медленно жмет, но разжимает шустро. И ratio меньше, чем у ZSTD
* XZ/LZ2A жмет вечность
* L4Z жмет шустро, разжимает мгновенно, но хуевый ratio
По соотношению скорость/ratio мой кумир теперь ZSTD
digitalEugene # 0
nemyxuHxo # 0 ⇈
Мистер Хэнки # 0 ⇈
Мистер Хэнки # 0
guest # 0 ⇈
Как ты жил все эти 11 лет?
guest # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
Мистер Хэнки # 0 ⇈