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
fredag 25 oktober 2013
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
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
torsdag 22 augusti 2013
Sätta upp git-repo för scm-sync-configuration plugin
Det finns ett utmärkt Jenkinsplugin för att spara konfigurationer och deras ändringar till GIT eller SVN, scm-sync-configuration. För att börja använda pluginet behövs ett repo där det kan spara konfigurationerna.
När jag hade använt git init på en mapp kunde pluginet trots detta inte spara, jag fick blandade felmeddelanden.
Lösningen var att initiera repot som ett bare repo.
Eftersom jag redan hade ett skapat repo (git init) gjorde jag om det till ett bare repo med följande kommando:
git config --bool core.bare true
Men om jag vill sätta upp ett nytt repo av denna sorten gör man så här:
git init --bare
När jag hade använt git init på en mapp kunde pluginet trots detta inte spara, jag fick blandade felmeddelanden.
Lösningen var att initiera repot som ett bare repo.
Eftersom jag redan hade ett skapat repo (git init) gjorde jag om det till ett bare repo med följande kommando:
git config --bool core.bare true
Men om jag vill sätta upp ett nytt repo av denna sorten gör man så här:
git init --bare
tisdag 20 augusti 2013
Sök filer och kör kommandon på dem i Linux
För att utföra detta kan man använda find:
find . -name '*.foo' -exec cat {} \;
Det som händer när vi kör operationen är följande:
. Sök i den mappen som vi är i.
-name '*.foo' Sätter ett filter för vilka filer som ska hittas.
-exec cat {} Kör cat, ersätt {} med filnamnen från sökresultaten.
\; Avslutar -exec-kommandot.
Källor:
StackOverflow
find . -name '*.foo' -exec cat {} \;
Det som händer när vi kör operationen är följande:
. Sök i den mappen som vi är i.
-name '*.foo' Sätter ett filter för vilka filer som ska hittas.
-exec cat {} Kör cat, ersätt {} med filnamnen från sökresultaten.
\; Avslutar -exec-kommandot.
Källor:
StackOverflow
fredag 16 augusti 2013
admin user missing i UGE
När skulle installera Univa Grid Engine 8.1.5, UGE, under Red Hat RHEL6 möttes jag av det något kryptiska meddelandet "admin user missing" när installationen skulle slutföras.
Som felsökning försökte jag köra installationen som root och låta root vara UGE-admin. Försökte även skapa en användare vid namn admin, som ingick i wheel-gruppen. Fortfarande samma felmeddelande.
I användarguiden nämns felmeddelandet. Men lösningen är då inte mycket till hjälp;
Förklaringen? UGE är uppdelat i flera paket, ett plattformsoberoende installationspaket samt plattformsspecifika binärer. Under installationsprocessen behövs binärerna, men det finns ingen kontroll för att se att de finns på plats. Felmeddelandet man får om binärerna saknas är därför "admin user missing".
Lösningen är därför väldigt simpel, extrahera binärerna och installationspaketet i samma mapp.
Som felsökning försökte jag köra installationen som root och låta root vara UGE-admin. Försökte även skapa en användare vid namn admin, som ingick i wheel-gruppen. Fortfarande samma felmeddelande.
I användarguiden nämns felmeddelandet. Men lösningen är då inte mycket till hjälp;
Setup the host properly so that name service provides the name properly to the remote machine (or create the user locally).
Förklaringen? UGE är uppdelat i flera paket, ett plattformsoberoende installationspaket samt plattformsspecifika binärer. Under installationsprocessen behövs binärerna, men det finns ingen kontroll för att se att de finns på plats. Felmeddelandet man får om binärerna saknas är därför "admin user missing".
Lösningen är därför väldigt simpel, extrahera binärerna och installationspaketet i samma mapp.
söndag 11 augusti 2013
Uppgradering av ruTorrent
I detta inlägg ska jag gå igenom hur man hämtar hem senaste versionen av ruTorrent samt återställer sin gamla konfiguration.
Jag börjar med att hämta ut senaste versionen via svn
svn checkout http://rutorrent.googlecode.com/svn/trunk/ rutorrent
I SVN-repot ligger plugin-filerna inte inuti rutorrent-installationen, det får vi lösa.
cd rutorrent
mv plugins rutorrent/
cd rutorrent
mv * ..
rm -rf rutorrent
Nu behöver vi hämta konfigurationen från vår gamla ruTorrent-installation. I mitt fall ligger den i www.
cp -r /var/www/rutorrent/conf .
Jag behöver också kopiera konfigurationen från mina plugins
cp -r /var/www/rutorrent/share .
Jag flyttar nu bort min gamla installation och lägger den nya på plats.
sudo mv /var/www/rutorrent ~/rutorrent.old
cd ..
sudo mv rutorrent /var/www/rutorrent
chown -r www-data:www-data /var/www/rutorrent
Om allt gått vägen ska din nya installation vara på plats!
Jag börjar med att hämta ut senaste versionen via svn
svn checkout http://rutorrent.googlecode.com/svn/trunk/ rutorrent
I SVN-repot ligger plugin-filerna inte inuti rutorrent-installationen, det får vi lösa.
cd rutorrent
mv plugins rutorrent/
cd rutorrent
mv * ..
rm -rf rutorrent
Nu behöver vi hämta konfigurationen från vår gamla ruTorrent-installation. I mitt fall ligger den i www.
cp -r /var/www/rutorrent/conf .
Jag behöver också kopiera konfigurationen från mina plugins
cp -r /var/www/rutorrent/share .
Jag flyttar nu bort min gamla installation och lägger den nya på plats.
sudo mv /var/www/rutorrent ~/rutorrent.old
cd ..
sudo mv rutorrent /var/www/rutorrent
chown -r www-data:www-data /var/www/rutorrent
Om allt gått vägen ska din nya installation vara på plats!
Etiketter:
problemlösning,
rtorrent,
rutorrent,
ubuntu server
rTorrent fryser
Jag har tidigare beskrivit hur man installerar rTorrent tillsammans med ruTorrent. Efter något års användande märkte jag att rTorrent började frysa mer och mer. Men det var svårt att lista ut varför, lasten var alltid låg och rTorrent kunde frysa även direkt efter omstart och när nätverkstrafiken var låg.
Efter en del sökande hittade jag till slut svaret. rTorrent förlitar sig på cURL, som i sin tur inte kan göra DNS-uppslagningar asynkront. Resultatet är att rTorrent hänger sig så fort den försöker göra en DNS-uppslagning som tar tid.
Lösningen är att kompilera om cURL tillsammans med c-ares, där efter kompilera om libtorrent och slutligen rtorrent.
1. Installera c-ares
wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
tar zxf c-ares-1.10.0
cd c-ares-1.10.0
./configure
make
sudo make install
2. Installera cURL
wget http://curl.haxx.se/download/curl-7.31.0.tar.gz
tar zxf curl-7.31.0.tar.gz
cd curl-7.31.0
./configure --enable-ares
make
sudo make install
3. Installera libtorrent
git clone https://github.com/rakshasa/libtorrent
cd libtorrent
./autogen.sh
./configure
make
sudo make install
4. Installera rtorrent
git clone svn://rakshasa.no/libtorrent/trunk/rtorrent
cd rtorrent
./autogen.sh
./configure --with-xmlrpc-c
make
sudo make install
Efter detta kör jag curl --version för att se att följande står: Features: AsynchDNS.
Om du kör ruTorrent är det möjligt att den säger följande nu:
"rss: Some functionality will be unavailable. Web-server user can't access external program (curl)."
I så fall ska du köra:
sudo apt-get install curl php5-curl
Efter det bekräftar jag åter igen att rätt version av curl körs med hjälp av curl --version.
Källa:
FileShareFreak
Ubuntu Forums
Rutorrent Forums
Efter en del sökande hittade jag till slut svaret. rTorrent förlitar sig på cURL, som i sin tur inte kan göra DNS-uppslagningar asynkront. Resultatet är att rTorrent hänger sig så fort den försöker göra en DNS-uppslagning som tar tid.
Lösningen är att kompilera om cURL tillsammans med c-ares, där efter kompilera om libtorrent och slutligen rtorrent.
1. Installera c-ares
wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
tar zxf c-ares-1.10.0
cd c-ares-1.10.0
./configure
make
sudo make install
2. Installera cURL
wget http://curl.haxx.se/download/curl-7.31.0.tar.gz
tar zxf curl-7.31.0.tar.gz
cd curl-7.31.0
./configure --enable-ares
make
sudo make install
3. Installera libtorrent
git clone https://github.com/rakshasa/libtorrent
cd libtorrent
./autogen.sh
./configure
make
sudo make install
4. Installera rtorrent
git clone svn://rakshasa.no/libtorrent/trunk/rtorrent
cd rtorrent
./autogen.sh
./configure --with-xmlrpc-c
make
sudo make install
Efter detta kör jag curl --version för att se att följande står: Features: AsynchDNS.
Om du kör ruTorrent är det möjligt att den säger följande nu:
"rss: Some functionality will be unavailable. Web-server user can't access external program (curl)."
I så fall ska du köra:
sudo apt-get install curl php5-curl
Efter det bekräftar jag åter igen att rätt version av curl körs med hjälp av curl --version.
Källa:
FileShareFreak
Ubuntu Forums
Rutorrent Forums
Etiketter:
problemlösning,
rtorrent,
rutorrent,
ubuntu server
Prenumerera på:
Inlägg (Atom)