Ошибка Nginx Too many open files
Про ускорение. Пара полезностей.
Как известно, у браузеров ограничено число одновременных соединений на домен во время загрузки сайта. Таким образом элементы сайта грузятся последовательно. Каждая картинка/js/css-файл - отдельное соединение. Если таких элементов много на страницах сайта - то ускорить его загрузку можно, если вынести статику на поддомены. Например s1.domain.com, s2.domain.com и т.д. Таким образом, если в браузере у нас, скажем, лимит на 5 соединений на каждый домен - то теперь у нас будет по 5 соединений на каждый поддомен. Если грамотно всё раскидать, то теоретически скорость загрузки может вырасти чуть ли не в 5 раз.
Обратная сторона. Количество одновременных соединений с сервером также растёт. При той же посещаемости сайта - число соединений растёт примерно в 5 раз (при наличии 5 поддоменов). Если фронтендом стоит Nginx - то у него есть ограничение на число соединений в конфиге. А, поскольку соединений теперь в 5 раз больше, то и работы ему приходится одновременно проделывать больше, чем ранее. Таким образом с нашим ускорением мы также и приближаем Nginx к ограничению одновременных соединений, в результате у пользователя может не открываться сайт или какие-то файлы просто не отдаваться во время загрузки.
В логах Nginx будет ошибка:
"...socket() failed (24: Too many open files) while connecting to upstream..."
Посмотреть текущее ограничение из консоли:
ulimit -n
Посмотреть красиво в виде:
nginx: worker process
Limit Soft Limit Hard Limit Units
Max open files 1024 1048576 files
Currently open files: 945
nginx: master process /usr/sbin/nginx
Limit Soft Limit Hard Limit Units
Max open files 1024 1048576 files
можно, выполнив в консоли:
for pid in `pidof nginx`; do echo "$(< /proc/$pid/cmdline)"; egrep 'files|Limit' /proc/$pid/limits; echo "Currently open files: $(ls -1 /proc/$pid/fd | wc -l)"; echo; done
Изменить ограничение:
-
в /etc/security/limits.conf добавить строки:
* soft nofile 16384
* hard nofile 16384 -
от рута выполнить:
ulimit -n 16384
- рестарт Nginx, на всякий случай.
Пишут ещё, что можно просто прописать в конфиге Nginx:
worker_rlimit_nofile 16384
и перезапустить его.
comment commentsПолезная штука Prefix.pch
Открыл для себя полезную штуку в разработке под iOS - файл Prefix.pch - Precompiled Header.
Судя по описанию - Precompiled Headers компилируются, кэшируются и потом автоматически включаются в каждый компилируемый файл. Поэтому, если есть какой-то класс, который нужен везде или в почти везде в проекте - можно внутри Prefix.pch-файла, который автоматически создаётся в новом проекте, сделать include этого класса и он будет доступен везде. Мне вот совсем не нравилось в каждом View Controller'е снова и снова инклудить один класс, который нужен почти везде.
comment commentsИтоги года 2011
Ну вот и настало время подвести итоги года дветысячиодиннадцатого. Хочу запомнить только хорошее, об этом и буду писать. Ну или не совсем о хорошем, но точно не о плохом. И, поскольку я часто что-то фоткал, я использую свои фотографии. Пост получился огромным, но это из-за фоток.
comment commentsУвеличение громкости iPhone 4
У меня iPhone 4 из Франции. В телефонах для продажи во Франции Apple обязали ограничить громкость звука в наушниках, мол, заботятся о своих гражданах и не хотят, чтобы они глохли. Мне, в условиях метро, громкости в итоге не хватает, к тому же наушники бывают разные, какие-то играют громче, у каких-то сопротивление другое и они играют тише.
В общем это ограничение можно обойти. Для этого нужно сделать Jailbreak, после чего получить доступ к файловой системе и изменить пару plist-файлов. Вариантов много - от установки какого-нибудь Терминала через Cydia, до монтирования телефона как раздела на компе. Мне больше нравится второй вариант - поставил Phone Disk - он подключил мой телефон как раздел, а дальше надо пошариться по файловой системе.
comment commentsAllCafe для iPhone 1.1.2
Выпустили мелкое обновление AllCafe для iPhone. Основные изменений - поддержка iPhone 3G (то бишь поддержка всей 4-й ветки iOS) и сжатие фотографий при добавлении отзывов на клиенте. К тому же теперь они загружаются в правильной ориентации (вертикальной или горизонтальной).
Что приятно - заапрувили всего лишь за сутки обновление. Похоже ревьюверы работают в ускоренном режиме сейчас - с 22 декабря по 29 декабря даже iTunes Connect будет закрыт на праздники.
comment commentsВидео Traveling
В эти выходные подруга позвала помочь на студию снять ролик для их проекта по учёбе. Тема - путешествия. Это что-то вроде промо-ролика к их выставке. Изначальная идея не удалась, в итоге просто снимали то, что было. Результат получился очень забавный и смешной, и музыку выбрали по моей подсказке. Надо больше снимать. Результат:
Оператор: Sergey Armodin
Монтаж и обработка видео Nadia Silver и Kira Kornienko
Музыка: Clint Mansell (OST Moon)