Tips & Tricks – zwiększ wydajność pracy z FME, część 1

By 26 lutego, 20211 marca, 2021Jak to działa w FME, Zrób to sam
wydajność FME

Każdy użytkownik FME chce sprawniej i szybciej przetwarzać wiele zbiorów danych. Ale, podobnie jak inne programy, FME ma swoje ograniczenia, które mogą czasami spowalniać pracę. Doświadczenie ekspertów z całego świata na przestrzeni wielu lat pozwoliło wypracować sporo technik i wskazówek, dzięki którym praca z FME może być bardziej wydajna i przyjemniejsza.

Niedawno prowadziliśmy webinarium „Najlepsze techniki i optymalizacja pracy w FME”, podczas którego pokazywaliśmy, jak zwiększyć wydajność przetwarzania danych przy pomocy FME. Nagranie ze spotkania możesz znaleźć tutaj, a ten artykuł jest zarówno podsumowaniem, jak i rozszerzeniem omawianych wówczas zagadnień.

Na wydajność przetwarzania danych za pomocą FME wpływ ma wiele różnych czynników. Obejmują one zarówno sprzęt, wymagania systemowe, kwestie konfiguracyjne, jak również aspekty związane z poprawnym tworzeniem obszarów roboczych. W tym artykule poruszymy zagadnienia związane ze sprzętem, na którym zainstalowane jest FME. Część dotyczącą poprawnego budowania skryptów – tak, by FME działało jak najbardziej wydajnie – opublikujemy tu w kolejnym tygodniu.

Wpływ parametrów maszyny na wydajność FME

Sprzęt i wymagania systemowe

Na początek coś oczywistego: FME, tak jak wszystkie inne programy, ma określone minimalne wymagania systemowe. Aby oprogramowanie działało poprawnie, należy je po prostu spełnić. Sprzęt to jeden z podstawowych czynników, od których zależy wydajność FME. Wskazówka: w przypadku problemów z wydajnością należy w pierwszej kolejności sprawdzić, czy maszyna, na której zainstalowano FME, spełnia podstawowe wymagania systemowe:

Wymagania systemowe

Szczegółowa specyfikacja jest dostępna na stronie producenta oprogramowania. Należy jednak pamiętać, że im lepsze parametry techniczne sprzętu, tym sprawniej będzie działało FME.

Konfiguracja systemu i pliki log

W logach FME Desktop oraz FME Server można znaleźć wiele istotnych informacji na temat wydajności platformy. Warto więc zajrzeć również tam, aby poprawić wydajność narzędzia.

Jednym z pierwszych parametrów, które powinniśmy sprawdzić w logach FME, jest lokalizacja katalogu, w którym zapisywane są pliki tymczasowe. Domyślnie jest ona ustawiona na:

C:\Users\UserName\AppData\Local\Temp

Podczas przetwarzania za pomocą FME można znaleźć informację o ilości wolnego miejsca w tym katalogu:

INFORM | System Status: 102.16 GB of disk space available in the FME temporary folder (C:\Users\UserName\AppData\Local\Temp)

Jeśli w FME pracujemy z bardzo dużymi zbiorami danych, konieczne jest zapewnienie dużej ilości tymczasowej przestrzeni dyskowej. Wskazówka: Aby przyśpieszyć proces przetwarzania, jako folder tymczasowy warto wybrać szybki dysk z dużą ilością miejsca (preferowany jest dysk SSD). Jeśli masz taką możliwość, użyj innego dysku niż ten, z którego korzysta system operacyjny.

Lokalizację katalogu tymczasowego można zmienić w każdej sytuacji, w zależności od potrzeb. Instrukcje, w jaki sposób to zrobić, dostępne są w dokumentacji technicznej narzędzia.

Kolejnym parametrem, jaki można sprawdzić w plikach log, jest status systemu, czyli stan maszyny pod względem platformy, sprzętu i kodowania:

INFORM | System Status: 102.16 GB of disk space available in the FME temporary folder
INFORM | System Status: 7.85 GB of physical memory available
INFORM | System Status: 31.40 GB of virtual memory available
INFORM | Operating System: Microsoft Windows 10 64-bit (Build 18362)
INFORM | FME Platform: WIN64
INFORM | Locale: pl_PL
INFORM | System Encoding: windows-1250

