konto usunięte
Temat: Problem z pamięcią. Jak znaleźć przyczynę ?
Witam,Od dwóch tygodni mamy problem z wydajnością jednego z naszych serwisów, w "godzinach szczytu"(Analytics pokazuje 170-250 os. w real-time) pożera całą dostępną pamięć (16GB). Normalny stan to 2-3GB. Przyrost pamięci nie jest zawsze taki sam, raz jest to gwałtowny 4-16 GB/2 min, innym razem wzrasta co jakiś czas po kilkaset -mega lub kilka -giga. Problem wygląda tak na obu serwerach(Server1 i Server2)
Konfiguracja serwerów wygląda u nas następująco:
Ruch pomiędzy serwerami rozdziela haproxy, aktualnie cały ruch trafia na Server1, a kiedy on przestanie odpowiadać dane zaczyna serwować Server2. Na Server3 znajduje się baza danych – MS SQL 2008 R2. Na Media znajdują się wszystkie pliki, które trafiają do folderu /media serwisu.
Server1, Server2,Server3 i Media są maszynami wirtualnymi postawionymi na tym samym serwerze fizycznym(Linux Debian KVM, najnowsza wersja libvirt z backportów, maszyny sprzętowo są stabilne).
Server1:
OS – Windows Server 2012 Standard
CPU – 8x2GHz
RAM -16GB
IIS8
Server2:
OS – Windows Server 2008 Web
CPU – 4x2GHz
RAM – 4GB
IIS7
Rzeczy wspólne dla obu serwerów:
Strona jest oparta na Umbraco 4.7, .net 4.0. Folder media podpięty jest jako „lokalizacja sieciowa” fizycznie znajduje się na osobnym serwerze Media(Linux Samba 3.x). W bazie mamy ~25000 węzłów.
Zauważyliśmy, że serwis intensywnie korzysta z połączenia z serwerem mediowym (do 200Mbit/s), wszystkie filmy przepuściliśmy tak aby omijały one IIS.
Serwis był przenoszony pomiędzy maszynami z OS Windows server 2008 i Windows server 2012 problem jednak nadal występował.
Myśleliśmy, że problem może powodować zmiana w kodzie, wycofaliśmy jednak wszystkie naniesione przez ostatni miesiąc zmiany, nie rozwiązało to jednak sprawy.
Używaliśmy już narzędzia DebugDiag oraz Ants Memory Profiler jednak nic nam to nie dało.
W jaki jeszcze sposób możemy sprawdzić co powoduje problem?