Тут нагрянули изменения.

Вы наверняка заметили, что сайт в последнее время слегка штормило техническими работами, а потом он внезапно начал летать. Настало время рассказать, что произошло под капотом и почему страницы теперь открываются моментально.


За 0.2 секунды отдать странику ни news ни магспейс никогда не умели. 

 

Главная магия — почему сайт стал отдаваться за 0.1–0.2 секунды

Ни старый news, ни magSpace никогда не умели отдавать страницы с такой скоростью. Причина оказалась до обидного банальной: все эти годы кэширование работало в режиме иллюзии.

В кэш сохранялось одно, движок упорно пытался прочитать другое, а внутренняя логика при каждом обращении еще и перезаписывала базу по кругу.

Стоило случайно нащупать эту аномалию и взглянуть на архитектуру с высоты сегодняшнего опыта — и началась тотальная ревизия всего накопившегося «наследия».

  • Почининена логика memcached. Теперь больше 90% запросов забираются напрямую из оперативной памяти за долю миллисекунды, не нагружая сервер и диски.

  • Переписаны древние SQL-конструкции. Запросы, которые раньше при каждом клике перебирали таблицы на миллионы строк и заставляли СУБД буксовать на диске и проситься на пенсию, заменены на точечные выборки и правильные составные индексы.

  • Полностью осовременен модуль загрузки. Врядли сейчас нужны большие файлы, но всё же. Добавили безопасную потоковую загрузку больших файлов, быструю санитизацию и аккуратную нарезку превью к видео через FFmpeg. И сам FFmpeg был от 2013го года :)

  • Наведен порядок в создании постов текст не теряется при сохранении. И мусор вычищен. 

  • Добавилась фича по вставке картинки из буфера во все поля комментов (и не комментов).

  • Перенастроено окружение, наконец-то по-человечески прикручены и настроены SSL-сертификаты. Кеширующий прокси тоже навялен и работает. Проведена полная ревизия всех настроек серверных компонент.

  • Раскопали в архивах забытый логотип, научили его плавно улетать наверх по клику, если закрывает обзор.

Вычищена тонна невидимого глазу технического долга. Сайт стал легче, отзывчивее и готов к нормальной жизни.

 

 

как бы думалось что можно и новых штук поприкручивать, а из штук помнится только тапков под постом не хватает. Попробую ими заняться может на следующих выходных. 

 

Если вдруг заметите где-то выползший баг — пишите в комментарии, поправим по горячим следам! А может и чего нового предложите. Вот было мнение «плюсы» с минусами на значки пальцев заменить. Ну такое, но посмотрим тоже. 

  • avatar
  • .
  • +51

31 комментарий

avatar
ИИ пользовался?
avatar
Конечно. На фотке не видишь чтоле? :) По работе постоянно, а тут прогнал узкие места через него и открылось. Хер бы я когда нашел лишнюю переменную в ключах кеша на чтение и её отсутствие на запись. И хер бы когда до этого дошло, если бы не база, которую дуем вместе уже 20 лет. А вот большая БД заставила копаться там «куда Макар телят не гонял». В кишках библиотек обвязки БД.
avatar
Аксель, а что с аватарками случилось? Я грущу
avatar
Случился РКН со всякими адвокатами. Картинки, это обоих хлебом не корми чтоб доебаться, и либо сайт в блокировку отправить, либо подать в суд на 5 миллионов за одну фото, которая была в 79 году напечатана в Крокодиле, но права на которую теперь выкупили ушлые адвокаты.

Так как картинок у нас дохера, они всегда найдут чем кровь попортить в жажде наживы или срубления палки.

Как ответ, картинки скидываются в арзив переодически, все. Там их не смогут наути «роботы» на службе тех и других.

А там и аватарки. И в итоге, каждая дырка вместо аватарки ведёт к нагрузке на сервак для генерации вместо картинки 404 страницы.

Выход, если аватарка не находится там где загрузили, отдается этот мужик в шляпе. Это легче для сервака чем генерить портянку 404 страницы.

