Буду писать тут интересные случае из работы.
Для начала - почему вчера весь день тормозил реактор. Уже давно основной фронтэнд сдыхал. На нём же обрабатывались картинок и он не справлялся с отдачей картинок на скорости 2Гбит и обработкой их. Поэтому я начал потихоньку обработку картинок переносить в другое место.
И вдруг произошло что-то. Симптомы:
1) на сата дисках чтение 5Mb/s
2) на ссд диске запись только 0.5Mb/s. Хотя должна быть те же 5Mb/s, ибо всё что читается с сата потом сразу кладётся в кэш ссд.
3) запросы время от времени подвисают на 5-10-15 секунд. Причём в них нет никакого криминала - обычная отдача малоиспользующейся картинки размеров в 500Кб.
Начал грешить на nginx - что он почему-то не записывает в кэш то, что отдаёт бэкэнд. Долго мучался - ничего не смог выяснить. Решил раньше времени переносить на новый сервер бэкэнд - должно хотя бы распределить нагрузку.
Во время rsync понял в чём проблема была - все картинки у меня складываются в одну директорию. И теперь она выглядит так:
drwxrwxrwx 2 root root 59M Jan 30 19:58 pics
Можно заметить, что размер директории - 59Мб. Похоже из-за возросшей нагрузки она вытеснялась из файлового кэша и очередной запрос на 500Кб хотел открыть эту директорию, что заставляло его читать все 59Мб и тормозить всю систему.
Для начала - почему вчера весь день тормозил реактор. Уже давно основной фронтэнд сдыхал. На нём же обрабатывались картинок и он не справлялся с отдачей картинок на скорости 2Гбит и обработкой их. Поэтому я начал потихоньку обработку картинок переносить в другое место.
И вдруг произошло что-то. Симптомы:
1) на сата дисках чтение 5Mb/s
2) на ссд диске запись только 0.5Mb/s. Хотя должна быть те же 5Mb/s, ибо всё что читается с сата потом сразу кладётся в кэш ссд.
3) запросы время от времени подвисают на 5-10-15 секунд. Причём в них нет никакого криминала - обычная отдача малоиспользующейся картинки размеров в 500Кб.
Начал грешить на nginx - что он почему-то не записывает в кэш то, что отдаёт бэкэнд. Долго мучался - ничего не смог выяснить. Решил раньше времени переносить на новый сервер бэкэнд - должно хотя бы распределить нагрузку.
Во время rsync понял в чём проблема была - все картинки у меня складываются в одну директорию. И теперь она выглядит так:
drwxrwxrwx 2 root root 59M Jan 30 19:58 pics
Можно заметить, что размер директории - 59Мб. Похоже из-за возросшей нагрузки она вытеснялась из файлового кэша и очередной запрос на 500Кб хотел открыть эту директорию, что заставляло его читать все 59Мб и тормозить всю систему.
Еще на тему
а ссд у меня один. Если появится 2ой, то в софтварный raid0 засуну, наверное.
А md - не думаю, что на 2ух дисках что-то хардварное сможет сильно лучше оптимизировать чтение. Разве что на большом количестве дисков он начнёт рулить.
Надеюсь не OCS - у меня за 2 года на 4 OCS накрылись контроллеры. И самое жесткое, что даже восстановлению не подлежат, в R-Lab отказались - говорят ни за какие деньги. А вот crucial за те же 2 года, пока ни разу, видимо марвел контроллер не зря стоит дороже. И да, crucial в том же R-Lab восстанавливают по стандартному тарифу.
Кстати поставил 2 SSD Crucial M4 в RAID 1 - не сказал бы что сильно производительность упала... Правда у меня и контроллер Adaptec c 512 кеша и SATA3. 1С на нем просто летает.
А Софтварный не сильно проц напрягает?
Кто ж его разберёт, как он напрягает проц =). Подозреваю, что с современными процессорами не напрягает практически.
изначально записи сразу писались фрисвичем в папку, смонтированную по nfs. после некоторого порога попросту стали пропадать некоторые записи (тоесть при попытке записи процесс фейлился).
в итоге пришлось раскладывать все в папочки вида %Y-%m и писать сначала в tmpfs, откуда после по крону конвертировать с помощью sox в ogg и уже после этого отправлять на nfs шару. главное не забыть проверить с помощью fuser не занят ли еще файл, чтобы не сконвертировать =)
ну и fs в хранилище сменил на ext4, для большого кол-ва файлов в дире это существенно.
это же лишний головняк, хранить два варианта пикчи (с полоской и без)
2) это уже сделано, не переделывать же? =).
Вообще полоска была сделана для хотлинкеров. Ибо трафик жрали, а никакого профита не приносили.