2011-01-04 17 views
14

Jako web developer zapytano (kilka razy w mojej karierze) o wydajność tworzonych przez nas stron. Czasami pojawiają się półprzejrzyste pytania typu "czy witryna będzie nadal działała dobrze, nawet podczas tygodnia premiery produktu?", "Czy witryna może obsłużyć użytkowników o wartości milionów?", A nawet ", w jaki sposób strona działa? "Najlepsze praktyki i literatura do testowania obciążenia aplikacji WWW

oczywiście, te pytania są bardzo uzasadnione, i zawsze starał się odpowiedzieć na mojej najlepszej zdolności te pytania, używając kombinacji

  • danych historycznych (google Analytics/dzienniki IIS)
  • Narzędzia do testowania obciążenia sieciowego
  • wydajności serwera liczniki
  • doświadczenie
  • przeczucie
  • rozsądek
  • niewielką pomocą naszych administratorów
  • moje osobiste rozumienie architektury oprogramowania w pytaniu

I były zazwyczaj w stanie przedstawić rozsądne odpowiedzi na te pytania. Jednak na wydajność aplikacji sieci Web może mieć wpływ wiele czynników (zależności bazy danych, strategie buforowania, problemy z współbieżnością itp., Zachowanie użytkowników).

Jestem programistą, a nie statystykiem, a moje podejście do tego problemu zawsze było głęboko nieznane. Zrobiłem więc trochę więcej badań ... i wszystkie moje wyniki w Google wydają się skupiać na narzędziach i funkcjach oraz danych (i WIĘCEJ metryk), kiedy naprawdę szukam sposobu, aby je zrozumieć. , aby zrozumieć te rzeczy:.

Pytanie: Jakie są dobre zasoby (książki?), Aby odczytać na najlepszych praktyk dla deweloper czytać na temat testowania obciążenia WWW, która pomoże mi odpowiedzieć na te rodzaje pytań?

Odpowiedz

9

Najpierw twoje pytanie dowodzi, że rozumiesz problem. Czasami może to być dość trudne stworzenie narzędzi, skryptów itp. W celu generowania obciążenia, ale prawdziwym wyzwaniem jest ocena wyników i co monitorować.

Bardzo prostą odpowiedzią na pytanie może być wygenerowanie obciążenia w środowisku przypominającym produkcję, które jest podobne do bieżącego lub oczekiwanego użycia. Jeśli działa poprawnie bez żadnych awarii lub niskiej wydajności, która zwykle jest wystarczająco dobra. Następnie zwiększ obciążenie, aby zobaczyć, gdzie są ograniczenia.

Po osiągnięciu limitu mam doświadczenie, że jest to wyłącznie kwestia budżetu projektu. Czy zainwestujemy więcej czasu/pieniędzy/zasobów itp., Aby ocenić przyczynę.

Pracuję jako profesjonalista testowy i zalecam testowanie obciążenia jako istotną część procesu rozwoju, ale niestety nie zawsze jest to zgodne z tym, co decyduje kierownictwo.

Więc odpowiedź na twoje pytanie jest taka, że ​​prawie każdy musi być zaangażowany w ten proces: programistów do monitorowania ich kodu; administratorzy systemu muszą monitorować procesor, wykorzystanie pamięci itp .; DBA; faceci w sieci; i tak dalej. Wszyscy prawdopodobnie potrzebują własnego źródła wiedzy, aby móc wszystkie te informacje zarejestrować i przeanalizować.

Kilka porad rezerwacja:

The Art of Application Testing Wyniki: Pomoc dla programistów i Zapewnienia Jakości http://www.amazon.com/exec/obidos/ASIN/0596520662/

sztuce Capacity Planning: Skalowanie Web Resources http://www.amazon.com/exec/obidos/ASIN/0596518579/

Wydajność naprowadzania Testowanie dla aplikacji internetowych http://www.amazon.com/exec/obidos/ASIN/0735625700/

+0

Awesome! Zacznę od pobrania The Art of Performance Performance Testing Zgadzam się, że obejmuje on wszystkie dyscypliny i wiele z nich jest do zrobienia Ta książka Brzmi jak dobry początek. – Stephan

1

Można emulować typowe zachowania użytkowników i korzystać z jednej z usług w chmurze, aby zasymulować ogromną liczbę użytkowników witryny, aby sprawdzić, jak dobrze radzi sobie Twoja witryna z ogromną liczbą użytkowników. Słyszałem usługa Amazon jest przyzwoity

+0

Dzięki, usługi oparte na chmurze są na pewno przydatne. Jednak są one po prostu narzędzia, jak i każde narzędzie jest tak samo użyteczne, jak osoba, która go używa - Szukam szczególnie * przewodników * i * najlepszych praktyk *. Amazon wygląda jednak ciekawie, a ja to sprawdzę – Stephan

1

Mogę ponownie pochwalić dwie książki wydane w 2010 roku:

Pierwsza z nich to "ASP.NET SITE PERFORMANCE SECRETS" przez Matt Perdeck, została opublikowana pod koniec 2010 roku. Jest napisany bardziej z punktu widzenia optymalizacji wydajności, ale ma również szczegółowe materiały dotyczące testowania obciążenia. Jest to bezpłatny eBook w formacie pdf.

Druga książka jest ".NET Performance Testing and Optimization - The Complete Guide", Paul Glavich, Chris Farrell”. To jest dość kompletne źródło na testowanie wydajności/obciążenia