Gehaxelts Blog

IT-Security & Hacking

BOINC auf einem (V)Server einrichten

Da mein Vserver eigentlich nur am idlen war, habe ich mal boinc darauf installiert und lasse ihn jetzt an Malariacontrol mitrechnen.

Wie man BIONC auf einem Server installiert, könnt ihr nun erfahren.

Die Installation von Boinc

Zunächst müsst ihr boinc installieren. Das klappt meistens über den Paketmanager:

sudo apt-get install boinc

Danach legen wir in unserem Homeverzeichnis einen Ordner für Boinc ein:

mkdir ~/boinc

Wir starten dann BOINC als Daemon im Hintergrund:

boinc --daemon --dir ~/boinc

Nutzung

Wir können nun über boinccmd mit dem Daemon kommunizieren und Kommandos erteilen. Dazu brauchen wir jedoch ein Passwort, welches wir in der Datei gui_rpc_auth.cfg finden:

cat ~/boinc/gui_rpc_auth.cfg

Die Basis des Befehls sieht dann so aus:

boinccmd --host localhost --passwd $(< ~/boinc/gui_rpc_auth.cfg) [COMMAND]

Wir lesen das Passwort einfach aus der Datei aus und nutzen es zum Login.

Möchten wir uns nun bei einem Projekt anmelden, dann benötigen wir die Projekturl des Projekts. In meinem Beispiel ist das http://www.malariacontrol.net/. Dann können wir einen Account erstellen:

boinccmd --host localhost --passwd $(< ~/boinc/gui_rpc_auth.cfg) --create_account http://www.malariacontrol.net/ my@email.de mypasswd myusername

Wobei ihr die drei letzten Parameter entsprechend bearbeiten müsst. Ihr bekommt daraufhin einen AcccessKey zum Projekt. Diesen solltet ihr zumindest bis zum nächsten Befehl behalten.

Wir melden uns beim Projekt an:

boinccmd --host localhost --passwd $(< ~/boinc/gui_rpc_auth.cfg) --project_attach http://www.malariacontrol.net/ ACCESSKEY

Nun können wir endlich Gas geben:

boinccmd --host localhost --passwd $(< ~/boinc/gui_rpc_auth.cfg) --project http://www.malariacontrol.net/ resume

Daraufhin sollte der Server die entsprechenden Dateien herunterladen und anfangen diese zu berechnen. Das sieht man auch schön, wenn man htop bzw. top ausführt.

Wenn ihr beobachten wollt, wie der Server rechnet, dann könnt ihr euch die Tasks ausgeben lassen. Ein less ist dazu recht nützlich:

boinccmd --host localhost --passwd $(< ~/boinc/gui_rpc_auth.cfg) --get_tasks | less

Ihr könnt aber auch direkt den Projektstatus abrufen (Hier kann es etwas dauern, bis Informationen erscheinen):

boinccmd --host localhost --passwd $(< ~/boinc/gui_rpc_auth.cfg) --get_project_status

Möchtet ihr euch anzeigen lassen, wie viele WorkUnits der Server insgesamt fertig abgeschlossen hat, dann nutzt diesen Einzeiler:

boinccmd --host localhost --passwd $(< ~/boinc/gui_rpc_auth.cfg) --get_tasks | grep 'final CPU time:'| grep -v '0.00' | wc -l

Weitere Informationen bzw. Bedienungsmöglichkeiten könnt ihr per help herausfinden:

boinccmd --help
boinc --help

Performance meines VServers

Ich habe einen Vserver Light der 2. Klasse bei Netcup.de, und mir wurde folgende Leistung zugesichert:

  • 2GhZ CPU Leistung
  • 1-2Gig RAM
  • 80 GB HDD
  • unlimited Traffic

Für einen Preis von 5€ (ohne MwST) im Monat finde ist das recht akzeptabel.

Es laufen dort 5 BOINC-Prozesse und die WUs werden im Schnitt zwischen 5.000 und 9.000 CPU-Sekunden berechnet.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
   final CPU time: 7814.488000
   final CPU time: 4777.643000
   final CPU time: 5211.726000
   final CPU time: 2257.945000
   final CPU time: 5392.225000
   final CPU time: 4949.873000
   final CPU time: 1592.095000
   final CPU time: 9263.575000
   final CPU time: 2414.539000
   final CPU time: 6221.625000
   final CPU time: 5475.894000
   final CPU time: 5753.368000
   final CPU time: 4568.025000
   final CPU time: 2859.147000
   final CPU time: 5751.723000
   final CPU time: 4887.621000
   final CPU time: 3243.495000
   final CPU time: 5252.564000
   final CPU time: 5301.635000

Umgerechnet sollte jeder BOINC-Prozess in 3 Stunden eine WU fertig rechnen. Das sind dann 8 Stück pro Tag. Multipliziert mit den 5 Prozessen wären wir dann bei 40 WU die mein Vserver täglich dem Projekt beisteuert.

Ich finde es besser ein Projekt zu unterstützen, als den Server einfach idlen zu lassen :)

Gruß

gehaxelt