User Tools

Site Tools


misteln_aus_dem_druidenwald

Schneller Test der Api / Front-End für einen Kunden:

http://api.picalike.com/test/apiTest.php?uid=334&limit=10&examplelimit=5&f=0.5

und für eine passende image ID

http://frontend01.picalike.corpex-kunden.de/api.php?i=395733970&key=cGljc2ltaWxhcjozMzQ=&w=1&r=0&limit=10&f=0.5&color=&test=1

oder (Loadbalancer umgehen)

http://frontend02.picalike.corpex-kunden.de/test/apiTest.php?uid=334&limit=10&examplelimit=5&f=0.5

Neuer Kunde:

  • auf mongodb01 in db picalike user-col. einen anderen Kunden kopieren (View Document…, Insert Document…) und _id-Feld löschen
  • neue uid ist die (aktuell höchste)++ → db.user.find().sort({“uid”:-1})
  • csv-Einstellungen in settings setzen (minimal: imgId, category, imgUrl)
  • auf index01 /home/picalike/scripts/datafeed_v2.php <uid> laufen lassen
  • für v3 Kunden run_enrichment
  • Api wie oben beschrieben testen

Alte Kundenfelder:

imgCrawler.logCollection, monetdb, enrichment.bowVocab_{A,B}

Antevorte:

Hierzu hab ich euch einen Zettel mit Bild da gelassen :-)

Ein Feed-Update von Otto hängt:

Hin und wieder verweigert die MonetDb das Update der Feeddaten. Wenn das passiert, für Otto auf dem index02 einloggen. Dort ein ps aux | grep <uid> absetzen. Mögliche Antwort:

picalike@index02:~$ ps aux | grep 334
picalike 22026  0.0  0.0   3956   592 ?        S    May15   0:00 sh -c php /home/picalike/scripts/datafeed_v2_db2.php 334 1400140571 2>&1 | tee /home/picalike/logs_v2/feed_334_1400140571_20140515.txt
picalike 22027  0.0  0.0 143916  9652 ?        S    May15   0:01 php /home/picalike/scripts/datafeed_v2_db2.php 334 1400140571
picalike 22028  0.0  0.0   5368   628 ?        S    May15   0:00 tee /home/picalike/logs_v2/feed_334_1400140571_20140515.txt
picalike 28530  0.0  0.0   3956   584 ?        S    May15   0:00 sh -c php /home/picalike/scripts/mongo2monetSimTable_db2.php 334 2>&1 | tee /home/picalike/logs_v2/mongo2monet_v2_334_201405150957.txt
picalike 28531  0.0  0.0 146256 10008 ?        S    May15   0:00 php /home/picalike/scripts/mongo2monetSimTable_db2.php 334
picalike 28532  0.0  0.0   5368   628 ?        S    May15   0:00 tee /home/picalike/logs_v2/mongo2monet_v2_334_201405150957.txt
picalike 28703  0.0  0.0   7548   872 pts/0    S+   08:30   0:00 grep 334

Den php-Prozess von mongo2monet (pid 28531) mit kill 28531 terminieren. Dann läuft noch das Backup und Otto kann dann ein neues Update anstossen.
Zusätzlich muss noch in der MongoDB (db: picalike, collection: feed_updates) der Status auf “finished”, busy auf “false” und ein Zeitstempel für ende eingetragen werden.

V2-Enrichment läuft langsam

Das Enrichment der V2 läuft kurz zusammengefasst folgendermaßen ab:

Die Liste der zu indizierenden Bildern in 5000er Blöcken abarbeiten:

<HTML><ol></HTML>

  • Mit wget Bild herungerladen und speichern, danach mit convert das Bild verkleinern und auch speichern
  • Bild laden und Features berechnen
  • Ergebnisse in Mongo speichern<HTML></ol></HTML>

Dabei scheint es aber ein Speicherleck oder ähnliches zu geben, was dazu führt, dass der Prozess immer langsamer wird, je mehr Blöcke abgearbeitet werden.

Prozedur zum Anhalten und neu Starten des Prozesses:

