Dimka

Рейтинг
228
Регистрация
07.11.2000

1. В минуту: 17 тыс посетителей, 80 тыс хитов, 400 тыс записей в логе.

2.1. Perl (без фреймворков) + mySQL - N раз в период перегенерация статики (на основе логов и количества нового контента) + упаковка gzip каждого html. Почти не заметно, что это статика, проект - как любой динамический, но некоторые изменений на сайте - с небольшой задержкой.

2.2. Два сервера (8 ядер, 64 ГБ, ssd). Трафик распределяется RR DNS + сервера в разных ДЦ, проверяют доступность друг-друга и переключат трафик на себя в случае недоступности.

Вообще, мое мнение, большинству сайтов не требуется постоянно генерировать и отдавать страницу скриптом. Можно генерировать статику раз в день/час/минуту для всего или части сайта, всей или части страницы. Даже комментарии к статьям также можно отдавать статикой, просто добавлять новые (до генерации) с помощью js.

---

Проблемы решались по мере роста.

1. mysql - ничего не пишется онлайн, только в текстовые логи, и при перегенерации страниц логи читаются, анализируются и уже тогда пишутся нужные данные в таблицы. Например, если считается посещаемость каждой страницы - глупо при каждом выводе страницы инкрементировать счетчик в базе (на основе логов считаем посещаемость всех страниц за период и изменяем все за раз).

2. трафик - очень быстро и приблизительно анализируются логи (на Go), при превышении лимита трафика - все картинки переключаются на сильно переоптимизированные их версии (отдельный каталог). И уже потом анализируется - временный всплеск или постоянный: нужно ли расширять канал.

3. диск - почти все кешируется в памяти.

4. коннекты - проверятся кол-во и при превышении указанного мною лимита временно включается в sysctl: TCP_TW_RECYCLE и TCP_TW_REUSE. Но, сейчас не особо помогает в моем случае.

Последняя проблема:

conntrack (модуль iptables) не справляется с таким количеством IP: отключить его или NOTRACK

m@ksim:
Какой-то плагин браузера использует именованный счетчик liru для статистики: при просмотре всех сайтов плагин загружает счетчик.

Верно. Плагин: для Хрома, десктоп.

Многие сайты в интернете используют данное.

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

Maxim-KL:
К сожалению ботов ПС в белый список внести невозможно.

CF Должен пропускать ботов ПС.

We've also designed the new checks to not block search engine crawlers, your existing whitelists, and other pre-vetted traffic. As a result, enabling I'm Under Attack Mode will not negatively impact your SEO or known legitimate visitors

https://blog.cloudflare.com/introducing-im-under-attack-mode/

LiteCat:
Помню ещё Вебальту

Вебальта не из тех времен. Ее, вроде, Юни начал делать в середине 2005.

---------- Добавлено 22.03.2017 в 02:17 ----------

А еще у рамблера всегда был аналог ya.ru:

https://r0.ru/

Ingvarr:
какую информацию Вконтакте предоставляет следствию.

С историей сообщений (нельзя предоставить сообщения по двум юзерам, а только все) - оригинальный ответ :)

Сообщения в ВК не удаляются, а помечаются, что удаленные - т.е. просто помечаются "не показывать пользователю".

(посмотрел посты под статьей)

Hammer8:
верю в PR и формулы PageRank

Уже лет 10 назад PageRank считался не по классической формуле.

edogs:
"зато в ипотеке платишь за свое, а не дяде".

при ипотеке платишь дяде в банк :)

EvGenius:
более легкий модуль php с меньшим числом модулей будет весить меньше, в итоге подпроцесс апача быстрей запустить.

Но, оно не меняет сути:

Он может запускаться хоть час :) Замеры времени делаются внутри скомпилированного и запущенного скрипта.

Я веду речь о скрипте:

...

for($c = 30000000; $c >= 0; $c--);

while($c < 30000000)

++$c;

...

EvGenius:
не будем же спорить что скопировать в памяти что-то на 20мб и 40мб - займет чуть разное время.

Конечно.

Но, какая разница сколько компилируется данный скрипт?

$start = microtime(true);
...
$time = round(microtime(true) - $start, 3);

Замеры времени делает уже скомпилированный скрипт.

Всего: 750