Практически съвети за оптимално използване на сървърните ресурси Любомир Русанов. - презентация

Содержание

Слайд 2

Какво е сървърен ресурс? Изразходвана памет; Процесорно натоварване; Интернет трафик; Дискови

Какво е сървърен ресурс?
Изразходвана памет;
Процесорно натоварване;
Интернет трафик;
Дискови

операции;
Брой файлове;
База от данни;
Брой връзки към уеб сървъра;
Слайд 3

Основно правило за оптимизация Грешките на програмистите ... се решават ... с повече ХАРДУЕР!!!

Основно правило за оптимизация

Грешките на програмистите ...
се решават ...
с повече ХАРДУЕР!!!

Слайд 4

До кога?

До кога?

Слайд 5

Основни грешки Динамично оразмеряване на картинки; Излишно голям брой елементи на

Основни грешки
Динамично оразмеряване на картинки;
Излишно голям брой елементи на

страницата;
Ненужни статистически модули;
Неоптимални алгоритми;
Проблемни бази данни и заявки;
Лош разчет на посещенията;
Самоопресняващи се и презареждащи се страници;
Слайд 6

Намерете тясното място Концентрирайте се върху най-често извикваният код; Използвайте кеширане;

Намерете тясното място

Концентрирайте се върху най-често извикваният код;
Използвайте кеширане;
Не извиквайте външни

ресурси в реално време;
Използвайте оптимални SQL заявки;
Тествайте с големи обеми данни още при разработка;
Слайд 7

Използване на XDebug XDEBUG е extension за дебъгване, трейсване, профилиране на

Използване на XDebug

XDEBUG е extension за дебъгване, трейсване, профилиране на

php приложения;
XDEBUG-a се поддържа от всички съвременни среди за php разработка: NetBeans, Eclipse и др.;
Профайлера е подходящ за тестване на приложения, които имат проблем със скоростта, а и за откриване на тесни места (bottleneck);
Информацията от профайлера може да се анализира със различни приложения;
Слайд 8

Анализиране на profiling данните Цялата profiling информация се записва в лог

Анализиране на profiling данните

Цялата profiling информация се записва в

лог файл;
kCacheGrind - за Linux - http://kcachegrind.sourceforge.net/html/Home.html
winCacheGrind - Aналог за Windows - http://sourceforge.net/projects/wincachegrind/
И двата продукта дават информация за:
Времето за изпълнение на всички извиквания към php функции (библиотечни или не) - както времето за изпълнение на самата функция (stand alone), така и общото акумулирано време , ако тази функция е викана, напр. в цикъл.
Дърво на извикванията (в linux версията представена графично)
Пълен списък на графовете Извикан->Извикващ.
Stack-trace-ове.
Слайд 9

Слайд 10

Слайд 11

Няколко полезни връзки http://devzone.zend.com/article/2930 http://devzone.zend.com/article/2899-Profiling-PHP-Applications-With-xdebug http://devzone.zend.com/article/2871-Tracing-PHP-Applications-with-xdebug http://devzone.zend.com/article/2930-Debugging-PHP-applications-with-xdebug http://affinitybridge.com/blog/code-optimization-xdebug-and-kcachegrind http://techmania.wordpress.com/2008/07/02/debugging-php-in-eclipse-using-xdebug/

Няколко полезни връзки

http://devzone.zend.com/article/2930
http://devzone.zend.com/article/2899-Profiling-PHP-Applications-With-xdebug
http://devzone.zend.com/article/2871-Tracing-PHP-Applications-with-xdebug
http://devzone.zend.com/article/2930-Debugging-PHP-applications-with-xdebug
http://affinitybridge.com/blog/code-optimization-xdebug-and-kcachegrind
http://techmania.wordpress.com/2008/07/02/debugging-php-in-eclipse-using-xdebug/

Слайд 12

Съвети за бази от данни Използвайте правилните типове данни; Нормализирайте данните

Съвети за бази от данни

Използвайте правилните типове данни;
Нормализирайте данните

– създавайте правилни схеми;
Създавайте индекси – само когато са необходими;
Пишете заявките така, че да могат да използват индекси;
Използвайте само тези колони, които ви трябват;
Използвайте inner join винаги, когато е възможно;
Слайд 13

Правилно! Грешно!

Правилно!

Грешно!

Слайд 14

SELECT * FROM project_categories pc INNER JOIN projects p ON p.id

SELECT
*
FROM
project_categories pc
INNER JOIN projects p
ON p.id = pc.project_id

Използване

на индекс за join!

Без използване на индекс за join!

Слайд 15

Въпроси и отговори

Въпроси и отговори