<HTML><ol></HTML>

  • Enrichment-Prozess killen → das hat zur Folge, dass das Zwischenergebnis an die Frontends geliefert wird und der FeedImport als beendet markiert wird (wenn unerwünscht auch das killen und/oder rückgängig machen)
  • export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/local/lib/:/home/picalike/pvt3/extern/libgsl/lib/; /home/picalike/pvt3/picalike/enrichment/enrichment -db=/home/picalike/pvt3/settings/picalike/mongo2.conf -uid=189
  • php /home/picalike/scripts/mongo2monetSimTable_db2.php 189
  • FeedImport als beendet markieren, damit Otto wieder neue FeedUpdates starten kann<HTML></ol></HTML>

Debug-Output: HTML Bilder + Score nebeneinander auflisten

  <div style="display:inline-block"><img src="%s" style="max-height:200px" /><p>Score: %2.4f</p></div>
  

Aus welchem Paket kommt die Datei?

http://askubuntu.com/questions/481/how-do-i-find-the-package-that-provides-a-file

From man dpkg:

  -S, --search filename-search-pattern...
               Search for a filename from installed packages.

Example:

  $ dpkg -S /bin/ls
  coreutils: /bin/ls

Alle Kunden auf den Mongo Stand bringen

  python /mnt/storage/var/live/lilly_export/bin/lilly_data_from_mongo.py /mnt/storage/var/etc/v3/lilly_data_from_mongo.json --force
  python /mnt/storage/var/live/lilly_export/bin/force_sync.py /mnt/storage/var/etc/v3/lilly_data_from_mongo.json <uid> # für alle kunden
  (sg02)
  

Einen Kunden auf den Mongo Stand bringen

  python /mnt/storage/var/live/lilly_export/bin/lilly_data_from_mongo.py /mnt/storage/var/etc/v3/lilly_data_from_mongo.json <uid>
  python /mnt/storage/var/live/lilly_export/bin/force_sync.py /mnt/storage/var/etc/v3/lilly_data_from_mongo.json <uid>
  (sg02)
  

pymongo-Versionen auf allen Hosts

  for host in dev01 dev02 i03 i04 i01hpc f03 f04 f01hpc f02hpc f03hpc f04hpc fpre ipre sg01 sg02 ; do echo -n "$host: " ; ssh $host 'python -c "import pymongo; print pymongo.version"' ; done
  

Befehle im Cron absichern

Falls alle Befehle umgeleitet werden, sollte zumindest der exit-code geprüft werden, so dass im Fehlerfall eine Ausgabe erzeugt wird.

/mnt/storage/var/live/indexer/scripts/update/enrichmentUpdate.py &> /dev/null || echo "ist abgekackt"

Lustige Dateinamen mit scp kopieren

Sind Sonderzeichen im Pfad, müssen diese geschützt werden. Allerdings reicht das nicht immer aus. Also Sonderzeichen escapen und dann noch zusätzlich doppelte Quotierung verwenden:

scp grapu:"'/var/www/html/sebastian/dataset/cat.bluse_bemustert_animalprint_ohne-aermel_ohnekragen/\$_72-1.JPG'" images/ziel.jpg

Wichtiges für jrpc

Der voreingestellte Wert für timeout ist 1 Sek, was sehr knapp ist. Also falls time-out-Fehler, dann auf jeden Fall timeout=5 setzen.

dummy values beim Export

Wenn es keine V4 Features gibt, werden beim Export dummy Werte eingetragen… Die betroffenen URLs sollten noch einmal ins Enrichment geworfen werden. Auf index03 bekommt man die URLs:

cat /mnt/storage/var/log/central.log | grep dummy | grep -o '<[^>]*>' | tr -d '<>' | sort -u

Auf index-prelive gibt es ein Skript um für eine Liste an URLs nochmal die Features zu berechnen. Es erwartet als Parameter eine Datei mit einer Url pro Zeile:

cd /home/picalike/bin; ./refresh_customer.sh <file-with-urls>

V4 Enrichment hängt

Häufig liegt es daran, dass das Tegra-Board (t1of2) nicht mehr antwortet. Auf dem Board muss dann der gpu_extractor neu gestartet werden.

# erst alten Prozess killen, dann:
cd /home/picalike/bin; nohup ./gpu_extractor -l INFO -c http://cloud01.picalike.corpex-kunden.de:4196 -b 16 -p 7000 -o ../var/log/shape_conv.log ../etc/shapenet_v5.conf &

folders most of the v3 stuff is in /mnt/storage/var/…

misteln_aus_dem_druidenwald.txt · Last modified: 2024/04/11 14:23 by 127.0.0.1