Your SlideShare is downloading. ×
0
Практически съвети за оптимално използване на сървърните ресурси Любомир Русанов
Какво   е сървърен ресурс? <ul><li>Изразходвана памет; </li></ul><ul><li>Процесорно натоварване; </li></ul><ul><li>Интерне...
Основно правило за оптимизация <ul><li>Грешките на програмистите ... </li></ul><ul><li>се решават ... </li></ul><ul><li>с ...
До кога?
Основни грешки <ul><li>Динамично оразмеряване  на картинки; </li></ul><ul><li>Излишно голям брой елементи на страницата; <...
Намерете тясното място <ul><li>Концентрирайте се върху най-често извикваният код; </li></ul><ul><li>Използвайте кеширане; ...
Използване   на XDebug <ul><li>XDEBUG е extension за дебъгване, трейсване,  профилиране на php приложения; </li></ul><ul><...
Анализиране на profiling данните <ul><li>Цялата profiling информация се записва в лог файл; </li></ul><ul><li>kCacheGrind ...
 
 
Няколко полезни връзки <ul><li>http://devzone.zend.com/article/2930 </li></ul><ul><li>http://devzone.zend.com/article/2899...
Съвети за бази от данни <ul><li>Използвайте правилните типове данни; </li></ul><ul><li>Нормализирайте данните – създавайте...
Правилно! Грешно!
SELECT  * FROM  project_categories pc INNER JOIN projects p  ON p.id = pc.project_id Използване на индекс за join! Без изп...
Въпроси и отговори
Благодаря Ви! Любомир Русанов http://www.superhosting.bg http://blog.superhosting.bg http://facebook.com/superhosting http...
Upcoming SlideShare
Loading in...5
×

Webloz2011

245

Published on

Практически съвети за оптимално използване на сървърните ресурси

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
245
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Webloz2011"

  1. 1. Практически съвети за оптимално използване на сървърните ресурси Любомир Русанов
  2. 2. Какво е сървърен ресурс? <ul><li>Изразходвана памет; </li></ul><ul><li>Процесорно натоварване; </li></ul><ul><li>Интернет трафик; </li></ul><ul><li>Дискови операции; </li></ul><ul><li>Брой файлове; </li></ul><ul><li>База от данни; </li></ul><ul><li>Брой връзки към уеб сървъра; </li></ul>
  3. 3. Основно правило за оптимизация <ul><li>Грешките на програмистите ... </li></ul><ul><li>се решават ... </li></ul><ul><li>с повече ХАРДУЕР!!! </li></ul>
  4. 4. До кога?
  5. 5. Основни грешки <ul><li>Динамично оразмеряване на картинки; </li></ul><ul><li>Излишно голям брой елементи на страницата; </li></ul><ul><li>Ненужни статистически модули; </li></ul><ul><li>Неоптимални алгоритми; </li></ul><ul><li>Проблемни бази данни и заявки; </li></ul><ul><li>Лош разчет на посещенията; </li></ul><ul><li>Самоопресняващи се и презареждащи се страници; </li></ul>
  6. 6. Намерете тясното място <ul><li>Концентрирайте се върху най-често извикваният код; </li></ul><ul><li>Използвайте кеширане; </li></ul><ul><li>Не извиквайте външни ресурси в реално време; </li></ul><ul><li>Използвайте оптимални SQL заявки; </li></ul><ul><li>Тествайте с големи обеми данни още при разработка; </li></ul>
  7. 7. Използване на XDebug <ul><li>XDEBUG е extension за дебъгване, трейсване, профилиране на php приложения; </li></ul><ul><li>XDEBUG-a се поддържа от всички съвременни среди за php разработка: NetBeans, Eclipse и др.; </li></ul><ul><li>Профайлера е подходящ за тестване на приложения, които имат проблем със скоростта, а и за откриване на тесни места (bottleneck); </li></ul><ul><li>Информацията от профайлера може да се анализира със различни приложения; </li></ul>
  8. 8. Анализиране на profiling данните <ul><li>Цялата profiling информация се записва в лог файл; </li></ul><ul><li>kCacheGrind - за Linux - http://kcachegrind.sourceforge.net/html/Home.html </li></ul><ul><li>winCacheGrind - Aналог за Windows - http://sourceforge.net/projects/wincachegrind/ </li></ul><ul><li>И двата продукта дават информация за: </li></ul><ul><li>Времето за изпълнение на всички извиквания към php функции (библиотечни или не) - както времето за изпълнение на самата функция (stand alone), така и общото акумулирано време , ако тази функция е викана, напр. в цикъл. </li></ul><ul><li>Дърво на извикванията (в linux версията представена графично) </li></ul><ul><li>Пълен списък на графовете Извикан->Извикващ. </li></ul><ul><li>Stack-trace-ове. </li></ul>
  9. 11. Няколко полезни връзки <ul><li>http://devzone.zend.com/article/2930 </li></ul><ul><li>http://devzone.zend.com/article/2899-Profiling-PHP-Applications-With-xdebug </li></ul><ul><li>http://devzone.zend.com/article/2871-Tracing-PHP-Applications-with-xdebug </li></ul><ul><li>http://devzone.zend.com/article/2930-Debugging-PHP-applications-with-xdebug </li></ul><ul><li>http://affinitybridge.com/blog/code-optimization-xdebug-and-kcachegrind </li></ul><ul><li>http://techmania.wordpress.com/2008/07/02/debugging-php-in-eclipse-using-xdebug/ </li></ul>
  10. 12. Съвети за бази от данни <ul><li>Използвайте правилните типове данни; </li></ul><ul><li>Нормализирайте данните – създавайте правилни схеми; </li></ul><ul><li>Създавайте индекси – само когато са необходими; </li></ul><ul><li>Пишете заявките така, че да могат да използват индекси; </li></ul><ul><li>Използвайте само тези колони, които ви трябват; </li></ul><ul><li>Използвайте inner join винаги, когато е възможно; </li></ul>
  11. 13. Правилно! Грешно!
  12. 14. SELECT * FROM project_categories pc INNER JOIN projects p ON p.id = pc.project_id Използване на индекс за join! Без използване на индекс за join!
  13. 15. Въпроси и отговори
  14. 16. Благодаря Ви! Любомир Русанов http://www.superhosting.bg http://blog.superhosting.bg http://facebook.com/superhosting http://twitter.com/SuperHostingBG
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×