Performance Engineering: JMeter, k6 та діагностика систем
Від основ вимірювань до самостійного дослідження продуктивності: JMeter і k6, JVM та збирання сміття, CPU, бази даних, пули та черги, Prometheus, Grafana, логи, трасування і профілювання. Пояснення з нуля, схеми, локальні лабораторії, квізи та підсумкове дослідження з доказами.
Навчальних сесій: 20Повний курс · безплатно
Огляд курсу
Над чим ви працюватимете
Від основ вимірювань до самостійного дослідження продуктивності: JMeter і k6, JVM та збирання сміття, CPU, бази даних, пули та черги, Prometheus, Grafana, логи, трасування і профілювання. Пояснення з нуля, схеми, локальні лабораторії, квізи та підсумкове дослідження з доказами.
Програма курсу
Перегляньте весь маршрут навчання.
Переглядайте назви уроків і тем. Зареєструйтеся та ввійдіть, щоб безкоштовно читати матеріали й проходити перевірки знань.
01Урок 1Що вимірює Performance Testing+
Теорія та практика
СтаттяЩо вимірює Performance Testing
02Урок 2Моделі навантаження+
Теорія та практика
СтаттяМоделі навантаження
03Урок 3Перший тест у k6+
Теорія та практика
СтаттяПерший тест у k6
Перевірка знаньПеревірка розуміння
04Урок 4Типи експериментів і відновлення+
Теорія та практика
СтаттяТипи експериментів і відновлення
05Урок 5Діагностика й перевірка гіпотез+
Теорія та практика
СтаттяДіагностика й перевірка гіпотез
06Урок 6Порівняння та підсумковий проєкт+
Теорія та практика
СтаттяПорівняння та підсумковий проєкт
Перевірка знаньПеревірка розуміння
07Урок 7JMeter: від першого запуску до правильного сценарію+
Теорія та практика
СтаттяJMeter без магії: встановлення та будова тесту
СтаттяHTTP у JMeter: адреса, тіло, заголовки та час
СтаттяПотоки, ramp-up і цикли: яку роботу ми задаємо
СтаттяНалагодження бізнес-сценарію: від входу до повтору замовлення
Перевірка знаньПрактичний квіз: перевірте свої висновки
08Урок 8JMeter: дані, кореляція, перевірки та ритм користувача+
Теорія та практика
СтаттяCSV і власність даних: незалежні користувачі
СтаттяКореляція: токени, cookies та залежні запити
СтаттяAssertions і Groovy: перевіряти зміст без зайвих витрат
СтаттяThink time, pacing і таймери: задаємо поведінку
Перевірка знаньПрактичний квіз: перевірте свої висновки
09Урок 9JMeter: CLI, результати та надійність генератора+
Теорія та практика
СтаттяВід GUI до CLI: відтворюваний запуск і JTL
СтаттяЧитання звіту JMeter: від таблиці до обґрунтованого висновку
СтаттяКоли bottleneck — сам генератор навантаження
СтаттяРозподілений JMeter: що множиться і що треба розділити
Перевірка знаньПрактичний квіз: перевірте свої висновки
10Урок 10k6: код сценарію, життєвий цикл та критерії+
Теорія та практика
Статтяk6 як програма: init, setup, VU і teardown
СтаттяHTTP-сценарій у k6: кореляція та контроль бізнес-результату
СтаттяSharedArray, VU та iteration: кому належать дані
СтаттяChecks, власні метрики і thresholds: коли тест справді провалюється
Перевірка знаньПрактичний квіз: перевірте свої висновки
11Урок 11k6: моделі навантаження, місткість VU та браузер+
Теорія та практика
СтаттяExecutors: обираємо модель під питання експерименту
СтаттяDropped iterations: чому швидкий тест може не виконати завдання
СтаттяTags, groups та критерії окремих операцій
СтаттяБраузерний k6 і CI: різні рівні доказів
Перевірка знаньПрактичний квіз: перевірте свої висновки
12Урок 12Як працює система: запит, CPU, мережа та контейнери+
Теорія та практика
СтаттяШлях запиту і бюджет затримки
СтаттяПроцес, потік, CPU та event loop без плутанини
СтаттяМережа: DNS, TCP, TLS, KeepAlive і межі вимірювання
СтаттяРесурси ОС і контейнера: квоти, RSS, диск та черги
Перевірка знаньПрактичний квіз: перевірте свої висновки
13Урок 13JVM і Garbage Collector: пам’ять, механізми та компроміси+
Теорія та практика
СтаттяЩо таке Garbage Collector: об’єкти, посилання та жива пам’ять
СтаттяЯк GC знаходить і звільняє пам’ять: покоління, паузи та бар’єри
СтаттяG1, Serial, Parallel і ZGC: як обрати експеримент
СтаттяТюнінг heap, CPU і пауз: змінюємо причину, а не набір прапорців
Перевірка знаньПрактичний квіз: перевірте свої висновки
14Урок 14Діагностика пам’яті: GC-логи, JFR, витоки та інші runtime+
Теорія та практика
СтаттяЯк читати GC-лог і тренд після збирання
Статтяjcmd, JFR і thread dump: який інструмент відповідає на питання
СтаттяУтримання і витік: доводимо, що живе занадто довго
СтаттяGC у Node.js і Python: що переноситься, а що ні
Перевірка знаньПрактичний квіз: перевірте свої висновки
15Урок 15Prometheus і Grafana: від вимірювання до читабельного dashboard+
Теорія та практика
СтаттяАрхітектура спостереження: метрики, логи, traces і profiles
СтаттяCounter, gauge і histogram: правильна модель метрики
СтаттяPromQL: rate, агрегація, p95 та правильний знаменник
СтаттяGrafana: dashboard, який допомагає розслідувати
Перевірка знаньПрактичний квіз: перевірте свої висновки
16Урок 16Логи, трасування, профілі та надійність телеметрії+
Теорія та практика
СтаттяСтруктуровані логи, Loki та LogQL
СтаттяOpenTelemetry і Tempo: читаємо trace, а не лише довгу смугу
СтаттяПрофілі та зіставлення сигналів: перевіряємо пояснення
СтаттяПрогалини телеметрії, alerts і вартість спостереження
Перевірка знаньПрактичний квіз: перевірте свої висновки
17Урок 17Діагностика bottlenecks: від симптомів до механізму+
Теорія та практика
СтаттяCPU та блокування: чому потоки не просуваються
СтаттяSQL: плани, індекси, статистика та блокування
СтаттяПули з’єднань, черги та backpressure
СтаттяCache, I/O та залежності: bottleneck поза CPU
Перевірка знаньПрактичний квіз: перевірте свої висновки
18Урок 18Перевантаження, місткість і відновлення+
Теорія та практика
СтаттяLoad, stress, spike, endurance та обсяг даних
СтаттяTimeout, deadline, retry та idempotency
СтаттяМісткість, масштабування та запас ресурсів
СтаттяВідновлення, деградація та межі експерименту
Перевірка знаньПрактичний квіз: перевірте свої висновки
19Урок 19Статистика, SLO та рішення за результатами+
Теорія та практика
СтаттяPercentiles, histogram та достатність вибірки
СтаттяПрогрів, повторюваність і чесне порівняння A–B
СтаттяSLI, SLO, error budget та критерій випуску
СтаттяЗвіт про експеримент і перевірки в CI
Перевірка знаньПрактичний квіз: перевірте свої висновки