2013-02-22 13 views
11

Nasz serwer Jenkins (maszyna linuxowa) zwalnia z biegiem czasu i przestaje reagować. Wszystkie zadania zajmują nieoczekiwanie długi czas (nawet jeśli działają na niewolnikach, które są różnymi maszynami od serwera). Jedną z rzeczy, które zaobserwowałem, jest wzrost liczby otwartych plików. Liczba wydaje się rosnąć, jak pokazano na poniższym obrazku. Czy ktoś ma rozwiązanie, aby sprawdzić to bez restartowania serwera? Czy są też jakieś konfiguracje/poprawki, które mogłyby poprawić wydajność serwera Jennkins?Jak poprawić wydajność serwera Jenkins?

enter image description here enter image description here

+0

Zastanawiam się, czy istnieją jakieś zadania Jenkins, dla których kompilator i/lub testowanie nie jest prawidłowo czyszczone. Widziałem podobny problem na komputerze z systemem Windows, gdy jeden z testów jednostkowych zostawił nową kopię programu Excel przy każdym jej uruchomieniu. – jwernerny

+0

Ile zadań i ile buildów? Jeśli masz dużą liczbę zadań, a każda praca ma wiele buildów, to widzę, że to się dzieje. Mam swoją konfigurację Jenkinsa, aby usunąć stare zadania lub artefakty po tylu dniach lub kompilacjach. W konfiguracji zadania możesz wyszukać "Odrzuć stare kompilacje". –

+0

@LarryShatzer Mamy ponad 300 zadań i średnio każde zadanie może przechowywać 10 kompilacji. Niektóre prace są ciężkie i trwają 3 godziny, a niektóre są lekkie. Ogólnie rzecz biorąc, serwer jest używany w znacznej większości przypadków. –

Odpowiedz

5

Używamy Jenkins na okres jednego roku i staraliśmy się utrzymać ją na bieżąco (Jenkins + wtyczki). Jak ty eksperymentowaliśmy pewne niedogodności, w zależności od nowych wersjach Jenkins lub wtyczek ... Więc zdecydowaliśmy się zatrzymać ten „ciągły” upgrade

Najgorsze było uaktualnienie katalogu plug-in aktywny (1.36 do 1.37), uwierzytelnienie trwało kilka minut.

Pokornie, oto kilka rad:

  1. Aktualizacja Jenkins, ale używać tylko wersji "Long Term Support" (ostatnia jest 2.73.3)
  2. Restart Jenkins każdej nocy
  3. Dodaj do listy RAM serwer. Jenkins użyciu systemu plików dużo, a to poprawi buforowanie
  4. Definiowanie JVM min/max parametry pamięci o tej samej wartości, aby uniknąć dynamiczny realokacji, na przykład: -Xms4G -Xmx4G
  5. Dodaj niewolników i wykonywania pracy tylko na niewolników
1

Oprócz wyżej, można też spróbować:

  1. Odrzucanie stary buduje
  2. rozprowadzić opiera się na wielu niewolników, jeśli to możliwe.
Powiązane problemy