September 19, 2013

И снова togif.me

Всем приветосы! Раз уж есть пока интерес к сервису то стоит кодить, а то потом в облом будет. Спешу поделиться последними новостями по сервису:

  • Перенес основной сервер на Selectel
  • Запилил конфиг с редиректами на старые гифки которые по прежнему отдает VDS на DigitalOcean
  • Случился небольшой факап на Селектеле
  • Разрулил факап + оптимизироал настройки Yii для высокой производительности
  • Запилил на сайте новый функционал - зеркальное отображение роликов
  • Пофиксил небольшую кучу багов, провел косметический ремонт на сайте и выпилил лишнее

Сразу начну с 3 пункта как с наиболее интересного. Поднял я значит облачный виртуальный сервер и добавил на него жесткий диск объемом 3 гигабайта. Как мне показалось этого вполне достатосно для ОС, окружения и 30-40 мегабайтного сайта (картинки же в CDN все). Ночью все корректно настроил и со спокойной душой сменил A-записи на домене.

До середины следующего дня все отлично работало и сайт радовал меня возросшей скоростью загрузки. А потом… вдруг неожиданно упал MySQL! Быстро захожу по ssh, пытаюсь оживить бедный сервер БД, а он мне все грустно job start failed.

Второпях начал ковыряться в логах ища причину и нигде не смог найти причину притом что остальные сервисы на сервере вполне себе работали в привычном режиме и потребление памяти было по минимуму. И тут черт меня дернул глянуть вывод df -H… А там как оказалось под / выделено место в размере 1.1Gb, остальные же 2 гига раскиданы непонятным мне образом:

/dev/mapper/togifme\_system-root 1.1G 1G 0 100% /
udev 234M 4.1k 234M 1% /dev
tmpfs 114M 123k 114M 1% /run
none 5.3M 0 5.3M 0% /run/lock
none 285M 0 285M 0% /run/shm
/dev/xvda1 140M 21M 112M 16% /boot

Вот так подвох!

В спешке гашу сервер и в панели увеличиваю размер жесткого до 5Гб + делаю все по этой инструкции.

Есть! Снова все заработало в штатном режиме.

Затем через пару часов я решил проверить как там поживает мой сайтик и с удивлением обнаружил отсутствие новых роликов при довольно неплохой посещалке. Попробовал записать ролик сам - увидел как скрипт грустно отдал ошибку 500. Как оказалось загружаемый файл не попадает в /tmp. Начал с правки лимитов в nginx.conf и php.ini - везде лимиты нормальные, а на сервер получилось загрузить файл только максимум в 150-200кб. И снова меня выручил df -H который показал что появился новый раздел /tmp размером в 1.1M! Вот это поворот!

Уже мысленно разочаровавшись в Селектеле перезагружаю сервер и о чудо /tmp пропал из вывода df -H. Все стало снова работать в штатном режиме. На всякий случай сразу же запилил резервное копирование сервера по cron + заодно еще устарнил один баг с временными файлами в коде togif.me

По описанию функционала сервиса ждите скоро отдельный пост в котором я затрону эту тему подробнее. Удачи! =)