Свали Бета версията на diveWP Hosting Benchmark ТУК
*Това е БЕТА версия, тествайте само на тестови инсталации. За ползването на бета версията на production среда отговорността е ваша.
Съдържание (Table of Contents)
- Изпълнително резюме
- Архитектура на тестовата система
- 1. Тестове на базата данни (Database Tests)
- 2. Resource Tests
- 3. Concurrency Tests
- 4. Performance Tests
- Методология за оценяване (Scoring Methodology)
- Финална оценка и интерпретация
- Допълнителни характеристики на алгоритъма
- Изпълнение на тестовете и времеви рамки
- Заключение
В този материал описвам подробно как работи DiveWP Hosting Benchmark — система за оценка на WordPress хостинг среди, специално проектирана да оценява производителността чрез четири основни категории: Database Tests, Resource Tests, Concurrency Tests и Performance Tests. Тук ще намерите пълно описание на всяка отделна проверка, метрики, алгоритъм за оценяване и начина, по който тези резултати се агрегираат в една окончателна оценка от 0 до 100.
Архитектура на тестовата система
Моята имплементация съдържа над 20 отделни теста, групирани в четири големи категории. Всеки тест е създаден да симулира реални WordPress/WooCommerce сценарии и да измери ключови показатели като operations per second, латентност, устойчивост и консистентност.
Основните категории са:
- Database Tests — 8 теста, фокусирани върху CRUD и функции
- Resource Tests — 5 теста за CPU, памет, файлови операции, мрежа и WordPress core
- Concurrency Tests — 4 теста, които симулират многопотребителски натоварвания
- Performance Tests — 3 теста, насочени към e-commerce логика (ценообразуване, доставка, инвентар)
1. Тестове на базата данни (Database Tests)
Всяка от следващите подтеми запазва техническите термини на английски (например INSERT, SELECT). Описвам целта, техническата реализация, симулацията на реални сценарии и факторите за оценяване.
1.1 Data Creation (INSERT Operations)
Цел: Измерване на скоростта и устойчивостта при писане в базата данни.
Техническа реализация
Създавам временни таблици, имитиращи WordPress структура — products и meta. Тестът изпълнява:
- 1,000 products + 5,000 meta записи × 5 итерации = 30,000 операции
- Измерване: operations per second е основната метрика
Симулация в реални условия
Симулирам масово добавяне на WooCommerce продукти с мулти-мета данни — ситуация, характерна за миграции, първоначално зареждане на магазин или импорти.
Фактори за оценяване
Оценявам: ops/sec, използване на паметта и процент на грешки при масови операции.
1.2 Data Retrieval (SELECT Operations)
Цел: Тест на четене и ефективност на заявки.
Техническа реализация
- 2,500 complex queries × 5 итерации = 12,500 заявки
- Видове заявки: category listings, product searches, complex WHERE clauses
- Измерване: queries per second
Симулация
Тези тестове пресъздават поведение при разглеждане на каталог, търсене на продукти и филтриране.
1.3 Data Updates (UPDATE Operations)
Цел: Оценка на производителността при промени в данните.
Техническа реализация
- 200 update операции × 5 итерации = 1,000 обновления
- Фокус: bulk updates, transaction handling
- Измерване: updates per second
Симулация
Промени в наличности, статуси на поръчки и сценарии на масови ъпдейти (inventory management).
1.4 Crypto Functions Test
Цел: Измерване на криптографски операции — hashing и шифроване.
Техническа реализация
- 1,000 encryption/hash операции (single run)
- Тестови функции: MD5, SHA1, password hashing
- Метрика: криптографски операции/секунда
Роля за сигурността
Тези операции са важни за performance impact при e-commerce и authentication flows.
1.5 Math Functions Test
Цел: Тест на CPU-интензивни математически операции.
Техническа реализация
- 5,000 математически изчисления (single run)
- Функции: тригонометрия, логаритми, експоненциални изчисления
- Метрика: math ops/sec
Практическо значение
Важни за ценообразуване, tax calculations и други CPU-интензивни операции.
1.6 String Functions Test
Цел: Оценка на текстова обработка и манипулации.
Техническа реализация
- 3,000 string операции (single run)
- Операции: concatenation, replacement, manipulation
- Метрика: string ops/sec
Приложение
Този тест симулира обработка на съдържание, SEO операции и големи текстови манипулации.
1.7 DateTime Functions Test
Цел: Производителност при обработка на дати и времена.
Техническа реализация
- 5,000 datetime операции (single run)
- Операции: date calculations, formatting, comparisons
- Метрика: datetime ops/sec
Значение за бизнесa
Критично за поръчки, планиране и аналитични задачи.
1.8 Aggregate Functions Test
Цел: Изпитване на производителността при агрегиране и статистики.
Техническа реализация
- 100 aggregate операции върху 1,000 реда (single run)
- Функции: SUM, COUNT, AVG, GROUP BY
- Метрика: aggregation ops/sec
Влияние
Критично за dashboards, отчети и аналитични интерфейси.
2. Resource Tests (5 Individual Tests)
2.1 CPU Performance Tests
Цел: Комплексна оценка на CPU възможностите.
Техническа реализация — компоненти
- Prime Generation: 200,000+ изчисления с откриване на throttling
- Mathematical Operations: matrix ops, trig, log
- Fibonacci Sequences: рекурсивни алгоритми + memoization
- String Processing: обработка на 100KB+ текст
- Array Operations: сортиране/филтриране на 30,000 елемента
Разширени възможности
Включвам throttling detection (откриване на намалена производителност с течение на времето), оценка на performance consistency и анализ на ограничения в shared hosting среди.
Система за наказания / бонуси
Тук прилагам наказания за throttling, timeout-и и бонуси за стабилност — това има изразен ефект върху крайния резултат.
2.2 Memory Tests
Цел: Оценка на алокация и управление на паметта.
Техническа реализация
- Тестване на лимити за алокация
- Измерване на peak usage и efficiency
- Проверки за memory leaks чрез многократни итерации
2.3 File I/O Tests
Цел: Производителност на файловата система.
Техническа реализация
- Small files: 100 operations (логове, cache)
- Medium files: 50 operations (uploads, plugins)
- Large files: 10 operations (backups, exports)
- Concurrent I/O: 25 паралелни операции
Симулация
Тестовете пресъздават upload speed, backup/restore операции и обща filesystem responsiveness.
2.4 Network Tests
Цел: Проверка на свързаност и надеждност на мрежата.
Техническа реализация
- Проверки към WordPress.org API
- Измерване на HTTP response times
- Анализ на connection success rates и latency
2.5 WordPress Core Tests
Цел: Измерване на WordPress-специфични операции.
Техническа реализация
- Shortcode Processing: 100 shortcodes × 8 итерации
- Hook Execution: 500 hooks × 8 итерации
- Transient Operations: 200 cache operations × 8 итерации
- Security Functions: 1,000 validations × 8 итерации
Контекст
Тези тестове помагат да оценя как конкретна среда се държи при реални WordPress натоварвания — plugin/theme interactions и transient cache patterns.
3. Concurrency Tests (4 Individual Tests)
3.1 Database Concurrency
Цел: Измерване на производителността при едновременни DB операции.
Техническа реализация
- Симулация на 495 едновременни DB операции
- Смесени read/write операции
- Метрика: average response time под concurrent load
Симулация и значение
Това възпроизвежда множество потребители, които едновременно четат и пишат — ситуациите, при които locking/transactions са критични.
3.2 HTTP Concurrency
Цел: Тест на обработка на HTTP заявки под натоварване.
Техническа реализация
- 8 паралелни HTTP заявки
- Тестване на WordPress.org API endpoints
- Метрика: response time consistency
3.3 Memory Concurrency
Цел: Оценка на управление на паметта при конкуриращи се процеси.
Техническа реализация
- Симулация на 96 конкуриращи се memory processes
- Измерване на memory allocation success under stress
3.4 File Concurrency
Цел: Тест на файлови операции при едновременен достъп.
Техническа реализация
- 320 concurrent file operations
- Тестване на file locking, access patterns
- Метрика: I/O performance under load
4. Performance Tests (3 Individual Tests)
4.1 Price Calculations
Цел: Производителност на търговската логика за ценообразуване.
Техническа реализация
- 2,500 complex pricing calculations × 15 итерации
- Тестове: tax calculations, discount logic, currency conversion
- Метрика: calculations per second
4.2 Shipping Calculations
Цел: Производителност при изчисляване на доставка.
Техническа реализация
- 1,250 shipping rate calculations × 15 итерации
- Тестови сценарии: zone-based rates, weight, distance
- Метрика: processing speed
4.3 Inventory Operations
Цел: Оценка на операции по наличности.
Техническа реализация
- 1,500 stock level checks × 15 итерации
- Тестове: inventory updates, availability checks
- Метрика: operation speed
Методология за оценяване (Scoring Methodology)
Описвам подробно как агрегирана оценка се формира от отделните тестови резултати и как се интерпретират стойностите.
Обща схема на оценяването
Резултатите се комбинират чрез weighted scoring system, за да се получи една окончателна оценка в диапазона 0–100. Категориите имат следното тегло:
- Database Tests: 35%
- Resource Tests: 30%
- Concurrency Tests: 20%
- Performance Tests: 15%
Рейтинг прагове
Крайният резултат се превръща в рейтинг по схемата:
- Excellent: 90–100
- Good: 70–89
- Fair: 50–69
- Poor: 30–49
- Critical: 0–29
Database Tests — детайлно оценяване (35% weight)
Всеки DB тест е оценен на база operations per second и има следното разпределение вътре в категорията:
- INSERT: 12% от категорията
- SELECT: 12% от категорията
- UPDATE: 11% от категорията
- Function Tests (Crypto, Math, String, DateTime, Aggregate): общо 10% (разпределени по 2% за всяка)
Скали за оценяване (пример)
INSERT Operations (12%):
- Excellent: >500 ops/sec → 100 points
- Good: 300–500 → 75–99
- Fair: 150–299 → 50–74
- Poor: 50–149 → 25–49
- Critical: <50 → 0–24
SELECT Operations (12%):
- Excellent: >800 ops/sec → 100
- Good: 500–800 → 75–99
- Fair: 250–499 → 50–74
- Poor: 100–249 → 25–49
- Critical: <100 → 0–24
UPDATE Operations (11%):
- Excellent: >200 ops/sec → 100
- Good: 120–200 → 75–99
- Fair: 60–119 → 50–74
- Poor: 20–59 → 25–49
- Critical: <20 → 0–24
Function Tests (Crypto/Math/String/DateTime/Aggregate — всяка с ~2%):
- Excellent: >1,000 ops/sec → 100
- Good: 600–1,000 → 75–99
- Fair: 300–599 → 50–74
- Poor: 100–299 → 25–49
- Critical: <100 → 0–24
Агрегиране на Database Score
Database Score = (INSERT × 0.12) + (SELECT × 0.12) + (UPDATE × 0.11) +
(Crypto × 0.02) + (Math × 0.02) + (String × 0.02) +
(DateTime × 0.02) + (Aggregate × 0.02)
Resource Tests — детайлно оценяване (30% weight)
Resource категорията е разделена между CPU, Memory, File I/O, Network и WordPress core тестове.
CPU Tests (15% от категорията)
Скала (time-based):
- Excellent: ≤3.0s → 90–100
- Good: 3.1–6.0s → 75–89
- Fair: 6.1–12.0s → 50–74
- Poor: 12.1–20.0s → 25–49
- Critical: >20.0s → 0–24
Penalties:
- Throttling Detection: -15 points
- Timeout: -10 points/тест
- Consistency: до -14 точки
- Completion Rate: до -20 точки
Останали Resource Tests (15% разпределени)
- Memory Tests (5%): Excellent: >95% allocation success → 100
- File I/O (5%): Excellent: >200 ops/sec → 100
- Network (3%): Excellent: <0.5s response → 100
- WordPress Tests (2%): Excellent: >500 ops/sec → 100
Агрегиране на Resource Score
Resource Score = (CPU × 0.15) + (Memory × 0.05) + (File I/O × 0.05) +
(Network × 0.03) + (WordPress × 0.02)
Concurrency Tests — детайлно оценяване (20% weight)
В Concurrency категорията оценявам database, HTTP, memory и file concurrency.
Индивидуални тежести и скали
- Database Concurrency (8%):
- Excellent: <2.0s avg response → 100
- Good: 2.0–4.0s → 75–99
- Fair: 4.1–8.0s → 50–74
- Poor: 8.1–15.0s → 25–49
- Critical: >15.0s → 0–24
- HTTP Concurrency (6%): Excellent: <1.0s → 100
- Memory Concurrency (4%): Excellent: >90% success → 100
- File Concurrency (2%): Excellent: >150 ops/sec → 100
Агрегиране на Concurrency Score
Concurrency Score = (Database × 0.08) + (HTTP × 0.06) +
(Memory × 0.04) + (File × 0.02)
Performance Tests — детайлно оценяване (15% weight)
Индивидуални тежести
- Price Calculations (6%): Excellent: >400 ops/sec → 100
- Shipping Calculations (5%): Excellent: >300 ops/sec → 100
- Inventory Operations (4%): Excellent: >350 ops/sec → 100
Агрегиране на Performance Score
Performance Score = (Price × 0.06) + (Shipping × 0.05) + (Inventory × 0.04)
Финална оценка и интерпретация
Обединяване на категориите
Крайният резултат се изчислява като претеглено средно:
Final Score = (Database × 0.35) + (Resource × 0.30) +
(Concurrency × 0.20) + (Performance × 0.15)
Интерпретация на резултатите
- 90–100 (Excellent): Подходящ за high-traffic e-commerce, premium VPS/dedicated
- 70–89 (Good): Качествен VPS или managed hosting — адекватно за повечето WooCommerce магазини
- 50–69 (Fair): Стандартен shared хостинг или entry VPS — възможни проблеми при пик натоварване
- 30–49 (Poor): Ограничен shared хостинг — силно препоръчвам ъпгрейд
- 0–29 (Critical): Сериозни ограничения — незабавен ъпгрейд е необходим
Допълнителни характеристики на алгоритъма
1. Throttling Detection
Вградих механизъм, който анализира деградация на производителността във времето и прилага наказателни точки на хостове, които видимо „разреждат“ CPU/memory за да прикрият натоварване. Това е особено важно при shared hosting, където providers могат да ограничат процесите.
2. Consistency Scoring
Оценявам не само средната стойност, но и вариацията между итерациите. Стабилността е ценена чрез бонуси; силни колебания водят до наказания.
3. Completion Rate Analysis
Ако тестове не успяват да завършат или връщат грешки, това директно намалява крайния резултат чрез метрики за completion rate.
4. Error Rate Monitoring
Следя и грешките в базата/системата по време на изпълнение — повишен error rate означава по-ниска надеждност и съответно по-ниски оценки.
Performance Thresholds — обобщение
- INSERT: 500+ ops/sec = Excellent
- SELECT: 800+ ops/sec = Excellent
- UPDATE: 200+ ops/sec = Excellent
- CPU: ≤3.0s = Excellent
- Memory: >95% allocation success = Excellent
- File I/O: >200 ops/sec = Excellent
- Concurrency DB: <2.0s = Excellent
- HTTP Concurrency: <1.0s = Excellent
- Price Calculations: >400 ops/sec = Excellent
- Shipping Calculations: >300 ops/sec = Excellent
- Inventory Operations: >350 ops/sec = Excellent
Изпълнение на тестовете и времеви рамки
Оценки за продължителност на тестовете (приблизителни):
- Database Tests: 30–90 секунди
- Resource Tests: 45–120 секунди
- Concurrency Tests: 20–60 секунди
- Performance Tests: 25–75 секунди
- Общо примерно време: 4–6 минути
Механизми за безопасност
- 90% Time Limit: Тестовете използват 90% от PHP
max_execution_timeза да избегнат premature termination на средата. - Error Threshold: Автоматично прекратяване след 5 последователни грешки.
- Memory Monitoring: Следя peak usage и прекъсвам при риск от OOM.
- Timeout Protection: Всеки тест има индивидуален timeout и се отчита като incomplete, ако бъде прекъснат.
Заключение
В тази имплементация на DiveWP Hosting Benchmark съм се фокусирал върху три основни принципа: реалистична симулация на WordPress/WooCommerce сценарии, строга, но прозрачна методология за оценяване и детектиране на практики като throttling, които фалшифицират реалната производителност. Комбинацията от над 20 теста, ясно претеглени категории и система за наказания/бонуси дава практически и експлоатационно полезни резултати, които могат да служат като обективен ориентир при избор на хостинг или оптимизация на съществуваща среда.
Официален сайт: DiveWP.com