Pamięć fizyczna to ilość pamięci zainstalowanej w systemie. Natomiast pamięć wirtualna to mechanizm zarządzania pamięcią systemu. To technika, w której system wymienia dane w celu skompensowania scenariuszy z małą ilością pamięci.

Wskazówka: Oczywiście należy pamiętać, że im więcej dostępnej pamięci fizycznej i wirtualnej, tym lepsza będzie wydajność komputera oraz działającego na nim FME.

FME zainstalowane na maszynach wirtualnych

Jeśli uruchamiasz skrypty FME, które przetwarzają spore ilości danych, warto rozważyć instalację FME na maszynie wirtualnej, ponieważ może to tymczasowo zwiększyć wydajność. Jednak nie można zapominać, że FME na maszynie wirtualnej może działać nieco wolniej niż na maszynie stacjonarnej o podobnych parametrach. Często jest to spowodowane źle skonfigurowanym środowiskiem. Kilka maszyn wirtualnych współdzieli wtedy zasoby tj. przepustowość sieci, zasoby pamięci oraz dyski współdzielone.

Jeśli masz dostęp do bazy danych z maszyny wirtualnej, problemem może być tzw. opóźnienie sieci. Dzieje się tak, gdy komputer hosta musi obsługiwać wiele maszyn wirtualnych, np. przepustowość sieci do obsługi dostępu do bazy danych i sieciowego systemu plików.

Wskazówka: Wydajność oraz przydział obszarów pamięci można poprawić poprzez wyłączenie dynamicznego zarządzania pamięcią dla środowiska maszyn wirtualnych.

Niekiedy zdarza się, że skrypt FME uruchamiany jest na różnych maszynach. Może się wówczas okazać, że na jednej z nich działa inaczej niż na drugiej, nawet jeśli specyfikacja, na pierwszy rzut oka, wygląda identycznie. Jeśli Ty i Twoi współpracownicy zauważycie różne charakterystyki wydajności na waszych komputerach, może być to spowodowane następującymi różnicami:

  • Czy oba komputery są fizyczne lub wirtualne?
  • Czy system operacyjny jest identyczny, ma tę samą wersję i te same aktualizacje?
  • Czy istnieje większa lub szybsza pamięć podręczna procesora, umożliwiająca szybszy dostęp do danych w jednym systemie?
  • Czy wersja, kompilacja i bitowość (32-bit vs 64-bit) FME są takie same?
  • Czy katalog tymczasowy FME znajduje się na tym samym dysku (lokalny / sieciowy lub HDD / SSD)?
  • Czy źródła danych znajdują się na tym samym rodzaju dysku (lokalny / sieciowy lub HDD / SSD)?
  • Czy każda instalacja FME ma takie same uprawnienia dostępu do danych źródłowych / docelowych?
  • Czy na jednej z maszyn nie działa dodatkowe oprogramowanie, które może zużywać zasoby?
  • Czy na jednej z maszyn nie są uruchomione usługi potencjalnie blokujące, takie jak zapora lub program antywirusowy?
  • Czy każda z maszyn ma taką samą przepustowość sieci?
  • Czy obie maszyny są fizycznie tak samo blisko serwera bazy danych?

Wskazówka: Aby poprawić wydajność, wiele czynników musi być statycznych, a te, których nie można kontrolować, należy ograniczyć. Używanie różnych maszyn niszczy większość elementów sterujących. 

Podsumowanie

Podsumowując, warto podkreślić, że na wydajność oraz szybkość przetwarzania danych przy pomocy FME ogromny wpływ ma maszyna oraz środowisko instalacji platformy. Z pewnością nie należy lekceważyć wymagań systemowych określonych przez producenta oprogramowania, a w miarę możliwości zapewnić jeszcze lepsze warunki instalacji FME. Mamy jednak świadomość, że bardzo często nie ma warunków na ingerowanie w ustawienia maszyny, na której zainstalowane jest FME. Z tego powodu producenci oraz doświadczeni użytkownicy narzędzia przez wiele lat wypracowali sposoby na zwiększenie wydajności FME podczas budowania skryptów i przetwarzania danych. Przeczytacie o nich w kolejnej części artykułu, która pojawi się tu już w przyszłym tygodniu.  

Odkryj nową ofertę szkoleń FME

Szkolenia podstawowe i tematyczne – odkryj tajniki FME razem z nami