Підсумки: що сильніше – асемблер або Хабраэффект?

Відшуміли пристрасті після моєї першої статті на Хабре.
Тема була про веб сайті на асемблері, так що немає нічого дивного в кількості коментарів до статті, а також у Хабраэффекте на сайті. Протягом перших декількох діб тисячі людей відвідали демо сайт AsmBB.
Сайт вже був один раз під таким напливом відвідувачів — коли в серпні хто опублікував посилання на сайт одночасно в Твіттер, ФБ і Реддит.
Але, судячи з лічильником відвідувань, Хабрахабр виявився вдвічі крутіше буржуйських сайтів і в цей раз демо сайт був навантажений значно більше ніж минулого разу.
Як і очікувалося, чудо сталося. Незважаючи на те, що хостинг гранично слабенький (я його взяв такий спеціально), незважаючи на те, що сайт використовує БД SQLite, яку всі вважають дуже повільною, форум не впав. Він навіть не сповільнилося. Весь час сайт працював справно і обслуговував всіх відвідувачів.
Подивимося як виглядає Хабраэффект зсередини:
Статистика відвідування
Стаття на Хабре була опублікована 2-го січня. За ті кілька днів, поки тривав Хабраэффект, вона була переглянута близько 40000 разів. Деяке число людей, що прочитали статтю, відвідали і демо AsmBB. Ці відвідування виглядають так:









Дата Відвідувачі Сторінки Запити Трафік Час
ЦПУ [з]
Час обс.
запр. [ms]
02 січ 637 4461 12224 63.06 MB 152 12.43 03 січ 5402 36453 84876 385.48 MB 795 9.37 04 січ 1961 14531 33445 171.60 MB 325 9.72 05 січ 743 5220 12504 53.17 MB 170 13.6 06 січ 343 2370 5421 23.21 MB 69 12.73 У сумі 9086 63035 148470 696.52 MB
Відвідувачі та запрось
З графіка навантаження CPU видно, що веб-сайт 3-го січня був навантажений приблизно наполовину. Тобто він міг би обслужити приблизно 180 000 запитів або 12000 відвідувачів в добу, перш ніж сервер почав тупити з-за обмежень на CPU.
В піках відвідуваності веб-сервер (Apache) запускав не більше 6 FastCGI процесів форуму. Це означає і 6 одночасних коннектов до БД.
SQLite, незважаючи на песимістичні думки в коментарях, вела себе весь час чудово, особливо не зупиняючись. При тому що движок форуму активно пише в БД не тільки коли відвідувачі публікують пости, але і коли тільки читають. Там ведеться статистика відвідування, є лічильники на кожен пост, для кожного гостя або користувача записується час останньої активності. Все це постійно пишеться в БД.
Настоянки SQLite такі:
PRAGMA journal_mode = WAL;
PRAGMA foreign_keys = TRUE;
PRAGMA synchronous = OFF;
PRAGMA threads = 2;
PRAGMA secure_delete = FALSE;

Відвідувачі
Цілком очікувано, відвідувачі були на 90% з Росії, України і Білорусії.
Мушу зазначити, що ці відвідувачі виявилися набагато активніше і вовлеченнее, ніж західні. Це мені дуже сподобалося, тому що допомогло протестувати сайт не тільки на швидкість роботи, але і на недоліки коду. В процесі Хабраэффекта і обговорення статті виявлено і виправлено декілька багів, у тому числі і критичних.
Зареєструвалися 32 нових користувачів, які написали кілька десятків постів, намагаючись протестувати форум на міцність.
Дякую хлопці! Ви дуже допомогли.
Ось і список виправлень, які були зроблені під час Хабраэффекта. Там не тільки виправлення, а й нові функції:
  1. Помилка, що викликає виключення
  2. XSS уразливість і ще одна помилка викликає виключення
  3. Помилка в даних аватарів на стороні клієнта
  4. Кешування HTML постів
Щодо п. 4 треба сказати, що я вирішив зробити цю функцію, вимірюючи час реалізації, як доказ того, що код на асемблері набагато легше підтримувати, ніж це прийнято вважати.
Час реалізації – рівне 78 хвилин. Напевно це дещо більше ніж на ЯВУ, але все ж цілком нормальний результат.
Висновки
А висновки робіть самі.


Спасибі gearbox за допомогу в редагуванні.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.