Ну так загрузи заново и будет всем счастье. (потом перепишу что бы аватарки загружались не в те папки которые в архив отлетают)
avatar
у меня ава вернулась
avatar
(это я сделал каталоги «2022» и «03» и «27» и «19815» и загрузил туда твою «avatar_48x48.jpg» :) Вот она и вернулась.
avatar


avatar
ИИ Claude?
avatar
Как скорость? Разлогины случаются?
avatar
Скорость — огонь.
Разлогины пропали…

Замечаю некоторую «недокрутку».
Нажимаю «число новых комментариев», страница прокручивается вниз и останавливается задолго до цели. И потом докручиваю до нужного места колесом. Иногда прилично. От размера темы зависит похоже.
avatar
так это всегда и везде. он вначале тебе позиционируется. а потом уже прогружаются картинки и все улетает вверх. это на всех сайтах
avatar
Да, из-за картинок сдвигается позиция. а картинки размеры не прописывают шоб потом вписаться в ширину. Выход, жождаться когда прогрузятся картинки и потом жмакать на цифру.
avatar
Я так и не понял этого «прикола» не ужели за столько лет браузеров, фремворков и тому подобного нельзя было придумать автоскрол при загрузке картинок
avatar
Можно. Для этого нужно что бы у картинки было прописано разрешение жестко. Высота/ширина. тогда бро сразу будет под нее резервировать дырку заданных размеров. И тогда все будет скролится как надо. Проблема в том что если их указать… А у тебя разрешение меньше, то картинка будет вылезать в бок там, или по ширине непропоруионально сжиматься с сохранением высоты. Ест ьрешение. Нарезать твою картинку на 15 разных размеров при загрузке и подставлять нужную. Но бля, тут как бы не резиновые харды, поэтому не указываем разрешение, а когда бро его загрузит и сам узнает, сам подожмет по ширине сократив высоту пропорционально. Вроде бы ОК, да? Только автоскрол выходит из чата. Он не может заранее знать как бро ужмет картинки которые ещё не загружены. ;)
avatar
Вроде все нормуль, а ты можешь еще вк подкрутить?:) а то тупит жесть, по полгода страницы загружаются :(
avatar
Могу. Жмешь там выход из профиля, удаляешь из избранного — проблема решена.
avatar
Каждый день слетает логин с паролем.
  • SDA
  • +1
avatar
да не то что каждый день, а при каждом входе на сайт практически
avatar
я вот тоже хотел спросить, почему теперь при каждом заходе на ресурс нужно авторизовываться? движок в куки не умеет?
avatar
Умеет. Мало того, были эксперементы в регистрацией, пробовал ID сессии грузить в memcached/ Тогда логины слетали вообще постоянно. вернул всё взад. И у меня на рабочем и домашнем компах не слетает. А вы вот говорите что да… Воспроизвести не могу. Есть одна идейка, ночью попробую проверить её.
avatar
Не то что при каждом заходе, через определённое и очень малое время похоже… Сейчас зашёл на главную, авторизация, листаю, интересное — открыть в новой вкладке… Пока долистал, перешёл во вкладки, изучил, ставишь реакцию — фиг, авторизуйтесь!
avatar
Привет. Активизировалась почтовая рассылка о новых комментариях. Где это отключить?
avatar
Ок, посмотрю. Мне не прилетает. Но вырежу сегодня.
avatar
в настройках все галки сняты а всё равно почту спамит
avatar
в настройках профиля это
avatar
Разлогины происходят когда с разных мест авторизируешься ещё.
avatar
А под мобилку адаптация будет?
avatar
Хотелось бы… Но как представлю, так рука не поднимается написать «да». Может быть, ок? :)
avatar
Сайт реально стал быстрей открываться. А еще раньше была проблема с загрузкой видео. Начинало грузить первые пару секунд, потом переставало, но можно было догрузить, если открыть видео в отдельном окне. Сейчас грузит все, но то нормально и быстро, то «мэдленно».
avatar
А ветки комментов реально выправить? А то чем длиннее ветка, тем уже «облака». А так шустро прям, круть.
avatar
Ограничение стоит на 7 вложений. На нормальном мониторе это нормально выглядит.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.