Ubooquity - Serveur de BD et ebooks

Salut M,

Le scan des fichiers consiste à lister le contenu des répertoires partagés, puis lister les images des archives et en extraire la couverture. Donc en gros pendant le scan, ton NAS va passer sa vie à décompresser des archives, ce qui bouffe énormément de CPU et occupe aussi pas mal le disque dur.
C’est ça j’imagine qui explique l’impact sur le reste du NAS.

Etant donné qu’Ubooquity est utilisé sur de nombreux NAS Synology, il y a moyen que ça fonctionne.
Mais dans ton cas je ne sais pas si c’est le modèle qui est en cause (en tous cas niveau RAM, avec ton giga ça passe) ou si il y a autre chose. Désolé.

Sinon, pour voir, essaye de partager juste quelques fichiers, comme ça le scan sera rapide, et observe le comportement du NAS quand Ubooquity tourne « hors scan ».

C’est quoi des « connexions admin sur DSM » ? (je n’ai pas de NAS et ne connais que très très peu DSM)

Justement, ce qui est curieux c’est que le scan ne bouffe pratiquement aucune cpu, j’ai d’ailleurs l’impression que ubooquity est littéralement ‘bridé’, car toujours lent, qu’il y ait un scan en cours ou non, c’est comme si le processus n’utilisait pas de temps machine. Si le cpu du NAS restait à 80 % pendant le scan, à la limite cela m’étonnerait moins. Mais là c’est tout mou tout le temps, scan ou pas.
Et je parle bien d’ubooquity hein, pas du NAS.

Tu as moyen de monitorer les I/O ?
Parce que si ce n’est pas le CPU qui limite c’est probablement le disque.
Le scan n’est pas parallélisé, donc il va être limité par la resource la plus faible (un coeur logique ou des accès disques).

Faut que je regarde, cependant sur le NAS tournent en permanence un serveur web, un serveur multimédia, le serveur des Squeezebox et les téléchargements. Tout ça sans un ralentissement. Je ne pense pas que le matériel soit en cause. Peut être que les applis Java sont mal gérées, je sais pas en fait. C’est juste étrange.

Comme je l’ai dis plus haut, c’est comme si aucune ressource n’était alouée à Ubooquity.

Bonjour,
Merci pour ces infos mais je constate toujours un problème étrange de comportement du scan.

J’ai tout recommencé à zéro la semaine dernière et j’ai réussi à effectuer un scan qui m’a trouvé l’intégralité de mes BD. Depuis, je n’ai rien ajouté ou supprimé dans ma collection d’ebooks.

Ce soir j’ai décidé de relancer un scan après avoir constaté que plusieurs vignettes “folder.jpg” bien présentes dans mes dossiers ne s’affichaient pas en mode “folder” (que j’ai activé car je trouve cette fonction bien sympa)

Le scan n’a duré que quelques secondes : il a instantanément retiré 3000 titres de la base (je n’ai pourtant fait aucune modif depuis le scan précédent) et s’est terminé normalement.

C’est à coup sûr un problème propre à mon NAS puisque tout se passe bien quand je teste Ubooquity sur mon PC. Je vais essayer d’étudier cette histoire de liens symboliques (même si en toute honnêteté je n’y capte pas grand chose ^^)

