
Alexey
28.12.2016
21:17:11
Всегда текстовый в extended query (этот тот, который с prepare и bind) или я неправильно перевожу...

Марк ☢
28.12.2016
21:18:23

Alexey
28.12.2016
21:24:55

Аггей
28.12.2016
21:25:36
чтобля про xfs и сисколлы ?
Генеришь дохулиард файлов... удаляешь четверть... пробуешь писать достаточно интенсивно. Приложение которое пишет файлы процессор в 100... характер нагрузки syscall

Google

Alexey
28.12.2016
21:25:43

Марк ☢
28.12.2016
21:26:17

Roman
28.12.2016
21:27:35

Аггей
28.12.2016
21:27:47
Марк, не выебывайся. Сисколы конкретные strace у приложения не показывает - видимо потому что они вызываются процессами xfs

Akzhan
28.12.2016
21:28:10
поддерживал многотерабайтное хранилище - да, XFS подходит, но два нюанса
1) всегда надо иметь запас свободного места, иначе разваливается
2) если разваливается, иногда восстановлению не подлежит.
хотел попробовал zfs, но сменил профиль деятельности

Марк ☢
28.12.2016
21:28:19

Аггей
28.12.2016
21:28:57

Марк ☢
28.12.2016
21:29:34
ну замечательно. значит можешь сделать баш-скрипт который воспроизводит проблему? ну... генерит каталоги, а потом удаляет часть и что-то интенсивно пишет....
а то я уж как только не трахал XFS а проблем не обнаружил.

Akzhan
28.12.2016
21:30:00
обычно в таких хранилищах основная нагрузка write new file only, and a lot of reads :)

Марк ☢
28.12.2016
21:30:29
и более того, красношляп всячески рекомендует именно его

Google

Roman
28.12.2016
21:31:50

Аггей
28.12.2016
21:32:17

Roman
28.12.2016
21:32:27

Аггей
28.12.2016
21:34:06
Щас поищу в истории скрины

Roman
28.12.2016
21:34:57

Аггей
28.12.2016
21:35:10
Для 8 ядер - очень )

Akzhan
28.12.2016
21:35:24
Зачем так делать?
чем больше файлов в одном каталоге, тем хуже файловой системе. поэтому обычно делают дробление минимум на три уровня вложенности, а то и более.

Roman
28.12.2016
21:35:52

Марат
28.12.2016
21:36:10
> @pragus
Нет
что значит нет ?

Аггей
28.12.2016
21:37:59
Почему?
Это означает, что процессору приходит в 4 раза больше задач, чем он может обработать. Ну не знаю хорошо ли это ))

Akzhan
28.12.2016
21:38:14
Нет
http://be-n.com/spw/you-can-list-a-million-files-in-a-directory-but-not-with-ls.html

Roman
28.12.2016
21:38:33

Akzhan
28.12.2016
21:38:51
и это лишь одна из статей. де факто под ext4, например, оптимум до 10k файлов в каталоге

Roman
28.12.2016
21:39:30

Fike
28.12.2016
21:40:05
эм, неспособность работать ls не означает, что файловой системе плохо

Alexey
28.12.2016
21:40:11
Почитайте ман на io_submit
Да, вижу, аж в 2.5 появилось. Тогда как это от ФС зависит?)
Хм, почему я не видел ниодного AIO в ФС с eventloop-ом...

Google

Roman
28.12.2016
21:42:21

Аггей
28.12.2016
21:44:44

Akzhan
28.12.2016
21:46:10
Речь о том, что каталоги в той же XFS организованы как B+trees, поэтому там проблема не так очевидна, как в EXT etc.. Но тем не менее, я и там храню файлы в древовидной структуре. Возможно, смысла уже не столь много, но привычка осталась.
В ранних FS доступ к файлу в большом каталоге был крайне медленным.

Аггей
28.12.2016
21:49:15
Что значит "может обработать" в контексте вытесняющей многозадачности?
В контексте многозадачности не скажу - в контексте работы реального приложения - увеличения времени отклика в сотни раз. Причем я не зря написал 4xCPU - увеличение числа CPU никак не влияло на соотношение LA к CPU - на 4х ядрах - LA 16, на 8 - 32, на 16 - 64. При этом iostat говорил о незагруженности дисков

Alexey
28.12.2016
21:50:13

Yury
28.12.2016
22:01:23

