**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 laufen lassen * für v3 Kunden [[run_enrichment|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 {{/dokuwiki/lib/images/smileys/icon_smile.gif|:-)}} **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 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:
    * Mit wget Bild herungerladen und speichern, danach mit convert das Bild verkleinern und auch speichern * Bild laden und Features berechnen * Ergebnisse in Mongo speichern
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:
    * 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
**Debug-Output: HTML Bilder + Score nebeneinander auflisten**

Score: %2.4f

**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 # 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 python /mnt/storage/var/live/lilly_export/bin/force_sync.py /mnt/storage/var/etc/v3/lilly_data_from_mongo.json (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 **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/…