EDIT : Nouvelle tentative de scan lancée dans la nuit après avoir supprimé la base (j’ai carrément effacé les 2 fichiers *.db dans le dossier Ubooquity de mon NAS) et constat identique. C’est dingue ce truc : après m’avoir trouvé toutes les BD il en supprime plus de 3000 à la fin :’(

Bon, j’ai presque réglé les problèmes.

J’ai viré l’installation d’origine :

Le binaire : /var/packages/Ubooquity
Les répertoires créés par l’appli dans le répertoire des BD
Le fichier conf dans /etc/init

J’ai modifié l’install en mettant le répertoire working dans /var/packages/Ubooquity plutôt que le répertoire BD partagé.
J’ai modifié aussi le port de communication du serveur.

L’appli semble se comporter normalement maintenant à l’exception d’un bug étrange : Lorsque Ubooquity tourne, le Download Station ne télécharge plus qu’à 1/3 du débit normal. Je vais attendre la fin du scan pour voir si ça dure.

Edit : Bon, il y a clairement conflit entre Download station et Ubooquity, impossible de laisser Ubooquity tourner en même temps que Download station.

Je cherche pas plus loin, j’en ai marre.

J’ai trouvé la source de mon problème…les 3000 titres qui sont virés sont ceux qui contiennent des accents :flushed:

Comme je n’ai jamais réussi à automatiser mon script ubooquity.sh pour qu’il se lance au démarrage du NAS, j’utilisais une astuce trouvée sur un autre site : se servir du planificateur de tâches du syno avec la commande suivante :

#!/bin/ash
/volume1/@appstore/Java8/j2sdk-image/bin/java -Dfile.encoding=UTF-8 -jar -Xmx512m /var/packages/Ubooquity/Ubooquity.jar -workdir /var/packages/Ubooquity -port 2202 -headless -webadmin > nohup.out 2>&1&

Il semble qu’avec cette méthode (qui par ailleurs fonctionne bien), le fameux paramètre -Dfile.encoding=UTF-8 ne soit pas pris en compte :frowning:

Curieusement, en saisissant les mêmes lignes de commande dans Putty, le scan détecte bien la totalité de mes titres, y compris ceux avec accents.

Bref si je lance Ubooquity depuis Putty, tout se passe bien. Le truc c’est que mon NAS est programmé pour s’éteindre la nuit : à son réveil il lance la tâche planifiée et si j’ai le malheur de refaire manuellement un scan (que j’ai désactivé par défaut) il actualise la base de données en virant tous les titres avec accents.

Alors là je pense (sans certitude) que c’est un problème de user ou d’environnement.
Le user qui lance Ubooquity quand tu passes par le planificateur n’est peut-être pas le même que le user que tu utilise quand tu te logges manuellement.

Il faudrait quelqu’un qui s’y connaisse en peu en NAS Synology pour te filer un coup de main.

Merci pour cette piste intéressante. Dans les paramètres de la tâche planifiée (plus exactement : tâche déclenchée, selon la terminologie Synology) on peut effectivement choisir l’utilisateur : root, admin et autres comptes utilisateurs existants. Mais d’après mes tests la tâche n’accepte de se lancer qu’uniquement en root (avec le souci des accents non supportés)

Tant pis, je vais rester sur le lancement manuel et remettre mon syno en fonctionnement 24/24 (à moins qu’une bonne âme me donne la bonne astuce pour rendre exécutable au démarrage mon script ubooquity.sh avec le DSM 6.0.2 car tous les tutos que j’ai trouvés ne fonctionnent pas sur mon NAS)

J’en profite pour te demander si des mises à jour de ton soft sont prévues car à part ces problèmes d’automatisation, c’est exactement l’outil que je cherchais depuis un bail pour pouvoir profiter n’importe où de ma collection de BD sans me prendre la tête (je trouve la simplicité d’accès par navigateur web juste géniale)

Comme d’autres avant moi, j’aurais bien aimé une fonctionnalité permettant de signaler les livres déjà lus…mais je me doute de l’aspect chronophage du développement d’un programme comme Ubooquity.

En tout cas encore merci pour ce super outil :relaxed:

Oui le soft est toujours en développement.
Mais j’ai lancé il y a quelques mois des changement assez gros qui me prennent plus de temps que prévu.
Combiné avec d’autres contraintes (boulot, enfants, santé…), ça donne un rythme d’avancement assez lent, forcément.

J’aimerais bien réussir à sortir quelques chose fin décembre ou début janvier. On verra si j’y arrive…

Cool :grinning:

Pour en terminer avec mes histoires de NAS, je viens de remarquer que le tuto de Matthew Sanders pour les Synology (celui sur ton site, donc) avait été tout récemment mis à jour. Ce qui m’a intéressé (et redonné espoir, surtout !) c’est qu’il mentionne que ça a été testé avec succès sur un DS215 j et DSM 6.02-8451…ce qui est exactement ma configuration^^

Pourtant, après avoir appliqué à la lettre les consignes, j’ai toujours mes 2 principaux soucis :

  • les titres avec accent sont ignorés (malgré la présence du -Dfile.encoding=UTF-8)
  • le service ne se lance pas au démarrage (le fichier conf est bien dans le répertoire indiqué et j’ai bien fait un chmod 755)

Par contre le lancement et l’arrêt manuel du service en SSH fonctionnent normalement (mais là aussi les accents sont ignorés).

Je sais que tu ne peux pas faire de tests et on t’a déjà bien embêté avec nos problèmes de NAS : j’en parle surtout dans l’espoir qu’un visiteur de cette page me confirme ou non si ce tuto a fonctionné pour lui et éventuellement réussir à déterminer où ça pêche chez moi (ça fait 3 semaines que je cherche une solution, c’est devenu une obsession ^^)

EDIT : Finalement j’ai enfin trouvé une solution pour lancer Ubooquity automatiquement au démarrage du syno avec prise en compte des caractères spéciaux. Je sais pas si c’est très propre mais ça marche :slight_smile:
J’ai créé une tache déclenchée avec le script suivant :

!/bin/ash

LANG=fr_FR.UTF-8
export LANG
/var/packages/Java8/target/j2sdk-image/bin/java -Dfile.encoding=UTF-8 -jar -Xmx512m /var/packages/Ubooquity/Ubooquity.jar -workdir /var/packages/Ubooquity -port 2202 -headless -webadmin > nohup.out 2>&1&

1 « J'aime »

Utilises tu download station ? Si oui remarque tu des problèmes de performances sur ce dernier et le serveur ubooquity lorsque les deux tournent ensemble ?

Salut,
Je n’utilise pas Download Station mais j’avais fait un test rapide après avoir suivi tes messages : je n’ai pas noté de ralentissement notoire en faisant tourner Ubooquity en même temps qu’un téléchargement sous DS.

Il m’a semblé quand même que le débit était plutôt moyen par rapport à mes téléchargements habituels sur PC. Je n’ai pas creusé plus que ça mais je vais refaire des tests avec des téléchargements plus lourds et je te redis ce que ça donne.

Alors comme promis, je viens de procéder à un test avec 1 fichier de 1 GO lancé dans Download Station, tout en ayant Ubooquity qui tourne : le téléchargement s’est déroulé normalement avec quasiment le débit maximal que permet ma ligne.

J’ai vérifié si le fait de consulter des BD sur ma tablette via le navigateur perturbait le téléchargement, mais non : pas de ralentissement notable dans Download Station ni dans la lecture des BD…

J’ai jeté un coup d’oeil sur la liste des processus avec Putty, à différents stades du téléchargement et avec une BD en cours de consultation : DS ne semble pas accaparer trop de mémoire ni de CPU, les valeurs ci-dessous n’ayant que très peu varié pendant tout le téléchargement : entre 5 et 6% de ressources processeur et moins de 2% de RAM (j’ai aussi indiqué le processus Java qui lui est beaucoup plus gourmand en RAM)

Peut-être que ton problème n’a lieu que pendant le scan ?
Je n’ai pas voulu tester ça vu que le mien demande plusieurs heures et que je n’ai pas trop envie de le recommencer (et je n’ai pas de nouveaux fichiers à ajouter pour l’instant) mais j’ai déjà constaté que le processus Java bouffait toutes les ressources pendant un scan et ça doit sûrement perturber les autres services du syno :confused:

Ok, merci pour ta peine. Je retenterai peut-être un scan complet.

Ça faisait presque un an qu’il n’y avait pas eu de nouvelle version: je m’étais mis en tête de refaire/remplacer certaines parties de l’appli (le serveur HTTP, maintenant Jetty, et l’UI, avec du Angular et du Material Design de partout).
C’est maintenant chose faite, avec des bug fixes et des bookmarks synchronisés en prime.

La version 2.0.0 (:warning:BETA) est donc disponible: Ubooquity 2.0.0 BETA

(lisez les releases notes quand même, il y a des changements à connaître avant de changer de version)

1 « J'aime »

Cool , j’avais de gros soucis de perf avec la version précédente, je vais retenter celle-ci sur le Syno.

Quand je lance manuellement, j’a un beau “Sorry, you are not authorized to access any file on this server
” lorsque je tape l’adresse http://monserveur:2202 et la page admin en 2203 ne fonctionne pas.

Alors les perfs de scan ce n’est pas un truc qui est censé avoir changé.

Le “Sorry, you are not authorized to access any file on this server”, c’est probablement parce que la sécurité est activée mais que tu n’as pas autorisé d’utilisateur à accéder aux dossiers que tu as partagé.

Pour la page d’admin, il faut autoriser excplicitement son accès distant avec le flag –remoteadmin.

J’ai bien mis le flag pourtant :

20170415 17:40:28 [main] INFO com.ubooquity.Ubooquity - Running with the following parameters - headless: true, libraryport: -1, adminport: -1, remoteadmin: true, host: null, debug: false, execdir: /volume1/Comics
20170415 17:40:28 [main] INFO com.ubooquity.Ubooquity - #############################
20170415 17:40:28 [main] INFO com.ubooquity.Ubooquity - # Starting Ubooquity #
20170415 17:40:28 [main] INFO com.ubooquity.Ubooquity - #############################
20170415 17:40:28 [main] INFO com.ubooquity.Ubooquity - Java version: 1.8.0_121
20170415 17:40:28 [main] INFO com.ubooquity.Ubooquity - Java vendor: Oracle Corporation
20170415 17:40:28 [main] INFO com.ubooquity.Ubooquity - Max heap size available: 494 MB
20170415 17:40:28 [main] INFO com.ubooquity.Ubooquity - OS name: Linux
20170415 17:40:28 [main] INFO com.ubooquity.Ubooquity - OS version: 3.2.40
20170415 17:40:28 [main] INFO com.ubooquity.Ubooquity - OS architecture: i386
20170415 17:40:28 [main] INFO com.ubooquity.Ubooquity - Loading local version info
20170415 17:40:28 [main] INFO com.ubooquity.Ubooquity - Ubooquity 2.0.0 built on 2017-04-15 at 09:21
20170415 17:40:28 [main] INFO com.ubooquity.Ubooquity - Creating application folders
20170415 17:40:29 [main] INFO com.ubooquity.Ubooquity - Loading preferences
20170415 17:40:33 [main] INFO org.eclipse.jetty.util.log - Logging initialized @10907ms to org.eclipse.jetty.util.log.Slf4jLog
20170415 17:40:33 [main] INFO com.ubooquity.a - Starting internal server…
20170415 17:40:33 [main] INFO com.ubooquity.a - Reverse proxy prefix is not activated
20170415 17:40:33 [Scanner thread] INFO com.ubooquity.data.feeder.a - Scanning books directories
20170415 17:40:33 [Scanner thread] INFO com.ubooquity.data.feeder.a - Finished scanning books directories, populating folders content cache
20170415 17:40:33 [Scanner thread] INFO com.ubooquity.data.feeder.a - Books folder content cache populated
20170415 17:40:33 [Scanner thread] INFO com.ubooquity.data.feeder.a - Scanning comics directories
20170415 17:40:33 [Scanner thread] INFO com.ubooquity.data.feeder.a - Finished scanning comics directories, populating folders content cache
20170415 17:40:33 [Scanner thread] INFO com.ubooquity.data.feeder.a - Comics folder content cache populated
20170415 17:40:33 [Scanner thread] INFO com.ubooquity.data.feeder.a - Comics statistics: [total: 0, added or updated: 0, removed: 0]
20170415 17:40:33 [Scanner thread] INFO com.ubooquity.data.feeder.a - Books statistics: [total: 0, added or updated: 0, removed: 0]
20170415 17:40:34 [main] INFO org.eclipse.jetty.server.Server - jetty-9.4.0.v20161208
20170415 17:40:34 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.h.ContextHandler@5ffe9e{/,null,AVAILABLE,@admin}
20170415 17:40:34 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.h.ContextHandler@2c971f{/,null,AVAILABLE,@library}
20170415 17:40:35 [main] INFO o.e.jetty.server.AbstractConnector - Started library@1e8f619{HTTP/1.1,[http/1.1]}{0.0.0.0:2202}
20170415 17:40:35 [main] INFO o.e.jetty.server.AbstractConnector - Started admin@b4bc72{HTTP/1.1,[http/1.1]}{0.0.0.0:2203}
20170415 17:40:35 [main] INFO org.eclipse.jetty.server.Server - Started @12511ms
20170415 17:40:35 [main] INFO com.ubooquity.a - Internal server started. Listening on port 2202 (library) and 2203 (admin)
20170415 17:40:36 [Timer-0] INFO com.ubooquity.Ubooquity - Checking latest available Ubooquity version from website
20170415 17:40:36 [Timer-0] INFO com.ubooquity.Ubooquity - Latest version available: 1.10.1 - Current version: 2.0.0
20170415 17:40:41 [main] INFO com.ubooquity.a - Stopping internal server…
20170415 17:40:41 [main] INFO com.ubooquity.data.feeder.a - Aborting content scan…
20170415 17:40:41 [main] INFO com.ubooquity.data.feeder.a - Waiting for scanner thread to stop
20170415 17:40:41 [main] INFO com.ubooquity.data.feeder.a - Scanner thread stopped
20170415 17:40:41 [main] INFO o.e.jetty.server.AbstractConnector - Stopped library@1e8f619{HTTP/1.1,[http/1.1]}{0.0.0.0:2202}
20170415 17:40:41 [main] INFO o.e.jetty.server.AbstractConnector - Stopped admin@b4bc72{HTTP/1.1,[http/1.1]}{0.0.0.0:2203}

J’accède au port 2202 mais pas au 2203, j’ai maintenant : “ERR_CONNECTION_TIMED_OUT”

Encore un truc que j’ai oublié de préciser, l’interface d’admin se trouve à l’adresse: my_ip:2203/admin
:sweat_smile:

On va ya arriver…
(et je vais de ce pas mettre à jour les release notes)