Roman
28.12.2016
22:06:54
А в какой ФС?
от фс не зависит, потому что всё бежит через vfs, которая абстрагирует от конкретной фс.


Akzhan
28.12.2016
22:10:59
обычно open(r), open(w).
все метаданные были в СУБД, так что ничего иного, кроме как отдачи файлов через nginx обычно не происходило (большАя нагрузка)

Марк ☢
28.12.2016
22:12:03

Аггей
28.12.2016
22:12:42

Марк ☢
28.12.2016
22:13:10
блять. это среднее количество не-спящих процессов
так вот если он застрял на диске или нфс — то он сука не спит

Аггей
28.12.2016
22:14:52
А спящий процесс разве время процессора не потребляет?

Roman
28.12.2016
22:15:47
The global load average is an exponentially decaying average of nr_running + nr_uninterruptible

Google

Roman
28.12.2016
22:17:47
детали вот тут: http://lxr.free-electrons.com/source/kernel/sched/loadavg.c

Марк ☢
28.12.2016
22:18:51
садись, пять

Аггей
28.12.2016
22:19:10

Roman
28.12.2016
22:21:17

Yury
28.12.2016
22:21:45

Roman
28.12.2016
22:21:58
время кореллирует с r_await в iostat.

Yury
28.12.2016
22:22:02
а по всем тестам ext4 лучше

Roman
28.12.2016
22:22:36

Akzhan
28.12.2016
22:22:43
в любом случае теоретические рассуждения меня мало волнуют. было хранилище 800Tb и росло со временем, спустя год стало вполне стабильным, и я занимался другими задачами.

Roman
28.12.2016
22:23:00
плюс, подарок в виде фиксированного количества айнод.

Akzhan
28.12.2016
22:23:35
xfs, конечно

Yury
28.12.2016
22:24:06

Akzhan
28.12.2016
22:24:21
разбито по гармошкам 40|80|120Tb, с дублированием данных (это помимо raid10 на самих гармошках)

Roman
28.12.2016
22:25:32

Yury
28.12.2016
22:25:53
http://www.phoronix.com/scan.php?page=article&item=4fs-linux-4649&num=1 тут можно глянуть

Roman
28.12.2016
22:25:54
и если уж сравнивать, то скоро в xfs будет copy on write.

Yury
28.12.2016
22:26:14
к слову F2FS меня давно интересует

Roman
28.12.2016
22:29:18

Yury
28.12.2016
22:29:44
на эту тему можно много тестов у Майкла найти

Google

Yury
28.12.2016
22:32:18
к слову есть ещё один интересный показатель
который сильно плох у btrfs/zfs - это сколько тратится ресурсов CPU на деятельность FS

Roman
28.12.2016
22:36:47

Yury
28.12.2016
22:39:36

Fike
28.12.2016
22:41:32

Roman
28.12.2016
22:48:29

Fike
28.12.2016
22:54:22
отличный аргумент

Аггей
28.12.2016
23:00:23

Akzhan
28.12.2016
23:09:20
какие ваши доказательства?

Roman
28.12.2016
23:09:32
Ну а что? Если речь о "любой ценой", то есть полностью на ssd системы и машины куда можно воткнуть несколько ТБ оперативки.

Yury
29.12.2016
08:03:50

Rinat
29.12.2016
08:20:41
Ребята, привет. Помогите, пожалуйста, с запросом (не спец)
есть таблица category. в этой таблице:
name character varying(255) NOT NULL.
id integer
...
есть таблица goods. в этой таблице:
category_id integer
нужен запрос чтобы удалить в таблице goods строки, в которых в поле категория указано "Конструкторы" или "Радиоуправляемые игрушки" или "Книги%"

Vladislav
29.12.2016
08:22:51
Написать сначало селект, а потом подправить его в делит. И на забыть все завернуть в транзакцию

Alexandre
29.12.2016
08:24:56
а зачем в транзакцию?

Vladislav
29.12.2016
08:25:28
Чтоб посмотреть, что сделал гавно и откатиться

Аггей
29.12.2016
08:26:47
Select * from goods where category_id in (select id from category where name like 'Книги %' or name='Конструкторы' or name='Радиоуправляемые игрушки')
Как то так

Alexandre
29.12.2016
08:29:59
Vladislav ???? SLASH_CyberPunk, [29.12.16 11:25]
Чтоб посмотреть, что сделал гавно и откатиться

Vladislav
29.12.2016
08:30:09

Alexandre
29.12.2016
08:30:14
хорошая идея...