fredag 25 oktober 2013

Snabba upp Maven nedladdning av pom-filer från Nexus

I dag reagerade jag över hur lång tid det tog för Maven att hämta hem pom-filer från Nexus. Okej att det går långsamt att ladda hem små filer, men varför är det så lång väntetid mellan varje fil?
Efter att ha sökt runt lite upptäckte jag att Nexus använder sig av något som kallas "Ordered Group Repositories". Vilken ordning dina repon ligger i påverkar prestandan en hel del, eftersom Maven börjar med att leta efter pom-filer i det översta repot, där efter det näst översta och så vidare.

I mitt testfall blev byggtiden mindre än hälften efter att ha flyttat runt ordningen på mina repon. Då vill jag poängtera att samtliga av mina repon är lokala och att Nexus-servern står i samma byggnad som jag befinner mig i. En reduktion från 6.5 minuter till 2-3.5 minuter är inte dåligt.

För att komma åt inställningen loggar du in på Nexus, trycker på repositories i vänsterkolumnen. Väljer din repository group i högerkolumnen och trycker där efter på fliken configuration.
Du kan nu dra i repon under "Ordered Group Repositories" för att flytta på dem.

I min mening är detta ett mycket dåligt designval. Delvis finns det ingen knapp som tydligt demonstrerar att repon kan flyttas upp och ner i listan. Det finns inte heller någon varningstext som påpekar att felaktig konfiguration har enorm inverkan på prestandan. Vad jag vet finns det inte heller något profilingverktyg som kan hjälpa dig att placera dina repon i rätt ordning.

Källor:
books.sonatype.com
siddesh-bg.blogspot.com


måndag 21 oktober 2013

Smokeping i ubuntu/raspbian med lighttpd

För närvarande fungerar det inte särskilt bra att installera smokeping via apt-get om man kör lighttpd, därför har jag antecknat mina steg för att få igång en sådan installation.

Några av problemen är att smokeping är konfigurerat för att använda sendmail, men apt-get-paketet har inte sendmail som en dependency. Smokeping får också en trasig fil i sin rotmapp (smokeping.fcgi.dist). Vidare så installeras inte rrdtool automatiskt, fastän smokeping är oanvändbart utan.

Min installationsprocedur kanske inte är best practice, har du någon åsikt så kommentera gärna.

Installera nödvändiga paket
apt-get install lighttpd
apt-get install smokeping rrdtool

Skapa cgi-bin i din www-rot
sudo mkdir /var/www/cgi-bin

Länka in smokeping
sudo ln -s /usr/lib/cgi-bin/smokeping.cgi .

Kommentera ut sendmail ur konfigurationen
sudo nano /etc/smokeping/config.d/pathnames

Från:
sendmail = /usr/sbin/sendmail

Till
#sendmail = /usr/sbin/sendmail

Lägg till cgi-stöd i lighttpd
sudo lighttpd-enable-mod cgi

Starta om lighttpd
sudo service lighttpd restart

Starta om smokeping
sudo service smokeping restart

Nu ska du kunna nå smokeping på
hostname/cgi-bin/smokeping.cgi