Процесорно време – статистика и оптимизация

Какво е процесорно време?

Това представлява времето, необходимо на едно ядро от сървърен процесор да изпълни операциите по обработка на скрипт и да върне резултат.

Също така, 1 часовникова минута може да се равнява на няколко процесорни минути, тъй като процесорите обикновено са с повече от 1 ядра (8-ядрени, 16-ядрени и т.н).

Как се отчита и какво се включва в статистиката?

В процесорното време, което се отчита при услугата споделен хостинг, се включва времето за обработка на MySQL заявките и обработката на скриптове (php, perl, python и други скриптове), които се изпълняват на сървъра. В статистиката не се включва времето за сервиране на статично съдържание (css, js, изображения и др.).

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

В повечето случаи повишеното потребление на процесорно време не се дължи на един скрипт, който се изпълнява дълго време и/или изразходва много ресурс. Много често скриптовете в акаунта се изпълняват за милисекунди, но стотици или хиляди пъти, което води до натрупване на времето за работа на процесора.

Статистика за изразходваното процесорно време може да намерите във вашия клиентски профил. От менюто изберете Хостинг акаунти, след това кликнете на Настройки, в раздел Разширени системни параметри кликнете на Преглед.

Информацията се обновява веднъж на 24 часа.

Анализ

Много полезна информация при анализа и оптимизацията на изразходваното процесорно време, може да намерите в секция Логове (Logs) на контролния панел cPanel – Raw Access Logs и Awstats.

В статистиката анализирайте информацията в секциите:

  • Days of month (Number of visits, Pages, Hits)
  • Pages-URL (Top 25)
  • Hosts (Top 25)
  • HTTP Status codes

Така ще можете да проследите посещенията за различните дни, IP адресите, от които е достъпван сайта, както и страниците, които са зареждани.

Повишено потребление на CPU

Тук са изброени най-често срещаните причини за повишено потребление на CPU, с няколко съвета за оптимизация на приложенията.

Динамична обработка на снимки (динамично визуализиране, създаване на thumbnails, поставяне на „water mark“ върху снимка и т.н.)

Ето и малко повече информация относно динамичното и статичното сервиране на изображения:

В статистиката за процесорно време, както споменахме по-горе, се отчита времето за обработка на скриптове от хостинг акаунта (в случая php скриптове) и не се отчита времето, необходимо за сервиране на статично съдържание.

Пример за динамична обработка на изображения, е картинка да се визуализира по подобен начин:

https://domain.com/image.php?path=изображение.jpg

За да се покаже снимката, скриптът се извиква всеки път. На сайтовете обаче, обикновено има много повече от една картинка. Например, ако на една страница има 5 картинки, извикването на скрипта е 5 пъти и това е само за един потребител, при едно зареждане на страницата. Но сайта има много повече от един потребител, както и страницата не се отваря само веднъж. Това води да многократно изпълнение на един и същ скрипт, което следва и до неоптимално увеличаване на изразходваните ресурси.

Сервирането на статичното съдържание представлява картинката да се извиква директно, без да се използва скрипт:

https://domain.com/изображение.jpg

Често в повечето CMS-и се използват скриптове за динамично преоразмеряване и сервиране на изображения, като phpthumb, timthumb и др. При развитие на сайта подобни скриптове започват да изразходват неоптимално ресурси и едно удачно решение е „сервирането“ им като статично съдържание.

Статистически модули

Подобни приложения генерират много хитове към уеб сървъра, често на всяка секунда, за да може информацията да се предава в реално време. Това също често води до многократно увеличение на изразходваните ресурси.

Разположена система за управление на реклами (PhpAdsNew, OpenAds) и др.

Автоматични презареждания на определени елементи или страници води до излишни хитове към уеб сървъра. Липсващите елементи в сайта също могат да повишат потреблението на ресурси. Когато например грешката 404 се обработва от PHP. Удачен вариант за обработка на 404 грешка е използването на SSI.

Системите за управление на реклами също използват php скриптове за визуализация на съдържанието и при повишаване на хитовете, често се увеличава и изразходваното процесорно време.

Многобройни посещения и индексации от търсещи роботи

Базирайки се на практиката си, виждаме, че ботовете понякога са много агресивни при индексирането на сайтовете. В случай че забележите завишено индексиране от ботове, то можете да ги блокирате временно чрез .htaccess файла или да намалите честота на обхождане за сайта. Това можете да направите чрез Crawl-Delay функцията в robots.txt файл.

Често синхронизиране на календар/адресна книга

Въпреки че това е рядко срещана причина за повишено потребление на CPU, ако имате календар или няколко календара, които се „опресняват“ в много устройства, и периодът е зададен на 1 или 2 минути, това може да повиши потреблението на процесорен ресурс от хостинг акаунта.

В случай че имате няколко календара и/или няколко устройства, които едновременно ги синхронизират, периодът за синхронизация е препоръчително да се зададе през 30 минути (минимално през 15 минути).

И още:

  • Разположен PHP чат, live chat, ShoutBOX;
  • Излишни извиквания / презареждания (hits) на голямо количество елементи (картинки) на уеб страница, липсващи елементи.

Обновена: 06.02.2023

Беше ли Ви полезна тази статия?

Вижте още