[Moscow.pm] HighLoad - Как там с хранением файлов в Пг?

Daniel Podolsky onokonem на gmail.com
Пт Окт 26 09:00:37 PDT 2012


> Это видимо уже оффтопик, но всё таки.
> Не очень верю вашим бенчмаркам.
Эт ничего. Можно же и самому переделать их, если истину искать :)

> Вот было у вас 100x2 iops с зеркала.
> И вы говорите что на отдачу 1 файла - 1 iops на директорию и 1 iops на
> сам маленький файл.
> т.е. при условии что в кеш ничего не влезает - 100 файлов в секунду.
Ну что-то все-таки в кеш влезало. 12 млн за 6 часов - это 555 в секунду.

> Вот мы метаданные засунули в базу и говорите что она вся в памяти и
> iops-ы вы на неё тратить перестали.
> А файлы как и положено в память не влезают и лежат на диске. На чтение
> диска остался 1 iops.

> По тестам у вас 2к стало.
> Откуда?
2К - это на самых мелких файлах. Причем в базу они попали после
крупных, и легли, соответственно, на последовательные страницы. Думаю
- они просто все разом закешировались в памяти. Чудес-то не бывает :)

> Либо ограниченное количество файлов читали бенчмаркалкой, либо читали
300К урлов было в тестовом файле, по историческим причинам.

> их в той последовательности, в которой они на диске (внутри БД) лежат.
Сортировал урлы по sha1 контента, решив, что это в достаточной мере
случайный параметр.

> Далее - количество одновременно отдаваемых файлов.
> nginx => apache + mod_perl (prefork) => Pg (prefork).
В этих тестах nginx не было.

> стриминг блоба из Pg - 1 на процесс?
> Pg процессов у вас кажется 64шт.
> apache я полагаю столько же.
> Т.е. максимум вы отдаёте 64 файла параллельно?
> Не мало?
достаточно.

> Сколько одновременных потоков запосов делал бенчмарк?
Там есть в презентации - 1К. а процессов было 64 и беклог на 3К.


Подробная информация о списке рассылки Moscow-pm