Zabójcy wydajności SharePointa

Nie zawsze trzeba inwestować w nowe serwery, by poradzić sobie ze spadkiem wydajności środowiska Sharepoint. Wiele przyczyn spowolnienia można usunąć prostymi metodami.

Firmy coraz chętniej wdrażają środowisko Microsoft SharePoint, które dzięki prostej obsłudze i łatwemu dostępowi jest wykorzystywane do udostępniania informacji, komunikacji, pracy zespołowej. Wraz ze wzrostem liczby użytkowników SharePointa zwiększa się ilość przechowywanych danych, co niekiedy skutkuje problemami z wydajnością platformy. Standardową wskazówką jest rozbudowa serwerów. Czasami jednak inwestycja wcale nie jest konieczna, gdyż poprawę wydajności można uzyskać, eliminując przyczyny spowolnienia wydajności systemu. Znalezienie przyczyn problemów z wydajnością nie jest proste, gdyż nie we wszystkich instalacjach przyczyna tkwi w tym samym miejscu.

Gdzie szukać przyczyn spowolnienia

Pierwszy problem jest związany z danymi niestrukturalnymi. Większość zawartości udostępnianej użytkownikom jest przechowywana w formie obiektów w bazie danych SQL Server, jako BLOB (Binary Large Object). Odczytanie zawartości zajmuje znacznie więcej czasu i wymaga dodatkowej mocy obliczeniowej w porównaniu do odczytu tych samych obiektów przez CIFS (Common Internet File System) z macierzy dyskowej. Takie obiekty również radykalnie zwiększają rozmiar bazy. Niekiedy aż 95% składowanych danych w bazie SQL Server obsługującej Sharepointa to dane niestrukturalne.

Drugim zabójcą wydajności są duże multimedia. Do niedawna w firmach rzadko spotykało się taką treść, ale obecnie często wstawiane są obiekty, takie jak wideo, zdjęcia czy obszerne prezentacje programu PowerPoint. Te ostatnie tworzone w najnowszych wersjach pakietu Office i zapisywane w starszym formacie mogą zajmować wiele megabajtów. Im więcej danych przechowuje się w portalu SharePoint, tym bardziej jest obciążona baza danych SQL Server, co powoduje problemy związane z publikacją danych, przekroczeniem limitu czasu połączenia czy spowolnieniem działania serwera. Ponieważ rzadko występuje potrzeba publikacji dużych materiałów wideo na firmowym portalu, wyjściem jest wynoszenie ich na inny zasób i umieszczanie linków.

Trzecim problemem jest magazynowanie starych i nieużywanych od dawna plików. Większość treści po pewnym czasie staje się nieaktualna, ale pliki czy strony nie są archiwizowane. Jeśli firmy nie stosują archiwizacji przestarzałej treści, marnują miejsce i tracą na wydajności. Należy opracować i wdrożyć politykę archiwizacji treści, by nie marnować głównego storage’u i mocy obliczeniowej portalu.

Czwartą przyczyną niedostatecznej wydajności SharePointa jest niewykorzystywanie funkcji składowania obiektów poza bazą danych. Opcja ta nazywa się Microsoft Data Externalization i polega na zewnętrznym składowaniu obiektów, które dotąd były umieszczane w bazie SQL jako BLOB. Jeśli baza treści w SharePoincie 2010 ma rozmiar 4 GB lub więcej, należy rozważyć użycie podobnych narzędzi, by obiekty BLOB były składowane poza bazą SQL Server - przez odpowiedni dodatek po stronie serwera bazodanowego lub narzędzie po stronie SharePointa.

Piątym problemem jest złe wyskalowanie projektu. Jeśli wskaźniki rozwoju portalu zostały źle określone na początku wdrożenia, to wyskalowany do błędnych wartości sprzęt nie poradzi sobie z obsługą obciążenia. Problem pojawia się w firmach, w których zanotowano gwałtowny rozwój zasobów treści. Jeśli problemy wydajnościowe są spowodowane złym wyskalowaniem projektu, niezbędna będzie migracja do nowszego sprzętu. Razem z migracją warto zastanowić się nad wirtualizacją SharePointa, gdyż od wersji SharePoint Server 2007 jest oficjalnie wspierane przez producenta.

Wynieść BLOB poza bazę

Narzędzie Remote BLOB Storage jest dodatkiem do bazy Microsoft SQL Server 2008 i umożliwia przenoszenie obiektów BLOB do typowych zasobów plikowych. Po instalacji tego dodatku SharePoint razem z bazą danych zapewnia integralność między danymi a metadanymi, przy czym w bazie danych przechowywane są wtedy tylko metadane. Przykładem zasobu RBS może być SQL FILESTREAM, który jest kombinacją składowania w bazie SQL z obsługą systemu plików NTFS. Obiekty BLOB może także przyjmować praktycznie dowolny serwer plików obsługujący protokół SMB (Server Message Block).

Drugą opcją jest wykorzystanie dostawcy External BLOB Storage Provider (ISPExternalBinaryProvider), który umożliwia wyniesienie obiektów poza bazę do zasobu plikowego. Dane niestrukturalne są wtedy kierowane przez SharePointa do zewnętrznego, typowego zasobu plikowego. Nie są one nigdy zmieniane ani aktualizowane, ale przy każdej edycji lub zapisie tworzony jest nowy plik. Metadane odwołujące się do oryginalnego obiektu BLOB i jego identyfikator BlobID są usuwane z bazy SQL Server, a na ich miejsce tworzone są nowe wersje, odwołujące się do nowego obiektu (czyli pliku). Metoda ta powoduje nagromadzenie plików, zatem wymaga regularnego usuwania plików już niepotrzebnych.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200