Когато искате да наблюдавате a apache сървър, трябва да знаем някои аспекти:
- Колко искания може да понесе
- Скоростта, с която отговаря на заявките
- Какво е времето за изчакване
- Какви приложения или услуги могат да бъдат подобрени или оптимизирани
ApacheBenchApacheBench това е компютърен софтуер, който работи на командния ред за измерване на производителността, особено на уеб сървърите и http услугата. Този софтуер е разработен за тестване на Apache HTTP сървър, но като инструмент за тестване на http услуги е възможно да се използва за тестване на всеки уеб сървър, като напр. Nginx, Lighttpd.
Инструментът ApacheBench той е в хранилищата на Linux и като библиотека на сървъра на Apache и следователно е безплатен софтуер с отворен код и използва лиценза на Apache.
Този вид тест е много лесен за извършване по бърз начин с помощта на командата Apache Bench ab.
Този тест бързо ще ни покаже дали има непосредствен проблем с инсталацията на Apache и затова той реагира лошо.
Той ни помага и със следния въпрос Доколко мога да използвам или принуждавам сървъра и неговите уеб ресурси с Apache, PHP и MySQL? (с едновременни връзки и страница за заявка за зареждане), плюс това, което трябва да оптимизираме в конфигурацията на Apache и PHP, за да получим по -добро представяне и премахване на проблемите с отговорите на искания на посетители.
1. Инсталиране на ApacheBench на Linux сървъри
Ubuntu / Debian
sudo apt-get install -y apache2 sudo apt-get install apache2-utils
Redhat / Centos
yum инсталирайте httpd-tools
Ще провеждаме тестове с различни области и ip. Ще започнем с отваряне на терминален прозорец и ще извършим следните тестове:
Локален сървър или localhost също ip 127.0.0.1
ab 127.0.0.1/localhost
2. Заявки
Нека разгледаме заявка с параметри. Изпращаме 100 заявки в групи по 30 наведнъж на google.com и записваме получените данни в csv файл, кодът е следният:
ab -g data.csv -n 100 -c 30 google.com/
Анализираме резултата
Сървърният софтуер: GFE / 2.0 // Работен сайт Уеб сървър на Google, базиран на Linux Server Име на хост: google.com Порт на сървъра: 80 Път на документа: / Дължина на документа: 262 байта Ниво на едновременност: 30 Време, необходимо за тестове: 1370 секунди Изпълнени заявки: 100 Неуспешни заявки: 0 Не-2xx отговори: 100 Общо прехвърлени: 53100 байта HTML прехвърлен: 26200 байта Заявки в секунда: 73.01 [# / сек] (средно) // средно за заявка Време на заявка: 410.899 [ms] (средно) / / средно за заявка Време за заявка: 13.697 [ms] (средно, за всички едновременни заявки) // средна стойност за обща скорост на трансфер: 37.86 [Kbytes / sec] получени времена за връзка (ms) // време за връзка, процес и изчакване мин. средно [+/- sd] медиана макс Свързване: 42 81 53,0 73 446 Обработка: 48 190 265,7 88 1286 Изчакване: 46 114 148,2 86 1246 Общо: 114 270 274,7 150 1369 Процент от заявките, обслужени в рамките на определено време (ms) 50 % 150 66% 203 75% 222 80% 243 90% 844 95% 953 98% 1088 99% 1369 100% 1369 (най -дълга заявка)
Виждаме, че той е отговорил на 73 заявки в секунда със средно време на заявка 410 899 милисекунди и скорост на трансфер от 37,86 Kbytes / sec, също така виждаме как връзката, процесът и времето за изчакване варират.
CSV файлът с данни ще има следната структура.
CSV структура
(начален час) вт. март 24 11:53:03 2015 - (секунди) 1427208783 - (ctime) 46 - (dtime) 68 - (ttime) 114 - (изчакване) 66 (начален час) вт, 24 март 11:53:03 2015 - (секунди) 1427208783 - (ctime) 46 - (dtime) 74 - (ttime) 120 - (изчакване) 72 (начално време) Вт, март 24 11:53:03 2015 - (секунди) 1427208783 - (ctime) 64 - (dtime) 56 - (ttime) 120 - (изчакайте) 56
След това от терминала с текстов редактор ще създадем текстов файл за оценка на множество URL адреси от един и същи домейн. Инструментът ApacheBench поддържа до 20 хиляди URL адреса, както следва.
Файлът ще има следната структура:
http://example.com/index.html/ http://example.com/news.html/ http://subdomain.example.com/Тестваме една заявка наведнъж:
ab -g data.csv -n 1000 urls.txtВ такъв случай, ApacheBench събира адресите на urls.txt и изпращане на заявки до сървъра. Името на домейна на URL адресите трябва да е еднакво за всички URL адреси.
Случай, при който 10 едновременни потребители извършват по 10 посещения на уебсайта
Става дума за около 100 страници, които се зареждат от 10 различни едновременни и повтарящи се потребители, всеки потребител прави 10 страници, които се зареждат или се показват последователно във всяка заявка.
Тестваме:
ab -l -r -n 100 -c -k 10 http://www.eexample.com/clients/Това представлява максимално натоварване на уебсайт, който получава около 100 000 посещения на месец, който трябва да бъде поддържан и отговорен от сървъра.
Случай, когато 50 едновременни потребители посещават една и съща уеб страница 20 пътиСтава дума за сървъра, отговарящ на 1000 страници, тоест 50 потребители за 20 заявки едновременно, всеки потребител прави 20 заявки към страници последователно:
ab -l -r -n 1000 -c -k50 http://www.eexample.com/chat/Това може да се използва за тестване на блог или система, където потребителите или посетителите коментират много, като изпращат много заявки като система за чат или система за коментари като facebook.
Този тип тест може да бъде еквивалентен на трафика на много активен уебсайт или блог.
Бърз PHP и MySQL тестСъздаваме всяка база данни на mysql или ако имаме такава за тестване, използваме я, тогава създаваме php скрипта, наречен absql.php
AB Test Php и MySQLИзпращаме 10 000 заявки към скрипта и следователно към MySQL.
ab -n 1000 -c 5 http://190.165.210.108/absql.php
Анализирайте резултатите от всеки тест с ApacheBench. Най -важните данни са тези, които ни предоставят информация за заявки и отговор от сървъра:
Анализирайте резултатите от ApacheBench1. Колко заявки в секунда може да обслужва сървърът, като гледа? Другите показатели не са много полезни, тъй като не представляват нещо реално в този контекст.
2. Има ли грешки на уеб страницата или конфигурацията на Apache? Когато на сървъра отнеме време да отговори или се срине, трябва да анализираме дали има проблеми с паметта или голяма консумация на ресурси.
3. На какво ниво на едновременност сървърът на Apache ще започне да се забавя или да се срине и колко дълго ще бъде времето за изчакване? Ако това се случва при ниско ниво на едновременност, нещо не е наред, трябва да знаем какво е това и какво е необходимо, за да работи, може би повече сървърни ресурси.
3. Фактори, които трябва да се вземат предвид за подобряване на производителността в Apache
Производителност на Apache1. Mod_cache модул от Apache до страницата за кеш на заявки / резултати. Това ще доведе до 5-10 пъти подобрение на производителността спрямо всички други методи, взети заедно.
2. php_memcache управлява кеша на данните за PHP скриптове и заявки. Това може да доведе до 50% -100% увеличение на производителността на уеб страници.
3. Приставки за кеш за Joomla, WordPress, PrestaShop и някои рамки или CMS.
4. Mod_expires модул Apache за използване на кеша на посетителя и за запазване на страници за известно време, вместо да прави заявка към тези страници отново и да се налага да се презареди, той работи, ако мрежата не променя съдържанието си всяка минута.
Друг аспект, който влияе значително върху производителността на Apache, е PHP и MySQL, подобряване на производителността на MySQL чрез оптимизиране на конфигурацията на файла my.ini на xampp, wampp или lampp и оптимизирайте заявките или заявките към мрежата, която използва php и генерира съдържание от MySQL, опитвайки се да оптимизира използването на MySQL бавен дневник на заявките, за да види какъв е проблемът и да подобри производителността.
Ако искате повече информация как да използвате AppacheBench.
Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка