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
oder (Loadbalancer umgehen)
http://frontend02.picalike.corpex-kunden.de/test/apiTest.php?uid=334&limit=10&examplelimit=5&f=0.5
Neuer Kunde:
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>
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>
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/…