SlideShare une entreprise Scribd logo
1  sur  50
1
RAPPORT -1- : Documentation OpenERP
7.0
2015
SUJET : AUDIT & OPTIMISATION OPENERP (ODOO 7)
STAGIAIRE : KOUBAA FIRAS - IIT
ENCADREURS : M.AHMED KOLSI & M.MOHAMED KHARRAT
2
Plan
1. OpenERP : Diagramme Swot………………………………………………………………………………………………..3
2. OpenERP : besoin en ressources (Hardware)………………………………………………………………………..6
3. Installation Windows…………………………………………………………………………………………………………..6
4. Installation Windows : “ All-in-one”…………………………………..………………………………………………..7
5. Installation Windows: Installation indépendante………………………………………………………………..10
6. Installation Linux……………….………………………………………………………………………………………………..20
7. Vue Générale : Comparatif implémentation sur Windows vs Linux..…………….……………………..26
8. Audit : Constatation plateforme OpenERP Sifast………………….……………………………….…………….28
9. Audit : Techniques d’optimisation & Comparatif Windows vs Linux…………………………………….29
9.1. Optimisation serveur OpenERP……….………………………………………………………….………..30
9.2. Mesure & Analyse de performances ………………………………………….…………………………40
9.3. Optimisation serveur PosetgreSQL……………………………………………………………..…………46
9.4. Recommandations & Conclusions…..……………………………………………………………….……48
3
A-OpenERP : Diagramme SWOT
(Strenghts, Weaknesses, Opportunities, Threats) :
Forces Faiblesses
 Bon framework de développement : le
framework d'OpenERP intègre un ORM,
une gestion des droits d'accès, un moteur
de workflow et un moteur de rapports
 Disponibilité d'une interface Web
complète, rapide, jolie et facile à utiliser
qui fonctionne avec Chrome, Firefox et
Safari (le client Gtk historique a été
abandonné avec OpenERP 7.0).
 Choix du langage Python : un langage
orienté objet conçu pour être facile pour le
développeur.
 Légèreté et bidouillabilité : OpenERP n'est
pas une usine à gaz, c'est un logiciel plutôt
léger et assez facile à appréhender pour
les développeurs. Avec OpenERP, si vous
avez des connaissances techniques, vous
arriverez relativement rapidement à un
stade où vous n'aurez plus l'impression
que l'ERP est une énorme boite noire mais
où vous vous sentirez le maître à bord. En
outre, les requirements hardware pour
faire tourner un serveur OpenERP sont
modestes.
 La faiblesse fonctionnelle des modules
officiels. OpenERP possède le minimum
dans chaque domaine.s
 Un manque de maturité, qui se ressent
sur le temps passé à corriger des bugs,
pour certains très basiques
 La priorité n'est pas assez mise par
l'éditeur sur l'amélioration du fonctionnel
et la correction des "bugs fonctionnels",
par rapport à d'autres fonctionnalités
moins importantes comme par exemple
l'ajout d'une messagerie instantanée dans
OpenERP.
 L'éditeur fait parfois preuve d'un grand
amateurisme sur certaines
problématiques fonctionnelles, comme l'a
illustré le fiasco de la gestion des contacts
dans OpenERP 7.0 suite à un changement
du modèle de données. D'ailleurs, si vous
envisagez d'utiliser OpenERP 7.0, il est
important de prendre le temps de lire le
bug report 1160365, qui liste les
principaux problèmes constatés dans la
4
 Ergonomie et facilité d'utilisation :
l'éditeur, sous l'impulsion de son fondateur
Fabien Pinkaers, est particulièrement porté
sur les problématiques de "usability" et les
progrès sont visibles à chaque nouvelle
version.
 Modularité : OpenERP est très modulaire.
Le code fonctionnel est réparti dans de
très nombreux modules (comptabilité,
gestion de stock, ventes, achats, CRM,
gestion de production, gestion de projet,
notes de frais, gestion des congés, etc...)
et il est possible de n'installer que les
modules dont on a besoin. Cette approche
modulaire couplée à la notion d'héritage
permet de modifier le comportement natif
de l'ERP et de l'enrichir sans modifier le
code des modules officiels : on peut
enrichir les propriétés des objets natifs,
modifier les vues natives et changer le
comportement natif des fonctions dans des
modules spécifiques sans agir sur les
modules officiels.
 Une communauté dynamique,
sympathique et qui code énormément. La
communauté OpenERP ne se contente pas
de faire des bugs report et de demander
des features à l'éditeur, comme on le voit
parfois sur certains projets OpenSource ;
elle développe de nombreux modules
communautaires et propose de
nombreuses améliorations sous forme de
merge proposal à l'éditeur (qui ne prend
pas toujours assez de temps pour les
traiter !). La communauté OpenERP est
très probablement la plus grosse
communauté parmi les ERPs OpenSource.
Or la communauté a atteint un niveau de
contribution et d'expertise sur le code lui
permettant de continuer le développement
du logiciel seule en cas de faillite de
l'éditeur, ce qui est une assurance de
pérennité.
 L'existence de l'OpenERP Community
Association qui coordonne les
développements de la communauté et lui
permet de parler d'une seule voix face à
l'éditeur.
 Une marque (OpenERP) et une image qui
s'est beaucoup professionnalisée, même si
l'éditeur ne publie pas beaucoup de
success stories (la raison invoquée étant la
gestion des contacts dans OpenERP 7.0 et
discute des solutions possibles.
 Manque de disponibilité de l'éditeur pour
approuver (ou refuser) les « merge
proposals » communautaires sur les
branches officielles de développement,
alors même que l'éditeur se réserve le
monopole des commits sur ces branches.
 Manque de disponibilité d'intégrateurs
expérimentés qui ont un bon niveau
technique et fonctionnel.
 L'éditeur ne publie pas de scripts de
migration pour les modules officiels ; il le
fait payer sous forme de service.
5
difficulté d'obtenir l'autorisation de
l'entreprise utilisatrice).
 Une seule version d'OpenERP est
disponible, entièrement libre et gratuite. Il
n'y a pas une version "Entreprise" payante
et une version "Communautaire" gratuite
avec des fonctionnalités en moins, comme
Pentaho ou JasperSoft par exemple.
 la licence AGPL qui contamine les modules
; les modules distribués sont forcément
AGPL. Il n'y a donc pas de modules
payants sur OpenERP, contrairement à
PrestaShop ou Magento par exemple.
Opportunités Menaces
 Devenir le leader des ERPs OpenSource.
 Développement de scripts de migration
communautaires avec le
projet OpenUpgrade.
 Certains bons contributeurs de la
communauté OpenERP sont partis chez
Tryton (un fork d'OpenERP) en 2010-
2011, mais cette hémorragie semble
stoppée.
 Mauvaise gestion des copyrights par
l'éditeur sur les modules officiels qui
pourrait amener des contributeurs de la
communauté à contester la validité de la
licence
6
B-Hardware :
C- OpenERP installation sur Windows :
Configuration requise
L'installation du serveur fonctionne sur:
 Windows 2000
 Windows XP
 Windows Vista
 Windows 7, 8
 Windows Server 2000
 Windows Server 2003
 Windows Server 2008
Avec des disques formatés en NTFS (et non une partition FAT ou FAT32).
Note :
OpenERP serveur ne fonctionne pas sur Windows 98 ou ME; pour des raisons évidentes - ceux-ci ne
peuvent pas être formatés en NTFS.
7
1- All-In-One Installation:
Ceci est la façon la plus simple et la plus rapide à installer OpenERP. Il installe tous les composants
(OpenERP Server ,OpenERP Client et la base de données PostgreSQL) préconfigurés sur un
ordinateur. Cette installation est recommandée si vous ne disposez pas de toutes les personnalisations
majeurs.
2- Etapes d’installations en local : (All in one)
PostgresSQL
OpenERP Server
OpenERP Client
8
Ensuite, il est préférable d’avoir installé Xampp pour Windows
Et démarrer les services : MySql
Tomcat
Apache
9
10
2- Installation indépendante:
Si vous choisissez ce mode d'installation, tous les composants requis pour exécuter OpenERP devront
être téléchargé et installé séparément. Vous devrez opter pour une installation indépendante si vous
prévoyez d'installer les composants sur des machines distinctes. Ce mode est aussi pratique si vous
travaillez déjà avec ou prévoyez d'utiliser une autre version de PostgreSQL que celui fourni avec le Tout-
En-Un installateur.
2-1- Installation et configuration du serveur PostgreSQL :
 Installation serveur PostgreSQL
Vous pouvez télécharger le programme d'installation de Windows à partir de :
http://www.postgresql.org/download/windows/
Selon vos besoins, choisissez le One Click d'installation ou de la pgInstaller et lancer l'exécutable que vous
venez de télécharger.
 Installation d'un utilisateur PostgreSQL
Lorsque les installations de logiciels nécessaires sont terminées, vous devez créer un utilisateur
PostgreSQL. OpenERP utilisera cet utilisateur pour se connecter à PostgreSQL.
Ajouter un utilisateur ?
 Lancer une console Windows (exécuter le cmd dans la commande Rechercher les programmes et
fichierszone de texte de l' Démarrer menu).
 Changez le répertoire à l' PostgreSQL bin répertoire (par exemple C:  Program Files 
PostgreSQL  9.0  bin ) ou ajouter ce répertoire à votre PATH variable d'environnement.
Le super-utilisateur par défaut pour PostgreSQL est appelé postgres . Le mot de passe a été choisi lors de
l'installation PostgreSQL.
 Dans votre console Windows, tapez:
PostgreSQL
1- installer serveur PostgreSQL
2-Installer un utilisateur postgres
OpenERP Serveur
1- Telecharger et installer
2- Configurer Serveur
OpenERP Client
1- Telecharger et installer
2- Executer Client Web
11
C:  Program Files  PostgreSQL  9.0  bin> createuser.exe --createdb --username postgr
es --no-CREATEROLE --pwprompt openpg
Entrez le mot de passe pour le nouveau rôle: openpgpwd
Entrez à nouveau: openpgpwd
Est le nouveau rôle comme un super-utilisateur? (Y / n) y
Mot de passe: XXXXXXXXXX
* La ligne 1 est la commande elle-même
* La ligne 2 vous demande le mot de passe du nouvel utilisateur
* La ligne 3 vous demande de confirmer le mot de passe du nouvel utilisateur
* La ligne 4 est nouveau rôle super ou pas?
* La ligne 5 vous demande le mot de passe * * postgres de l'utilisateur
explications Options:
 --createdb : le nouvel utilisateur sera en mesure de créer de nouvelles bases
 --username postgres : createuser utiliseront le postgres utilisateur (super-utilisateur)
 --no-CREATEROLE : le nouvel utilisateur ne sera pas en mesure de créer de
nouveaux utilisateurs
 --pwprompt : createuser vous demandera le mot de passe du nouvel utilisateur
 openpg : le nom du nouvel utilisateur. Alternativement, vous pouvez spécifier un
autre nom d'utilisateur.
 openpgpwd : mot de passe du nouvel utilisateur. Alternativement, vous pouvez
spécifier un mot de passe différent.
Note : Mot de passe
Dans OpenERP v6, openpg et openpgpwd sont le nom d'utilisateur et mot de passe par défaut utilisé
lors de l'installation du serveur OpenERP. Si vous envisagez de changer ces valeurs par défaut pour le
serveur, ou avez déjà installé le serveur avec des valeurs différentes, vous devez utiliser les valeurs de
configuration de l'utilisateur lorsque vous créez un utilisateur de PostgreSQL pour OpenERP.
Maintenant utiliser pgAdmin III pour créer la base de données "openerpdemo" avec le propriétaire
"openpg":
CREATE DATABASE openerpdemo avec le propriétaire = openpg ENCODING = 'UTF8';
COMMENT ON DATABASE openerpdemo EST 'OpenERP Démo DB';
12
Si vous avez installé le serveur OpenERP, vous pouvez commencer maintenant. Si nécessaire, vous
pouvez remplacer la configuration du serveur en démarrant le serveur à une console Windows et
spécifiant des options de ligne de commande. Pour en savoir plus, reportez-vous à la sectionConfiguration
personnalisée .
Pour changer le mot de passe d'un utilisateur dans une version Windows, exécutez la commande
suivante:
net user <accountname> <newpassword>
par exemple utilisateur postgres postgres net
Si il est un compte de domaine, il suffit d'ajouter "/ DOMAIN» à la fin.
Si vous souhaitez supprimer, il suffit d'exécuter:
net user <accountname> / supprimer
Case-Insensitive Rechercher Issue
Pour une installation qui a besoin du soutien de caractères UTF8 complet, pensez à utiliser postgres> =
8.2.x. L'utilisation de versions avant cela, la recherche OpenERP ne reviendra pas les résultats escomptés
pour la casse recherches, qui sont utilisés pour la recherche des partenaires, des produits, etc.
Exemple:
SELECT 'x' FROM ma_table WHERE «pari» ilike «pari»
--matches seulement dans 8.2.x
2-2- Installation et configuration du serveur OpenERP :
 Le téléchargement du serveur OpenERP
Le OpenERP Server peut être téléchargé à partir de la page de téléchargement de site OpenERP .
Sous automatique sous Windows Installer , choisissez All-In-One pour télécharger OpenERP.
Installation du serveur OpenERP
Exécutez le programme d'installation vous venez de télécharger. Il comporte les étapes suivantes:
a. Choisir la langue d'installation
La valeur par défaut est l'anglais . L'autre option est français .
b. Message de bienvenue
Suivez attentivement les recommandations données dans cette étape.
c. Accord de licence
13
Il est important que vous acceptez la licence publique générale GNU pour poursuivre l'installation.
d. Sélectionner un dossier pour l'installation
Par défaut, OpenERP Server est installé dans C:  Program Files  OpenERP 7.0
Server . Pour installer dans un dossier différent, recherchez un emplacement différent (de
dossier) à cette étape.
e. Configurer la connexion PostgreSQL
Le programme d'installation va suggérer les paramètres par défaut pour terminer la configuration
de votre connexion PostgreSQL. Vous pouvez accepter les valeurs par défaut, ou le modifier selon
vos besoins.
f. Créer des raccourcis
Sélectionnez un dossier dans le Démarrer menu dans lequel vous souhaitez créer les raccourcis
du programme.
g. Installer
L'installation automatique du serveur OpenERP commence et vous pouvez visualiser ses progrès.
h. Finitioon
Lors de l'installation réussie de OpenERP Server, vous obtiendrez une confirmation
appropriée. Vous pouvez cliquez sur Terminer pour fermer l'assistant d'installation.
OpenERP Server est installè en tant que service Windows. Cela signifie que vous ne devez pas démarrer
le serveur à chaque fois que vous démarrez l'ordinateur et il fonctionne sans avoir besoin d'une session
utilisateur ouverte.
 Configuration personnalisée
Pour initialiser le serveur avec des configurations de votre choix, vous avez de l'invoquer à l'invite de
commandes de Windows avec les options que vous souhaitez remplacer.
Accédez au répertoire d'installation dans C:  Program Files  OpenERP 6.1  Server  et tapez
cette commande mais ne pas l'exécuter encore:
openerp-server.exe -d <db_name> -r <db_user> -w <db_password>
--db_host = <postgresql_server_address>
--db_port = <port_no> --logfile = "<fichier journal>"
L'initialisation de OpenERP Server fournit les informations nécessaires pour la connexion à la base de
données PostgreSQL et le choix des données à charger. Voici l'explication des options utilisées:
 -d <db_name> : Nom de la base de données créée pour OpenERP Server.
 -r <db_user> : Nom de l'utilisateur PostgreSQL (rôle).
 -w <db_password> : Mot de passe de l'utilisateur PostgreSQL.
 --db_host = <postgresql_server_address> : Adresse du serveur sur lequel est
PostgreSQL. Si vous avez installé PostgreSQL sur le même ordinateur que
OpenERP Server, vous pouvez entrer localhost , sinon, l'adresse IP ou le nom
du serveur distant.
14
 --db_port = <port_no> : numéro de port où PostgreSQL écoute. La valeur par
défaut est 5432.
 --stop-après-init : Cette option arrête le serveur après l'initialisation.
 --logfile = "<fichier journal>" : spécifier un autre fichier journal où tous la
sortie de serveur sera sauvé. La valeur par défaut est C:  Program Files 
OpenERP 6.1  Server  openerp-server.log .
Avant l'exécution de cette commande, vous devez décider de l'objectif de la base de données créée dans
OpenERP.
Exemple de commande:
openerp-server.exe -d -r openerpdemo openpg -w openpgpwd
--db_host = localhost --logfile = "C:  Users  minuscule  Desktop  demo_db.log"
--db_port = 5430 --stop-après-init
Ici, vous devez entrer le nom d'utilisateur et mot de passe spécifié dans la configuration de la connexion
PostgreSQL lors de l'installation du serveur.
Lorsque vous exécutez la commande d'initialisation, si vous spécifiez un fichier journal, la sortie
d'exécution du serveur est écrit à ce fichier, et vous ne verrez aucune sortie de serveur dans la fenêtre
d'invite. Vous avez seulement à attendre l'invite revient.
Décider sur le but de la base de données
Vous pouvez initialiser la base de données avec OpenERP Server pour:
1. Jetez un oeil sur le système avec des modules installés et des données de démonstration chargé
2. Installer un nouveau système de base de données propre (sans données de démonstration)
3. Mettre à niveau une version existante
Avec des modules et des données de démonstration
Si vous exécutez la commande de l'échantillon ci-dessus, vous obtiendrez une base de données avec
seulement modules de base installé et chargé avec des données de démonstration. Pour initialiser
OpenERP Server avec des modules supplémentaires et ses données de démonstration, vous devez
ajouter cette option à la commande ci-dessus:
-i <nom du module>
Exemple de commande:
openerp-server.exe -d openerpdemo --stop-après-init -i vente
Cette commande va initialiser le serveur d'OpenERP avec le module vente et de ses dépendances, et
de remplir sa base de données PostgreSQL avec leurs données de démonstration connexes. Comme on
peut le voir, vous devez spécifier la base de données cible pour l'installation du module.
15
Pour installer plus d'un module, spécifier une liste des modules séparés par des virgules à la ligne de
commande.
Sans données dèmo (ou nouvelle version propre)
Exécutez la commande avec une option excluant les données de démonstration:
- sans - démo = tous
Cela va charger modules de base (et d'autres modules si l'option -i est utilisé), mais ne sera pas charger
ses données de démonstration.
Exemple de l'utilisation de la commande:
openerp-server.exe -d openerpdemo = all --stop-après-init --without-démo
Si vous avez déjà initialisé la base de données avec des données de démonstration chargé, vous pouvez
créer une nouvelle base de données et exécutez la commande ci-dessus sur elle.
Mettre à jour la base de données
Exécutez la commande avec une option qui met à jour les structures de données:
- mise à jour = tous
Exemple de l'utilisation de la commande:
openerp-server.exe -d openerpdemo --stop-après-init --update = all
 Contrôle du serveur OpenERP :
Le service et l'exécution des informations est accessible via la console Gestion de l'ordinateur dans Outils
d'administration.
Dans ce cas OpenERP 6.1 dans la liste des services
16
Ici, vous pouvez définir la façon dont le service doit agir en cas de défaillance du serveur. Accédez aux
propriétés du service en double-cliquant sur OpenERP 6.1 dans la liste.
onglet Récupération pour régler réponse d'échec de service
Le service de journalisation Gestion de l'ordinateur offre des informations supplémentaires sur l'exécution
du OpenERP Server, par exemple, le démarrage ou l'arrêt du service d'information.
Information sur le serveur dans la liste Journaux Windows
La Sortie d'exécution de serveur OpenERP (Runtime Output) peut être trouvé dans le fichier journal par
défaut. Étant donné que le serveur est maintenant en cours d'exécution en tant que service Windows, il ne
fait pas de sortie des messages d'exécution. Pour cela, le fichier journal est la seule option. Y accéder
depuis le Démarrermenu, à travers la Vue journal lien dans le groupe des raccourcis pour OpenERP
6.1. Sinon, utilisez le chemin C:  Program Files  OpenERP 6.1  Server  openerp-
server.log .
17
OpenERP fichier journal du serveur
Vous pouvez savoir si OpenERP est en cours d'exécution en invoquant le Gestionnaire des tâches de
Windows . Lorsque vous regardez le processus onglet, vous
verrez OpenERPServerService.exe et openerp-server.exe , les deux ayant SYSTÈME comme leur
utilisateur (voir ci, Afficher les processus de tous les utilisateurs doivent être activés dans le Gestionnaire
des tâches).
Les services dans le Gestionnaire des tâches de Windows
18
2-3- Installation et configuration de Client Web :
Note : Le client Gtk n’est pas développé au-delà de la version 6
Vous devez installer, configurer et exécuter l'OpenERP serveur avant d'utiliser le Web OpenERP. Le
client Web a besoin que le serveur fonctionne. Vous pouvez installer l'application serveur sur votre
ordinateur ou sur un serveur indépendant accessible par réseau.
 Téléchargement du web OpenERP
Le OpenERP Web peut être téléchargé depuis la page de téléchargement de site OpenERP .
Sous automatique sous Windows Installer, choisissez Web pour télécharger la version autonome de Web
OpenERP.
 Installation du Web OpenERP
Cliquez sur le fichier d'installation exécutable que vous venez de télécharger, et de procéder aux étapes
suivantes:
a. Choisir la langue d'installation
La valeur par défaut est l'anglais . L'autre option est français .
b. Message de bienvenue
Suivez attentivement les recommandations données dans cette étape.
c. Accord de licence
Il est important que vous acceptez la licence publique OpenERP (OEPL) Version 1.1 de procéder
à l'installation. Cette licence est basé sur la Mozilla Public Licence (MPL) Version 1.1.
d. Sélectionner un dossier pour l'installation
19
Par défaut, OpenERP Web est installé dans C:  Program Files  OpenERP 6.0 
Web .Pour installer dans un dossier différent, recherchez un emplacement différent (de dossier) à
cette étape.
e. Créer des raccourcis
Sélectionnez un dossier dans le Démarrer menu dans lequel vous souhaitez créer les raccourcis
du programme.
f. Installer
L'installation automatique de OpenERP Web commence et vous pouvez visualiser ses progrès.
g. Finition
Lors de l'installation réussie de OpenERP Web, vous obtiendrez une confirmation
appropriée. Cliquez sur Terminer pour fermer l'assistant d'installation.
Le service Windows pour OpenERP Web Server est également installé et est configuré pour démarrer
automatiquement le serveur au démarrage du système.
 Démarrage du client Web
Le serveur Web en cours d'initialisation et les réglages enregistré, vous pouvez démarrer le client
OpenERP Web.
Utilisez un navigateur Web de votre choix pour vous connecter à OpenERP Web. Si votre client Web est
installé sur le même ordinateur que le serveur, vous pouvez naviguer vers http: // localhost: 8069
pour se connecter à la version web d'OpenERP. Si le serveur est installé sur un ordinateur séparé, vous
devez connaître le nom ou l'adresse IP du serveur sur le réseau et accédez à
http: / / <adresse_serveur>: 8069 pour se connecter à OpenERP.
20
Client Web au démarrage
C- Installation OpenERP 7.0 sur Linux (Ubuntu 14.04 LTS) :
1- Construire votre serveur :
On va installer juste le strict minimum de la routine d'installation (vous pouvez installer le openssh-server au
cours de la procédure d'installation ou installer la suite en fonction de vos besoins).
Après le redémarrage du serveur pour la première fois je installer le openssh-server paquet (afin que nous
puissions connecter à distance) et denyhosts pour ajouter un degré de protection attaque par force
brute. Il existe d'autres applications de protection disponibles: Je ne dis pas que celui-ci est le meilleur, mais il
est celui qui fonctionne et est facile à configurer et à gérer. Si vous ne le faites pas déjà, il est aussi intéressant
de regarder la mise en place de l'accès ssh à base de clés, plutôt que de compter sur les mots de passe. Cela
peut aussi aider à limiter le potentiel d'attaques par force brute. [NB: Ceci est pas un How To sur la
sécurisation de votre serveur ...]
sudo apt-get install denyhosts openssh-server
Maintenant, assurez-vous que votre serveur dispose de toutes les dernières versions et correctifs en faisant
une mise à jour:
sudo apt-get update
sudo apt-get dist-upgrade
Bien que pas toujours indispensable, il est probablement une bonne idée de redémarrer votre serveur
maintenant et assurez-vous que tout revient et vous pouvez vous connecter via ssh.
Maintenant, nous sommes prêts à commencer l'installation OpenERP.
21
2-Créer l'utilisateur OpenERP qui sera le propriétaire :
sudo adduser --system --home = / opt / openerp --group openerp
Ceci est un "système" utilisateur. Il est là pour posséder et exécuter l'application, il est pas censé être un
utilisateur de type personne avec un login etc. Dans Ubuntu, un utilisateur du système reçoit un UID en
dessous de 1000, n'a pas d'enveloppe (il est en fait / bin / false ) et a logins désactivé. Notez que je l'ai précisé
un «foyer» de / opt / OpenERP , ceci est où le code du serveur OpenERP va résider et est créé
automatiquement par la commande ci-dessus. L'emplacement du code du serveur est votre choix de cours,
mais sachez que certaines des instructions et des fichiers de configuration ci-dessous peut-être besoin d'être
modifié si vous décidez d'installer à un autre endroit.
[Note: Si vous voulez exécuter plusieurs versions d'OpenERP sur le même serveur, la façon dont je fais est de
créer plusieurs utilisateurs avec le numéro de version correcte, car une partie du nom, par exemple openerp70,
openerp61 etc. Si vous utilisez également quand créer les utilisateurs Postgres aussi, vous pouvez avoir une
séparation complète des systèmes sur le même serveur. Je l'utilise aussi les répertoires nommés de façon
similaire à la maison, par exemple, / opt / openerp70, / opt / openerp61 et config et les fichiers de démarrage /
arrêt. Vous aurez également besoin de configurer des ports différents pour chaque instance ou bien seule la
première sera commencer.]
Une question m'a demandé quelques fois est de savoir comment exécuter le serveur OpenERP que l'utilisateur
du système d'OpenERP depuis la ligne de commande si elle n'a pas de coquille. Cela peut se faire assez
facilement:
sudo su - -s OpenERP / bin / bash
Ce sera su de votre terminal connexion actuelle à l'utilisateur d'OpenERP (le « - »entre su et OpenERP est
correcte) et utiliser le shell / bin / bash . Lorsque cette commande est exécutée, vous serez dans le répertoire
d'accueil de OpenERP: / opt / OpenERP .
Lorsque vous avez fait ce que vous avez besoin, vous pouvez quitter le shell de l'utilisateur de OpenERP en
tapant exit .
3- Installer et configurer le serveur de base de données, PostgreSQL
sudo apt-get install postgresql
Puis configurer l'utilisateur OpenERP sur postgres:
Premier changement pour l'utilisateur postgres si nous avons les privilèges nécessaires pour configurer la base
de données.
sudo su - postgres
Maintenant, créez un nouvel utilisateur de base de données. Il en est ainsi OpenERP a des droits d'accès pour
se connecter à PostgreSQL et de créer et supprimer des bases de données. Rappelez-vous ce que votre choix
de mot de passe est ici; vous en aurez besoin plus tard:
createuser --createdb --username-CREATEROLE --no postgres --no-super --pwprompt openerp
Entrez le mot de passe pour le nouveau rôle: ********
Entrez à nouveau: ********
22
Enfin la sortie du compte de l'utilisateur postgres:
Sortie
4- Installez les bibliothèques Python nécessaires pour le serveur
sudo apt-get install python-dateutil python-docutils python-feedparser python-gdata 
python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-maquette python-openid 
python-psycopg2 python-psutil python-pybabel python -pychart python-pydot python-pyparsing 
python-reportlab python-simplejson python-tz python-unittest2 python-vatnumber python-vobject 
python-webdav python-werkzeug python-xlwt python-yaml python-zsi
Avec ce fait, toutes les dépendances pour l'installation OpenERP 7.0 sont maintenant satisfaits (noter qu'il ya
des nouveaux packages nécessaires depuis 6.1).
5- Installez le serveur d'OpenERP
Je tends à utiliser wget pour ce genre de chose et je télécharge les fichiers de mon répertoire.
Assurez-vous que vous obtenez la dernière version de l'application: au moment de la rédaction de ce qu'il est
7.0. Je suis les liens de téléchargement à partir de leurs pages de téléchargement (noter qu'il ya
également deb , rpm et exe construit dans ce domaine aussi). Il n'y a pas une version 7.0 en tant que telle
archive statique plus, mais il ya une nightly build de l'arbre 7,0 source qui devrait être tout aussi bon et qui
contiendra les correctifs comme et quand les choses se fixe. Le lien ci-dessous est à l'archive source pour la
branche 7.0.
Remarque: Comme une méthode alternative d'obtenir le code sur votre serveur, Jérôme a ajouté un
commentaire très utile montrant comment l'obtenir directement de bord. Merci!
wget http://nightly.openerp.com/7.0/nightly/src/openerp-7.0-latest.tar.gz
Maintenant, installez le code où nous en avons besoin: cd à la / opt / openerp / répertoire et extraire l'archive
cd / opt / openerp
sudo tar xvf ~ / openerp-7,0-latest.tar.gz
Ensuite, nous devons changer la propriété de tous les fichiers à l'utilisateur d'OpenERP et le groupe que nous
avons créé plus tôt.
sudo chown -R openerp *
Et enfin, la façon dont je l'ai fait est de copier le répertoire du serveur à quelque chose avec un nom plus
simple afin que les fichiers de configuration et les scripts de démarrage ne doivent édition constant (je l'ai
appelé, plutôt platement, serveur). Je commencé en utilisant une solution de lien symbolique, mais je trouve
que quand il vient à la mise à niveau, il semble faire plus de sens pour moi de simplement conserver une copie
des fichiers en place, puis les écraser avec le nouveau code. De cette façon vous garder toute coutume ou des
modules et des rapports installés par l'utilisateur, etc. tous dans le bon endroit.
sudo cp -a openerp-server 7.0
A titre d'exemple, devrait OpenERP 7.0.1 sortir bientôt, je peux extraire les archives tar dans / opt / openerp /
comme ci-dessus. Je peux faire tous les essais que je dois, puis répétez la commande de copie de sorte que les
fichiers modifiés seront remplacer selon les besoins et tous les modules personnalisés, des modèles de rapport
23
et ne sera conservé. Après avoir vérifié la mise à niveau est stable, les 7.0 répertoires anciens peuvent être
enlevés si désiré.
Voilà le logiciel serveur installé OpenERP. Les dernières étapes d'un système de travail est de mettre en place
le fichier de configuration et de script de démarrage associé afin OpenERP démarre et arrête
automatiquement lorsque le serveur lui-même arrête et démarre.
6- Configuration de l'application OpenERP
Le fichier de configuration par défaut pour le serveur (dans / opt / openerp / serveur / install / ) est en fait très
minime et sera, avec seulement un petit travail de changement bien donc nous allons simplement copier ce
fichier là où nous en avons besoin et de le changer est la propriété et les autorisations:
sudo cp /opt/openerp/server/install/openerp-server.conf / etc /
sudo chown OpenERP: /etc/openerp-server.conf
sudo chmod 640 /etc/openerp-server.conf
Les commandes précédentes rendent le fichier détenue et écriture que par l'utilisateur et le groupe
d'OpenERP et seulement lisibles par OpenERP et la racine.
Pour permettre au serveur de OpenERP pour exécuter d'abord, vous ne devriez avoir besoin de changer une
ligne dans ce fichier. Vers le haut du fichier changer la ligne db_password = False au même mot de passe que
vous avez utilisé de retour à l'étape 3. Utilisez votre éditeur de texte favori ici. Je tends à utiliser nano, par
exemple,
sudo nano /etc/openerp-server.conf
Une autre ligne, nous pourrions aussi bien ajouter au fichier de configuration maintenant, est de dire OpenERP
où écrire son fichier journal.Pour compléter mon endroit proposé ci-dessous, ajoutez la ligne suivante à
la openerp-server.conf fichier:
logfile = /var/log/openerp/openerp-server.log
Une fois le fichier de configuration est modifié et enregistré, vous pouvez démarrer le serveur juste pour
vérifier si elle fonctionne effectivement.
sudo su - -s OpenERP / bin / bash
/ opt / openerp / serveur / openerp-server
Si vous vous retrouvez avec quelques lignes éventuellement disant OpenERP est en marche et d'attente pour
les connexions alors vous êtes tous ensemble.
7- Installation du script de démarrage
Pour l'étape finale, nous devons installer un script qui sera utilisé pour le démarrage et arrêter le serveur
automatiquement et également exécuter l'application que l'utilisateur correct. Il ya un script que vous pouvez
utiliser dans /opt/openerp/server/install/openerp-server.init mais cette aurez besoin de quelques petites
modifications pour fonctionner avec le système installé la façon dont je l'ai décrit ci-dessus. Voici un lien à
celui que je 'ai déjà modifié pour 7,0.
24
Similaire au fichier de configuration, vous devez soit copier ou coller le contenu de ce script dans un fichier
dans /etc/init.d/ et l'appeleropenerp-server . Une fois qu'il est à la bonne place, vous aurez besoin de le
rendre exécutable et appartenant à root:
755 /etc/init.d/openerp-server de sudo
sudo chown root: /etc/init.d/openerp-server
Dans le fichier de configuration, il ya une entrée pour le fichier de log du serveur. Nous devons créer ce
répertoire d'abord pour que le serveur a un endroit pour se connecter à et aussi nous doit rendre accessible en
écriture par l'utilisateur OpenERP:
/ var sudo / log / openerp
sudo chown OpenERP: root / var / log / openerp
8-Test du serveur
Pour démarrer le type de serveur OpenERP:
sudo début
Vous devriez maintenant être en mesure d'afficher le fichier journal et de voir que le serveur a démarré.
moins /var/log/openerp/openerp-server.log
Si il ya des problèmes à partir du serveur, vous devez revenir en arrière et vérifier. Il n'y a vraiment pas de
point sur le labour si le serveur ne démarre pas ...
OpenERP écran de gestion de base de données 7
Si le fichier journal semble OK, maintenant pointer votre navigateur web à l'adresse de domaine ou l'adresse IP
de votre serveur OpenERP (ou localhost si vous êtes sur la même machine) et utilisez le port 8069. L'URL
ressemblera à quelque chose comme ceci:
http://IP_or_domain.com:8069
Ce que vous devriez voir un écran comme celui-ci (il est l'écran de gestion de base de données parce que vous
avez pas encore de bases de données de OpenERP):
Ce que je ne vous recommande de faire à ce stade est de changer le mot de passe de super-admin à quelque
chose belle et forte (Cliquez sur le menu "Mot de passe"). Par défaut, ce mot de passe est tout simplement
"admin" et sachant que, un utilisateur peut créer, sauvegarder, de restaurer et de déposer les bases de
données! Ce mot de passe est stocké dans le texte brut dans le /etc/openerp-server.conffichier; donc pourquoi
25
nous avons limité l'accès à tout openerp et la racine . Lorsque vous modifiez et enregistrez le nouveau mot de
passe/etc/openerp-server.conf fichier sera réécrit et aurez beaucoup plus d'options en elle.
Maintenant il est temps pour vous assurer que le serveur arrête bien trop:
sudo arrêt
Vérifiez à nouveau le fichier journal pour vous assurer qu'il est arrêté et / ou de regarder la liste des processus
de votre serveur.
9- Automatisation OpenERP démarrage et d'arrêt
Si tout ce qui précède semble fonctionner OK, l'étape finale est de faire le début de script et arrête
automatiquement avec le serveur Ubuntu. Pour faire ce type:
sudo update-rc.d défaut openerp-serveur
Vous pouvez maintenant essayer vous de redémarrer le serveur si vous le souhaitez. OpenERP doit être
exécuté par le temps que vous vous connectez avant.
Si vous tapez ps aux | grep openerp vous devriez voir une ligne semblable à ceci:
openerp 1491 0,1 10,6 207 132 53 596? Sl 22h23 00h02 python / opt / openerp / serveur / openerp-server -c
/etc/openerp-server.conf
Ce qui montre que le serveur est en cours d'exécution. Et bien sûr, vous pouvez vérifier le fichier journal ou
visitez le serveur à partir de votre navigateur web trop.
OpenERP 7.0 Ecran principal de configuration
26
D- OpenERP : Windows vs Linux ? : (Vue Générale)
La documentation officielle ne met pas en jeu une grande différence entre les performances sur
Windows ou sur Linux, en revanche la communauté de l’Odoo7 valorise bien l’implémentation linux
plutôt que Windows pour des raisons de stabilité de rapidité. Ceci est dû à plusieurs raisons tel que le
besoin a un haut niveau de compilation de dépendances sur Windows pour assurer une performance
proche de celle sur linux
Mai sur le plan théorique on pourrait mettre en œuvre la comparaison entre les 2 systèmes selon
plusieurs critères :
Windows (7 ou 8) Linux (Debian/Ubuntu)
Temps de Téléchargement moyen petit
Temps d’installation moyen petit
Configuration Automatique (standard) Manuelle (plus maitrisée)
Niveau Paramétrage Standard Elevé (tout est commandé)
Dépendances Elevé (compilation
répétitive de paquets
dépendants)
Réduit (tous les paquets sont
compilés dès l’installation)
Rapidité normale bonne
Sécurité Minimale Haute
Stabilité Normale Assez bien
Privilèges (droits d’accès) Standard Privilège
Conflit matériel Possible (port) Résolu dès l’installation
Possibilité de réglages dès
l’installation
Utilisation graphique Graphique ou ligne de commande
Methodes de réglages Manuelle Manuelle ou
Par ligne de commandes
Windows VS LINUX 4 – 8 (Linux)
27
Quelques avis de la communauté : (expériences de déploiement) :
28
E- Audit sur les performances OpenERP Sifast :
1- Constatation :
La plateforme OpenERP Sifast est une plateforme de gestion d’équipes, projets, RH, finances …
installée sous Windows.
Après la manipulation de la plateforme sur un VM de tests, dès limites de performances ont été
remarqués :
 Lourdeur partielle de la plateforme lors du passage entre les volets des modules Projet Rh
spécialement
(Ce sont les modules qui mettent recours aux données PostgreSQL via l’ORM)
 Surcharge base
 Retard de chargement Graphique des différents vues (parsing XML) , et par conséquent retard
de chargement des actions (boutons ) & diffusion des messages d’erreur lors des clicks
rapides avant chargement complet de la page demandée
 Problème de mapping Xml-rpc & xml-rpc Secure relativement aux paquets pythons
de liaisons actions- vue (contrôleur + view)
 Problème dépendances Windows –Python (retard de compilations des paquets)
 Parmi les inconvénients du déploiement sur Windows
 Lourdeur excessive de l’utilisation de toute la plateforme lors des moments de pointe (temps
de fin de journée ou les ingénieurs de différentes équipes viennent de déposer des données
relatives à leur avancement (problème accès concurrentiel)
 * Origines des problèmes (surcharge sur la base : mauvaise implémentation du
PostgreSQL sur Windows et manque de dépendances python assurant la fiabilité de
l’ORM à optimiser le dialogue User – Base)
* Serveur d’application werkzeug , serveur dédié aux petites et aux moyennes
implémentations , d’après la documentation officielle et les avis communauté ; le
nombre max d’intégration d’utilisateurs pour un bon fonctionnement de la
plateforme varie entre 120 et 180 user , des statistiques d’utilisations indiquent qu’a
partir 40 user connectés simultanément sur un même volet (exemple : pointage) , les
doutes de rapidité commencent à apparaitre , et une lourdeur de la plateforme se
met en jeu bue la quasi-faiblesse du serveur d’application
 Faiblesse du système contre les attaques ; la plateforme a intégré des failles de sécurité qui
ont engendré la réussite de tentatives de piratage à avoir accès aux données de la plateforme
29
 Manque de control et non perméabilité Windows (port ouverts, unicité des mots de
passés, non différenciation entre les comptes user (user , super user , openerp user ,
PostgreSQL user)
2-Techniques / Astuces d’optimisation de Performances &
Mise en comparaison d’efficacité de réalisation Windows
vs Linux :
2-1 – OPTIMISATION SUR SERVEUR :
Pour ce faire il faut tout d’abord accéder en écriture sur le fichier de config serveur présent dans
le répertoire d’installation de l’OpenERP
NB : On pourrait accéder via « -c » command si on est sur une plateforme Linux
./server/openerp-server -c /path/to/openerp-server.conf
On listera ainsi les différentes lignes de ce fichier tout en recommandant les changements
bénéfiques pour une meilleure performance par des commentaires
# GRIS : fonctionnalités de la ligne
# VIOLET : Propositions
 Options de démarrage serveur (Startup) :
# Admin password for creating, restoring and backing up databases
admin_passwd = admin
# default CSV separator for import and export
csv_internal_sep = ,
# to compress reports
# PROPOSITION : On pourrait utilizer l’option “True” pour compresser les rapports
reportgz = False
30
# disable loading demo data for modules to be installed (comma-separated, use "all" for all
modules)
# PROPOSITION : Utiliser l’option « True » qui annulera l’affichage des demo d’utilisation des
modules
without_demo = False
# Use this for big data importation, if it crashes you will be able to continue at the current
state. Provide a filename to store intermediate importation states.
# PROPOSITION & RECOMMANDATION : l’import de données pourrait engendrer un crash brusque de la
plateforme ; cette option recommande de donner un nom à la partie de données partiellement
importés pour éviter d’abandonner l’état actuel et et assure la continuité d’après crash .
-> laisser cette option –sans nom- désactive cette option, d’où c’est fort recommandé de
l’activer par donner un nom. Ex : import_partial = partial
import_partial =
# file where the server “PID” will be stored
# PROPOSITION : sur une éventuelle plateforme Linux, cette option stockera le PID du serveur
OpenERP dans un fichier qu’on indiquera son nom et son chemin, cette option semble être utile si
le serveur local supporte différents plateformes d’accès en concurrence, d’où indiquer le PID
(priorité) améliorera la performance du serveur OpenERP en lui affectant une priorité
supérieures
pidfile = None
# specify additional addons paths (separated by commas)
# PROPOSITION : On pourrait utiliser deux dossiers addons ou +, ceci paraitra bénéfique si on
utilise un dossier supplémentaires pour les modules manuellement développés.
Différents critères de choix : modules originales/développés, modules lourds (fort surcharge sur
la base de données), modules confidentiels, non testés, pour les utilisations peu fréquentes…
Ceci pourrait donner une vitesse supplémentaire à toute la plateforme surtout lors du démarrage
addons_path = /full/path/to/addons
31
# Comma-separated list of server-wide modules default=web
server_wide_modules = None
 Options XML-RPC / HTTP – XML-RPC
(Déconseillé d’être activé)
# disable the XML-RPC protocol
xmlrpc = True
# Specify the TCP IP address for the XML-RPC protocol. The empty string binds to all interfaces.
xmlrpc_interface =
# specify the TCP port for the XML-RPC protocol
# PROPOSITION : utiliser un autre port outre que 8069 favorise la sercuritè
xmlrpc_port = 8069
# Enable correct behavior when behind a reverse proxy
proxy_mode = False
 Options XML-RPC / HTTPS – XML-RPC Secure
(fortement recommandé – SSL connexion)
# disable the XML-RPC Secure protocol
xmlrpcs = True
# Specify the TCP IP address for the XML-RPC Secure protocol. The empty string binds to all
interfaces.
xmlrpcs_interface =
32
# specify the TCP port for the XML-RPC Secure protocol
# PROPOSITION : utiliser un autre port outre que 8069 (usuel) et 8071 (ssl) favorise de + la
sécurité de la plateforme
xmlrpcs_port = 8071
# specify the certificate file for the SSL connection
secure_cert_file = server.cert
# specify the private key file for the SSL connection
secure_pkey_file = server.pkey
 NET-RPC – NET-RPC Configuration
# enable the NETRPC protocol
netrpc = False
# specify the TCP IP address for the NETRPC protocol
netrpc_interface =
# specify the TCP port for the NETRPC protocol
33
# PROPOSITION : utiliser un autre port outre que 8070 connu pour ce type de chargement favorise
la sécurité
netrpc_port = 8070
 WEB – Web interface Configuration
# Filter listed database REGEXP
# PROPOSITION : introduire un (ou +) filtre de parcours de BD (ex : name , date , size…)
dbfilter = .*
 Static HTTP – Static HTTP
# enable static HTTP service for serving plain HTML files
# PROPOSITION : Dans le cas de la présence de modules qui présentent un chargement de pages HTML
Statique, activer cette option favorise la perméabilité du serveur à les traiter
static_http_enable = False
# specify the directory containing your static HTML files (e.g '/var/www/')
static_http_document_root = None
# specify the URL root prefix where you want web browsers to access your static HTML files (e.g '/')
static_http_url_prefix = None
34
 Options de Tests:
# Launch a YML test file.
test_file = False
# If set, will save sample of all reports in this directory.
# PROPOSITION : faudra mieux de spécifier un dossier pour les rapports de tests , l’option false
mettra les rapports dans la cache de la plateforme en forme de cookies sur navigateur ou de
mémoire vive (ralentissement prèvue)
test_report_directory = False
# Enable YAML and unit tests.
test_enable = False
# Commit database changes performed by YAML or XML tests.
test_commit = False
 Logging Group – Logging Configuration
# file where the server log will be stored
logfile = None
# do not rotate the logfile
logrotate = True
35
# Send the log to the syslog server
syslog = False
# setup a handler at LEVEL for a given PREFIX. An empty PREFIX indicates the root logger. This
option can be repeated. Example: "openerp.orm:DEBUG" or "werkzeug:CRITICAL" (default: ":INFO")
# PROPOSITION :indiquer des préfixes , indiquera les origines d’erreur
log_handler = [':INFO']
# specify the level of the logging. Accepted values: info, debug_rpc, warn, test, critical,
debug_sql, error, debug, debug_rpc_answer, notset
log_level = info
 SMTP Group – SMTP Configuration
# specify the SMTP email address for sending email
email_from = False
# specify the SMTP server for sending email
smtp_server = localhost
# specify the SMTP port
# PROPOSITION :changer ce port (meilleure sécurisation)
smtp_port = 25
# specify the SMTP server support SSL or not
36
# PROPOSITION :un connexion ssl est désormais conseillèe
smtp_ssl = False
# specify the SMTP username for sending email
smtp_user = False
# specify the SMTP password for sending email
smtp_password = False
 Database related options
# specify the database name
db_name = False
# specify the database user name
db_user = openerp
# specify the database password
db_password = False
# specify the “pg” executable path
pg_path = None
37
# specify the database host
db_host = False
# specify the database port
db_port = False
# specify the the maximum number of physical connections to posgresql
# PROPOSITION :on pourrait augmenter le nombre de connexions physiques au serveur Postgres , ce
qui est deconseillè
db_maxconn = 64
# specify a custom database template to create a new database
db_template = template1
 Options d’internationalisation
# PROPOSITION : indiquer les modules qu’on a besoin d’en obtenir une certaine traduction , ceci
diminue de la lourdeur du chargement des modules
translate_modules = ['all']
 Options de sécurisation:
# disable the ability to return the list of databases
# PROPOSITION : assurer la protection de la base en désactivant cette option
list_db = True
 Options Avancèes:
38
# enable debug mode
debug_mode = False
# specify reference timezone for the server (e.g. Europe/Brussels")
timezone = False
# Force a limit on the maximum number of records kept in the virtual osv_memory tables. The
default is False, which means no count-based limit.
# PROPOSITION : s’assurer d’activer la non-limitation du nombre
osv_memory_count_limit = False
# Force a limit on the maximum age of records kept in the virtual osv_memory tables. This is a
decimal value expressed in hours, and the default is 1 hour.
osv_memory_age_limit = 1.0
# Maximum number of threads processing concurrently cron jobs (default 2)
# PROPOSITION : cette option traite la chronologie des différents threads, l’option « 2 »
précise que le système d’exploitation traite 2 threads d’une façon périodique afin de nettoyer
un job après sa terminaison
Le nombre conseillé c’est 2, 4 est aussi conseillé sauf que ça ralentisse l’exécution mais
favorise le traitement (moindre chance de crash)
NB : c’est une option supportée uniquement pour les environnements Unix
max_cron_threads = 2
# Use the unaccent function provided by the database when available.
unaccent = False
39
 Multiprocessing options
# Specify the number of workers, 0 disable prefork mode.
# PROPOSITION : le prefork mode associe un nombre de threads (requests) dans un seul process ,
ceci engendre une réduction de consommation CPU mai une besoin élevé sur ressources (RAM)
VOIR L’EXPLICATION SUIVANTE
workers = 0
# Maximum allowed virtual memory per worker, when reached the worker be reset after the current
request (default 671088640 aka 640MB)
# PROPOSITION :les options suivants sont des options de spécification mémoire / temps , les
valeurs sont par défaut , mais augmenter les tailles pourrait donner + d’agilité à a plateforme
limit_memory_soft = 671088640
# Maximum allowed virtual memory per worker, when reached, any memory allocation will fail
(default 805306368 aka 768MB)
limit_memory_hard = 805306368
# Maximum allowed CPU time per request (default 60)
limit_time_cpu = 60
# Maximum allowed Real time per request (default 120)
limit_time_real = 120
# Maximum number of request to be processed per worker (default 8192)
limit_request = 8192
Difference Worker/Prefork:
40
Exemple : un nombre de process , chaque process necessite 1% cpu et 10mb de RAM.
/---------
| Prefork | -------- > Request --- 1% CPU - 10 MB RAM
________/
/---------
| Prefork | -------- > Request --- 1% CPU - 10 MB RAM
________/
/---------
| Prefork | -------- > Request --- 1% CPU - 10 MB RAM
________/
/---------
| Prefork | -------- > Request --- 1% CPU - 10 MB RAM
________/
-> en somme on a 4 process qui utilisent 4% CPU et 40MB de RAM.
Nous allons utiliser des chiffres similaires ici, mais on se permet de supposer que le prefork a un
peu plus de ressources que le modèle de processus par processus.
/-------------
| Worker MPM | ----------> Request 
| Worker MPM | ----------> Request |
| Worker MPM | ----------> Request |
| Worker MPM | ----------> Request /
____________/
 Tout ça utilisent 2% CPU et 25 MB ram.
2-2 – Mesure & Analyse de Performances (Techniques de mesures) :
 Surveiller les temps de réponse de la Plateforme :
 Vous ne pouvez pas gérer / améliorer ce que vous ne pouvez pas mesurer
 Solution : Configurer une surveillance automatisée de la performance
et le temps de réponse ... même si vous avez pas problème de performance.
 Outil proposé : munin
 Comment ? : Exécutez OpenERP avec l’option (Linux)
-log-level = debug_rpc (en prod)
41
42
 Analyse / Mesure des performances PostgreSQL :
Reglages sur postgresql.conf :
log_min_duration_statement = 50
Réglez à 50 ou 100 dans prod
Mettre à « 0 » pour connecter toutes les requêtes et les temps d'exécutions pour un certain temps
Analyse avec pgBadger ou pgFouine :
(fortement recommandè d’installer sous Linux)
D’où une simple mise en analyse (logs) avec cette outil donne un certain
nombre de mesures , on en cite :
43
 Cependant on pourrait executer un certain nombre de script SQL afin de determiner les
tailles des tables selon la longuer , la grandeur , frequence de lecture , frequence de
modification… d’où l’optimisation pourrait se faire sur la base elle-même , et on a interet
ainsi , à combiner ou enlevr les tables quasiment non utilisès , decomposer /fragmenter
les tables a grades tailles/contenus pour une moindre surcharge , ce qui pourrait
optimiser le dialoguer OpenERP – POSTGRESQL et par consequent toue la plateforme
44
45
 Utilitaire de surveillance en ligne de commande des
requêtes en cours, bloquées et en attente
46
3-Problèmes Reconnus : PostgreSQL
 Problèmes des Fonctions stockées :
 Domaines fonctionnels stockés sont des « Trigger »
 Store trigger peuvent être de la forme :
 Peut être très coûteux avec des paramètres erronés ou des fonctions lentes
 Problèmes des Lentes Requêtes :
Toutes les requêtes SQL 500ms + doivent être analysés
 Utilisez EXPLAIN ANALYZE pour examiner / vous mesurer les requêtes et
les vues SQL
 Essayez d'enlever les parties de la requête jusqu'à ce qu'elle soit rapide,
puis la fixer
 Vérifier la cardinalités des grande « JOINs »
47
 Stratégie d'évaluation de domaine par défaut :
search ([('picking_id.move_ids.partner_id', '! =', False)])
Mise en œuvre en combinant les parties "id IN (....)"
 Jeter un oeil à _auto_join dans OpenERP 7.0
'move_ids': fields.one2many ('stock.move', 'picking_id',
string = 'Moves », _auto_join = True)
 Aucune optimisation prématurée: ne pas écrire SQL,
utiliser l'ORM toujours au cours du développement initial
 Si vous détectez un point chaud avec charge-tests, pensez à réécrire les
parties inefficaces dans SQL tout en s’assurant de :
Faire des mécanismes de sécurité que vous n'êtes pas en contournant
Ne pas créer SQL vecteurs d'injection utilisent des paramètres de la requête, →
ne pas concaténer entrée de l'utilisateur dans vos chaînes SQL.
 Problèmes des verrouillages personnalisés :
 Toute sorte de mécanisme de verrouillage manule / files d'attente est
dangereuses, surtout en Python
 « Python Locks » peuvent provoquer des impasses qui ne peuvent être
détectés et brisés par le système
 Éviter, et si vous devez, utiliser la base de données « lock »
Voilà ce que devrait emplois (ir.cron) faire:
SELECT FOR UPDATE sur la ligne de travaux de cron
→ Le nettoyage automatique / presse
→ Balances bien et fonctionne en multi-processus
48
4-Recommandations & Conclusions :
 Maitriser le framework :
 Évitez les anti-modèles (Patterns) :
Assurez-vous que vous comprenez vraiment le mecanisme browse()
Assurez-vous d'utiliser correctement l'API de lot
 Ne pas écrire SQL sauf si vous devez, ex : pour:
Vues d'analyse,Fonctions de Hot Spot, name_search (), computed_fields (), ...
49
50
 Installer & Utiliser les outils de Mesures de performances :
La plupart des outils de mesures/tests déjà cités sont des packages Linux
 Préférable d’installer toutes la plateforme sur un environnement Linux
 Optimisation de l’utilisation serveur / Base :
 En préciser les différents options de réglages déjà cité selon le besoin et
l’utilisation
 Environnement Linux beaucoup mieux conseillé
 Conseil à propos le déploiement du PostgreSQL
 Évitez déploiement PostgreSQL sur une machine virtuelle
Si vous devez le faire, d'affiner le VM pour I / O!
 Et toujours vérifier l'optimisation des performances de base de données
PostgreSQL, elle est conservatrice par défaut

Contenu connexe

Tendances

AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIRomain Cambien
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...Romain Cambien
 
Intégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIIntégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIHugo Hamon
 
T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3sitengo
 
Apache for développeurs PHP
Apache for développeurs PHPApache for développeurs PHP
Apache for développeurs PHPjulien pauli
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2Hugo Hamon
 
Bonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPBonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPPascal MARTIN
 
l'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectl'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectFlorent DENIS
 
Quelques solutions ERP Open Source et prestataires en Aquitaine
Quelques solutions ERP Open Source et prestataires en AquitaineQuelques solutions ERP Open Source et prestataires en Aquitaine
Quelques solutions ERP Open Source et prestataires en Aquitaineechangeurba
 
20111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v120111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v1Gilles Guirand
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsHugo Hamon
 
Introduction à CakePHP
Introduction à CakePHPIntroduction à CakePHP
Introduction à CakePHPPierre MARTIN
 
CRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - QuickieCRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - QuickieArnaud Héritier
 
F Les Scripts En Power Shell
F Les Scripts En Power ShellF Les Scripts En Power Shell
F Les Scripts En Power ShellUGAIA
 
Comment écrire du code testable ?
Comment écrire du code testable ?Comment écrire du code testable ?
Comment écrire du code testable ?Fou Cha
 
Laravel yet another framework
Laravel  yet another frameworkLaravel  yet another framework
Laravel yet another frameworkLAHAXE Arnaud
 
Powershell
PowershellPowershell
PowershellUGAIA
 
Installation et configuration d'openbravo
Installation et configuration d'openbravoInstallation et configuration d'openbravo
Installation et configuration d'openbravoSoumia Brabije
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec OdooHassan WAHSISS
 

Tendances (20)

AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...
 
Intégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIIntégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CI
 
T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3
 
Apache for développeurs PHP
Apache for développeurs PHPApache for développeurs PHP
Apache for développeurs PHP
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2
 
Bonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPBonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHP
 
l'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectl'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnect
 
Quelques solutions ERP Open Source et prestataires en Aquitaine
Quelques solutions ERP Open Source et prestataires en AquitaineQuelques solutions ERP Open Source et prestataires en Aquitaine
Quelques solutions ERP Open Source et prestataires en Aquitaine
 
Puppet slides
Puppet slidesPuppet slides
Puppet slides
 
20111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v120111006 bonnes pratiques-gi_g_v1
20111006 bonnes pratiques-gi_g_v1
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec Jenkins
 
Introduction à CakePHP
Introduction à CakePHPIntroduction à CakePHP
Introduction à CakePHP
 
CRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - QuickieCRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - Quickie
 
F Les Scripts En Power Shell
F Les Scripts En Power ShellF Les Scripts En Power Shell
F Les Scripts En Power Shell
 
Comment écrire du code testable ?
Comment écrire du code testable ?Comment écrire du code testable ?
Comment écrire du code testable ?
 
Laravel yet another framework
Laravel  yet another frameworkLaravel  yet another framework
Laravel yet another framework
 
Powershell
PowershellPowershell
Powershell
 
Installation et configuration d'openbravo
Installation et configuration d'openbravoInstallation et configuration d'openbravo
Installation et configuration d'openbravo
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec Odoo
 

En vedette

Manuel pour le module d'exportation des données comptables d'OpenERP vers Sag...
Manuel pour le module d'exportation des données comptables d'OpenERP vers Sag...Manuel pour le module d'exportation des données comptables d'OpenERP vers Sag...
Manuel pour le module d'exportation des données comptables d'OpenERP vers Sag...Gestion-Ressources Inc.
 
Conception du système de gestion informatise de l
Conception du système de gestion informatise de lConception du système de gestion informatise de l
Conception du système de gestion informatise de lSammy Fabri Fibra
 
Manuel du module Marketing d'OpenERP produit par Gestion-Ressources
Manuel du module Marketing d'OpenERP produit par Gestion-RessourcesManuel du module Marketing d'OpenERP produit par Gestion-Ressources
Manuel du module Marketing d'OpenERP produit par Gestion-RessourcesGestion-Ressources Inc.
 
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Abdelouahed Abdou
 
Presentation d'un logiciel de GRH
Presentation d'un logiciel de GRHPresentation d'un logiciel de GRH
Presentation d'un logiciel de GRHRiadh K.
 
Improving the performance of Odoo deployments
Improving the performance of Odoo deploymentsImproving the performance of Odoo deployments
Improving the performance of Odoo deploymentsOdoo
 
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1Addi Ait-Mlouk
 
Evolutions des compétences des professionnels de l'information
Evolutions des compétences des professionnels de l'informationEvolutions des compétences des professionnels de l'information
Evolutions des compétences des professionnels de l'informationADBS
 
Rencontre avec les propriétaires de locations meublées et de chambres d'hôtes
Rencontre avec les propriétaires de locations meublées et de chambres d'hôtesRencontre avec les propriétaires de locations meublées et de chambres d'hôtes
Rencontre avec les propriétaires de locations meublées et de chambres d'hôtesMorgane Conseil
 
Proyecto final de TIC,s Parcial 3
Proyecto final de TIC,s Parcial 3Proyecto final de TIC,s Parcial 3
Proyecto final de TIC,s Parcial 3Brandon Hernandez
 
Traducción herramientas
Traducción herramientasTraducción herramientas
Traducción herramientasgioliher
 
Kounakou communication enfant
Kounakou communication enfantKounakou communication enfant
Kounakou communication enfantKounakou
 
Sistemas de numeración
Sistemas de numeraciónSistemas de numeración
Sistemas de numeraciónXaviSei
 
Deber de-referencias-de-celdas
Deber de-referencias-de-celdasDeber de-referencias-de-celdas
Deber de-referencias-de-celdasbettycarreno93
 
Informatica tics saula katy trabajo n1
Informatica tics saula katy trabajo n1Informatica tics saula katy trabajo n1
Informatica tics saula katy trabajo n1Katy Saula
 
Montreal Aeropsace april 2013 francais final ppt
Montreal  Aeropsace april 2013 francais final pptMontreal  Aeropsace april 2013 francais final ppt
Montreal Aeropsace april 2013 francais final pptEliot Norman
 
Dossier de production - Groupe n°116
Dossier de production - Groupe n°116Dossier de production - Groupe n°116
Dossier de production - Groupe n°116MarinaOcton
 

En vedette (20)

Openerp
OpenerpOpenerp
Openerp
 
Manuel pour le module d'exportation des données comptables d'OpenERP vers Sag...
Manuel pour le module d'exportation des données comptables d'OpenERP vers Sag...Manuel pour le module d'exportation des données comptables d'OpenERP vers Sag...
Manuel pour le module d'exportation des données comptables d'OpenERP vers Sag...
 
Conception du système de gestion informatise de l
Conception du système de gestion informatise de lConception du système de gestion informatise de l
Conception du système de gestion informatise de l
 
Manuel du module Marketing d'OpenERP produit par Gestion-Ressources
Manuel du module Marketing d'OpenERP produit par Gestion-RessourcesManuel du module Marketing d'OpenERP produit par Gestion-Ressources
Manuel du module Marketing d'OpenERP produit par Gestion-Ressources
 
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
 
Presentation d'un logiciel de GRH
Presentation d'un logiciel de GRHPresentation d'un logiciel de GRH
Presentation d'un logiciel de GRH
 
Improving the performance of Odoo deployments
Improving the performance of Odoo deploymentsImproving the performance of Odoo deployments
Improving the performance of Odoo deployments
 
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
 
Evolutions des compétences des professionnels de l'information
Evolutions des compétences des professionnels de l'informationEvolutions des compétences des professionnels de l'information
Evolutions des compétences des professionnels de l'information
 
Avis ce387797
Avis ce387797Avis ce387797
Avis ce387797
 
Rencontre avec les propriétaires de locations meublées et de chambres d'hôtes
Rencontre avec les propriétaires de locations meublées et de chambres d'hôtesRencontre avec les propriétaires de locations meublées et de chambres d'hôtes
Rencontre avec les propriétaires de locations meublées et de chambres d'hôtes
 
Proyecto final de TIC,s Parcial 3
Proyecto final de TIC,s Parcial 3Proyecto final de TIC,s Parcial 3
Proyecto final de TIC,s Parcial 3
 
Traducción herramientas
Traducción herramientasTraducción herramientas
Traducción herramientas
 
Semana 10
Semana 10Semana 10
Semana 10
 
Kounakou communication enfant
Kounakou communication enfantKounakou communication enfant
Kounakou communication enfant
 
Sistemas de numeración
Sistemas de numeraciónSistemas de numeración
Sistemas de numeración
 
Deber de-referencias-de-celdas
Deber de-referencias-de-celdasDeber de-referencias-de-celdas
Deber de-referencias-de-celdas
 
Informatica tics saula katy trabajo n1
Informatica tics saula katy trabajo n1Informatica tics saula katy trabajo n1
Informatica tics saula katy trabajo n1
 
Montreal Aeropsace april 2013 francais final ppt
Montreal  Aeropsace april 2013 francais final pptMontreal  Aeropsace april 2013 francais final ppt
Montreal Aeropsace april 2013 francais final ppt
 
Dossier de production - Groupe n°116
Dossier de production - Groupe n°116Dossier de production - Groupe n°116
Dossier de production - Groupe n°116
 

Similaire à Audit openERP 7.0: Mise en place &Optimisation de Performances

Open erp le reporting avec jasper reports
Open erp  le reporting avec jasper reportsOpen erp  le reporting avec jasper reports
Open erp le reporting avec jasper reportsSoukaina Boujadi
 
Système d'exploitation
Système d'exploitationSystème d'exploitation
Système d'exploitationChevy Kpetillo
 
Mdl ocsinventory 20100330-2
Mdl ocsinventory 20100330-2Mdl ocsinventory 20100330-2
Mdl ocsinventory 20100330-2tikok974
 
Diffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jourDiffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jourpprem
 
1. Prestashop - Pré-requis
1. Prestashop - Pré-requis1. Prestashop - Pré-requis
1. Prestashop - Pré-requisAgence Webup
 
Mdl ocsinventory 20100330-2
Mdl ocsinventory 20100330-2Mdl ocsinventory 20100330-2
Mdl ocsinventory 20100330-2tikok974
 
Mdl ocsinventory 20100330
Mdl ocsinventory 20100330Mdl ocsinventory 20100330
Mdl ocsinventory 20100330robertpluss
 
Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Mame Cheikh Ibra Niang
 
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...pprem
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceChristian Charreyre
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps ParisLeTesteur
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSyrine Ben aziza
 
Openshift 3 & Kubernetes
Openshift 3 & KubernetesOpenshift 3 & Kubernetes
Openshift 3 & KubernetesPerfect Memory
 

Similaire à Audit openERP 7.0: Mise en place &Optimisation de Performances (20)

Installation open erp-sous-windows1
Installation open erp-sous-windows1Installation open erp-sous-windows1
Installation open erp-sous-windows1
 
Odoo open erp
Odoo open erpOdoo open erp
Odoo open erp
 
Open erp le reporting avec jasper reports
Open erp  le reporting avec jasper reportsOpen erp  le reporting avec jasper reports
Open erp le reporting avec jasper reports
 
Système d'exploitation
Système d'exploitationSystème d'exploitation
Système d'exploitation
 
Openerp
OpenerpOpenerp
Openerp
 
Rapport tp1 j2ee
Rapport tp1 j2eeRapport tp1 j2ee
Rapport tp1 j2ee
 
Td pascal tdD
Td pascal tdDTd pascal tdD
Td pascal tdD
 
Mdl ocsinventory 20100330-2
Mdl ocsinventory 20100330-2Mdl ocsinventory 20100330-2
Mdl ocsinventory 20100330-2
 
Diffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jourDiffuser nos logiciels et leurs mises à jour
Diffuser nos logiciels et leurs mises à jour
 
1. Prestashop - Pré-requis
1. Prestashop - Pré-requis1. Prestashop - Pré-requis
1. Prestashop - Pré-requis
 
Mdl ocsinventory 20100330-2
Mdl ocsinventory 20100330-2Mdl ocsinventory 20100330-2
Mdl ocsinventory 20100330-2
 
Mdl ocsinventory 20100330
Mdl ocsinventory 20100330Mdl ocsinventory 20100330
Mdl ocsinventory 20100330
 
Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5
 
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps Paris
 
Catalogue PFE 2019
Catalogue PFE 2019Catalogue PFE 2019
Catalogue PFE 2019
 
Forum PHP 2014 day 1
Forum PHP 2014 day 1Forum PHP 2014 day 1
Forum PHP 2014 day 1
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrine
 
Openshift 3 & Kubernetes
Openshift 3 & KubernetesOpenshift 3 & Kubernetes
Openshift 3 & Kubernetes
 

Audit openERP 7.0: Mise en place &Optimisation de Performances

  • 1. 1 RAPPORT -1- : Documentation OpenERP 7.0 2015 SUJET : AUDIT & OPTIMISATION OPENERP (ODOO 7) STAGIAIRE : KOUBAA FIRAS - IIT ENCADREURS : M.AHMED KOLSI & M.MOHAMED KHARRAT
  • 2. 2 Plan 1. OpenERP : Diagramme Swot………………………………………………………………………………………………..3 2. OpenERP : besoin en ressources (Hardware)………………………………………………………………………..6 3. Installation Windows…………………………………………………………………………………………………………..6 4. Installation Windows : “ All-in-one”…………………………………..………………………………………………..7 5. Installation Windows: Installation indépendante………………………………………………………………..10 6. Installation Linux……………….………………………………………………………………………………………………..20 7. Vue Générale : Comparatif implémentation sur Windows vs Linux..…………….……………………..26 8. Audit : Constatation plateforme OpenERP Sifast………………….……………………………….…………….28 9. Audit : Techniques d’optimisation & Comparatif Windows vs Linux…………………………………….29 9.1. Optimisation serveur OpenERP……….………………………………………………………….………..30 9.2. Mesure & Analyse de performances ………………………………………….…………………………40 9.3. Optimisation serveur PosetgreSQL……………………………………………………………..…………46 9.4. Recommandations & Conclusions…..……………………………………………………………….……48
  • 3. 3 A-OpenERP : Diagramme SWOT (Strenghts, Weaknesses, Opportunities, Threats) : Forces Faiblesses  Bon framework de développement : le framework d'OpenERP intègre un ORM, une gestion des droits d'accès, un moteur de workflow et un moteur de rapports  Disponibilité d'une interface Web complète, rapide, jolie et facile à utiliser qui fonctionne avec Chrome, Firefox et Safari (le client Gtk historique a été abandonné avec OpenERP 7.0).  Choix du langage Python : un langage orienté objet conçu pour être facile pour le développeur.  Légèreté et bidouillabilité : OpenERP n'est pas une usine à gaz, c'est un logiciel plutôt léger et assez facile à appréhender pour les développeurs. Avec OpenERP, si vous avez des connaissances techniques, vous arriverez relativement rapidement à un stade où vous n'aurez plus l'impression que l'ERP est une énorme boite noire mais où vous vous sentirez le maître à bord. En outre, les requirements hardware pour faire tourner un serveur OpenERP sont modestes.  La faiblesse fonctionnelle des modules officiels. OpenERP possède le minimum dans chaque domaine.s  Un manque de maturité, qui se ressent sur le temps passé à corriger des bugs, pour certains très basiques  La priorité n'est pas assez mise par l'éditeur sur l'amélioration du fonctionnel et la correction des "bugs fonctionnels", par rapport à d'autres fonctionnalités moins importantes comme par exemple l'ajout d'une messagerie instantanée dans OpenERP.  L'éditeur fait parfois preuve d'un grand amateurisme sur certaines problématiques fonctionnelles, comme l'a illustré le fiasco de la gestion des contacts dans OpenERP 7.0 suite à un changement du modèle de données. D'ailleurs, si vous envisagez d'utiliser OpenERP 7.0, il est important de prendre le temps de lire le bug report 1160365, qui liste les principaux problèmes constatés dans la
  • 4. 4  Ergonomie et facilité d'utilisation : l'éditeur, sous l'impulsion de son fondateur Fabien Pinkaers, est particulièrement porté sur les problématiques de "usability" et les progrès sont visibles à chaque nouvelle version.  Modularité : OpenERP est très modulaire. Le code fonctionnel est réparti dans de très nombreux modules (comptabilité, gestion de stock, ventes, achats, CRM, gestion de production, gestion de projet, notes de frais, gestion des congés, etc...) et il est possible de n'installer que les modules dont on a besoin. Cette approche modulaire couplée à la notion d'héritage permet de modifier le comportement natif de l'ERP et de l'enrichir sans modifier le code des modules officiels : on peut enrichir les propriétés des objets natifs, modifier les vues natives et changer le comportement natif des fonctions dans des modules spécifiques sans agir sur les modules officiels.  Une communauté dynamique, sympathique et qui code énormément. La communauté OpenERP ne se contente pas de faire des bugs report et de demander des features à l'éditeur, comme on le voit parfois sur certains projets OpenSource ; elle développe de nombreux modules communautaires et propose de nombreuses améliorations sous forme de merge proposal à l'éditeur (qui ne prend pas toujours assez de temps pour les traiter !). La communauté OpenERP est très probablement la plus grosse communauté parmi les ERPs OpenSource. Or la communauté a atteint un niveau de contribution et d'expertise sur le code lui permettant de continuer le développement du logiciel seule en cas de faillite de l'éditeur, ce qui est une assurance de pérennité.  L'existence de l'OpenERP Community Association qui coordonne les développements de la communauté et lui permet de parler d'une seule voix face à l'éditeur.  Une marque (OpenERP) et une image qui s'est beaucoup professionnalisée, même si l'éditeur ne publie pas beaucoup de success stories (la raison invoquée étant la gestion des contacts dans OpenERP 7.0 et discute des solutions possibles.  Manque de disponibilité de l'éditeur pour approuver (ou refuser) les « merge proposals » communautaires sur les branches officielles de développement, alors même que l'éditeur se réserve le monopole des commits sur ces branches.  Manque de disponibilité d'intégrateurs expérimentés qui ont un bon niveau technique et fonctionnel.  L'éditeur ne publie pas de scripts de migration pour les modules officiels ; il le fait payer sous forme de service.
  • 5. 5 difficulté d'obtenir l'autorisation de l'entreprise utilisatrice).  Une seule version d'OpenERP est disponible, entièrement libre et gratuite. Il n'y a pas une version "Entreprise" payante et une version "Communautaire" gratuite avec des fonctionnalités en moins, comme Pentaho ou JasperSoft par exemple.  la licence AGPL qui contamine les modules ; les modules distribués sont forcément AGPL. Il n'y a donc pas de modules payants sur OpenERP, contrairement à PrestaShop ou Magento par exemple. Opportunités Menaces  Devenir le leader des ERPs OpenSource.  Développement de scripts de migration communautaires avec le projet OpenUpgrade.  Certains bons contributeurs de la communauté OpenERP sont partis chez Tryton (un fork d'OpenERP) en 2010- 2011, mais cette hémorragie semble stoppée.  Mauvaise gestion des copyrights par l'éditeur sur les modules officiels qui pourrait amener des contributeurs de la communauté à contester la validité de la licence
  • 6. 6 B-Hardware : C- OpenERP installation sur Windows : Configuration requise L'installation du serveur fonctionne sur:  Windows 2000  Windows XP  Windows Vista  Windows 7, 8  Windows Server 2000  Windows Server 2003  Windows Server 2008 Avec des disques formatés en NTFS (et non une partition FAT ou FAT32). Note : OpenERP serveur ne fonctionne pas sur Windows 98 ou ME; pour des raisons évidentes - ceux-ci ne peuvent pas être formatés en NTFS.
  • 7. 7 1- All-In-One Installation: Ceci est la façon la plus simple et la plus rapide à installer OpenERP. Il installe tous les composants (OpenERP Server ,OpenERP Client et la base de données PostgreSQL) préconfigurés sur un ordinateur. Cette installation est recommandée si vous ne disposez pas de toutes les personnalisations majeurs. 2- Etapes d’installations en local : (All in one) PostgresSQL OpenERP Server OpenERP Client
  • 8. 8 Ensuite, il est préférable d’avoir installé Xampp pour Windows Et démarrer les services : MySql Tomcat Apache
  • 9. 9
  • 10. 10 2- Installation indépendante: Si vous choisissez ce mode d'installation, tous les composants requis pour exécuter OpenERP devront être téléchargé et installé séparément. Vous devrez opter pour une installation indépendante si vous prévoyez d'installer les composants sur des machines distinctes. Ce mode est aussi pratique si vous travaillez déjà avec ou prévoyez d'utiliser une autre version de PostgreSQL que celui fourni avec le Tout- En-Un installateur. 2-1- Installation et configuration du serveur PostgreSQL :  Installation serveur PostgreSQL Vous pouvez télécharger le programme d'installation de Windows à partir de : http://www.postgresql.org/download/windows/ Selon vos besoins, choisissez le One Click d'installation ou de la pgInstaller et lancer l'exécutable que vous venez de télécharger.  Installation d'un utilisateur PostgreSQL Lorsque les installations de logiciels nécessaires sont terminées, vous devez créer un utilisateur PostgreSQL. OpenERP utilisera cet utilisateur pour se connecter à PostgreSQL. Ajouter un utilisateur ?  Lancer une console Windows (exécuter le cmd dans la commande Rechercher les programmes et fichierszone de texte de l' Démarrer menu).  Changez le répertoire à l' PostgreSQL bin répertoire (par exemple C: Program Files PostgreSQL 9.0 bin ) ou ajouter ce répertoire à votre PATH variable d'environnement. Le super-utilisateur par défaut pour PostgreSQL est appelé postgres . Le mot de passe a été choisi lors de l'installation PostgreSQL.  Dans votre console Windows, tapez: PostgreSQL 1- installer serveur PostgreSQL 2-Installer un utilisateur postgres OpenERP Serveur 1- Telecharger et installer 2- Configurer Serveur OpenERP Client 1- Telecharger et installer 2- Executer Client Web
  • 11. 11 C: Program Files PostgreSQL 9.0 bin> createuser.exe --createdb --username postgr es --no-CREATEROLE --pwprompt openpg Entrez le mot de passe pour le nouveau rôle: openpgpwd Entrez à nouveau: openpgpwd Est le nouveau rôle comme un super-utilisateur? (Y / n) y Mot de passe: XXXXXXXXXX * La ligne 1 est la commande elle-même * La ligne 2 vous demande le mot de passe du nouvel utilisateur * La ligne 3 vous demande de confirmer le mot de passe du nouvel utilisateur * La ligne 4 est nouveau rôle super ou pas? * La ligne 5 vous demande le mot de passe * * postgres de l'utilisateur explications Options:  --createdb : le nouvel utilisateur sera en mesure de créer de nouvelles bases  --username postgres : createuser utiliseront le postgres utilisateur (super-utilisateur)  --no-CREATEROLE : le nouvel utilisateur ne sera pas en mesure de créer de nouveaux utilisateurs  --pwprompt : createuser vous demandera le mot de passe du nouvel utilisateur  openpg : le nom du nouvel utilisateur. Alternativement, vous pouvez spécifier un autre nom d'utilisateur.  openpgpwd : mot de passe du nouvel utilisateur. Alternativement, vous pouvez spécifier un mot de passe différent. Note : Mot de passe Dans OpenERP v6, openpg et openpgpwd sont le nom d'utilisateur et mot de passe par défaut utilisé lors de l'installation du serveur OpenERP. Si vous envisagez de changer ces valeurs par défaut pour le serveur, ou avez déjà installé le serveur avec des valeurs différentes, vous devez utiliser les valeurs de configuration de l'utilisateur lorsque vous créez un utilisateur de PostgreSQL pour OpenERP. Maintenant utiliser pgAdmin III pour créer la base de données "openerpdemo" avec le propriétaire "openpg": CREATE DATABASE openerpdemo avec le propriétaire = openpg ENCODING = 'UTF8'; COMMENT ON DATABASE openerpdemo EST 'OpenERP Démo DB';
  • 12. 12 Si vous avez installé le serveur OpenERP, vous pouvez commencer maintenant. Si nécessaire, vous pouvez remplacer la configuration du serveur en démarrant le serveur à une console Windows et spécifiant des options de ligne de commande. Pour en savoir plus, reportez-vous à la sectionConfiguration personnalisée . Pour changer le mot de passe d'un utilisateur dans une version Windows, exécutez la commande suivante: net user <accountname> <newpassword> par exemple utilisateur postgres postgres net Si il est un compte de domaine, il suffit d'ajouter "/ DOMAIN» à la fin. Si vous souhaitez supprimer, il suffit d'exécuter: net user <accountname> / supprimer Case-Insensitive Rechercher Issue Pour une installation qui a besoin du soutien de caractères UTF8 complet, pensez à utiliser postgres> = 8.2.x. L'utilisation de versions avant cela, la recherche OpenERP ne reviendra pas les résultats escomptés pour la casse recherches, qui sont utilisés pour la recherche des partenaires, des produits, etc. Exemple: SELECT 'x' FROM ma_table WHERE «pari» ilike «pari» --matches seulement dans 8.2.x 2-2- Installation et configuration du serveur OpenERP :  Le téléchargement du serveur OpenERP Le OpenERP Server peut être téléchargé à partir de la page de téléchargement de site OpenERP . Sous automatique sous Windows Installer , choisissez All-In-One pour télécharger OpenERP. Installation du serveur OpenERP Exécutez le programme d'installation vous venez de télécharger. Il comporte les étapes suivantes: a. Choisir la langue d'installation La valeur par défaut est l'anglais . L'autre option est français . b. Message de bienvenue Suivez attentivement les recommandations données dans cette étape. c. Accord de licence
  • 13. 13 Il est important que vous acceptez la licence publique générale GNU pour poursuivre l'installation. d. Sélectionner un dossier pour l'installation Par défaut, OpenERP Server est installé dans C: Program Files OpenERP 7.0 Server . Pour installer dans un dossier différent, recherchez un emplacement différent (de dossier) à cette étape. e. Configurer la connexion PostgreSQL Le programme d'installation va suggérer les paramètres par défaut pour terminer la configuration de votre connexion PostgreSQL. Vous pouvez accepter les valeurs par défaut, ou le modifier selon vos besoins. f. Créer des raccourcis Sélectionnez un dossier dans le Démarrer menu dans lequel vous souhaitez créer les raccourcis du programme. g. Installer L'installation automatique du serveur OpenERP commence et vous pouvez visualiser ses progrès. h. Finitioon Lors de l'installation réussie de OpenERP Server, vous obtiendrez une confirmation appropriée. Vous pouvez cliquez sur Terminer pour fermer l'assistant d'installation. OpenERP Server est installè en tant que service Windows. Cela signifie que vous ne devez pas démarrer le serveur à chaque fois que vous démarrez l'ordinateur et il fonctionne sans avoir besoin d'une session utilisateur ouverte.  Configuration personnalisée Pour initialiser le serveur avec des configurations de votre choix, vous avez de l'invoquer à l'invite de commandes de Windows avec les options que vous souhaitez remplacer. Accédez au répertoire d'installation dans C: Program Files OpenERP 6.1 Server et tapez cette commande mais ne pas l'exécuter encore: openerp-server.exe -d <db_name> -r <db_user> -w <db_password> --db_host = <postgresql_server_address> --db_port = <port_no> --logfile = "<fichier journal>" L'initialisation de OpenERP Server fournit les informations nécessaires pour la connexion à la base de données PostgreSQL et le choix des données à charger. Voici l'explication des options utilisées:  -d <db_name> : Nom de la base de données créée pour OpenERP Server.  -r <db_user> : Nom de l'utilisateur PostgreSQL (rôle).  -w <db_password> : Mot de passe de l'utilisateur PostgreSQL.  --db_host = <postgresql_server_address> : Adresse du serveur sur lequel est PostgreSQL. Si vous avez installé PostgreSQL sur le même ordinateur que OpenERP Server, vous pouvez entrer localhost , sinon, l'adresse IP ou le nom du serveur distant.
  • 14. 14  --db_port = <port_no> : numéro de port où PostgreSQL écoute. La valeur par défaut est 5432.  --stop-après-init : Cette option arrête le serveur après l'initialisation.  --logfile = "<fichier journal>" : spécifier un autre fichier journal où tous la sortie de serveur sera sauvé. La valeur par défaut est C: Program Files OpenERP 6.1 Server openerp-server.log . Avant l'exécution de cette commande, vous devez décider de l'objectif de la base de données créée dans OpenERP. Exemple de commande: openerp-server.exe -d -r openerpdemo openpg -w openpgpwd --db_host = localhost --logfile = "C: Users minuscule Desktop demo_db.log" --db_port = 5430 --stop-après-init Ici, vous devez entrer le nom d'utilisateur et mot de passe spécifié dans la configuration de la connexion PostgreSQL lors de l'installation du serveur. Lorsque vous exécutez la commande d'initialisation, si vous spécifiez un fichier journal, la sortie d'exécution du serveur est écrit à ce fichier, et vous ne verrez aucune sortie de serveur dans la fenêtre d'invite. Vous avez seulement à attendre l'invite revient. Décider sur le but de la base de données Vous pouvez initialiser la base de données avec OpenERP Server pour: 1. Jetez un oeil sur le système avec des modules installés et des données de démonstration chargé 2. Installer un nouveau système de base de données propre (sans données de démonstration) 3. Mettre à niveau une version existante Avec des modules et des données de démonstration Si vous exécutez la commande de l'échantillon ci-dessus, vous obtiendrez une base de données avec seulement modules de base installé et chargé avec des données de démonstration. Pour initialiser OpenERP Server avec des modules supplémentaires et ses données de démonstration, vous devez ajouter cette option à la commande ci-dessus: -i <nom du module> Exemple de commande: openerp-server.exe -d openerpdemo --stop-après-init -i vente Cette commande va initialiser le serveur d'OpenERP avec le module vente et de ses dépendances, et de remplir sa base de données PostgreSQL avec leurs données de démonstration connexes. Comme on peut le voir, vous devez spécifier la base de données cible pour l'installation du module.
  • 15. 15 Pour installer plus d'un module, spécifier une liste des modules séparés par des virgules à la ligne de commande. Sans données dèmo (ou nouvelle version propre) Exécutez la commande avec une option excluant les données de démonstration: - sans - démo = tous Cela va charger modules de base (et d'autres modules si l'option -i est utilisé), mais ne sera pas charger ses données de démonstration. Exemple de l'utilisation de la commande: openerp-server.exe -d openerpdemo = all --stop-après-init --without-démo Si vous avez déjà initialisé la base de données avec des données de démonstration chargé, vous pouvez créer une nouvelle base de données et exécutez la commande ci-dessus sur elle. Mettre à jour la base de données Exécutez la commande avec une option qui met à jour les structures de données: - mise à jour = tous Exemple de l'utilisation de la commande: openerp-server.exe -d openerpdemo --stop-après-init --update = all  Contrôle du serveur OpenERP : Le service et l'exécution des informations est accessible via la console Gestion de l'ordinateur dans Outils d'administration. Dans ce cas OpenERP 6.1 dans la liste des services
  • 16. 16 Ici, vous pouvez définir la façon dont le service doit agir en cas de défaillance du serveur. Accédez aux propriétés du service en double-cliquant sur OpenERP 6.1 dans la liste. onglet Récupération pour régler réponse d'échec de service Le service de journalisation Gestion de l'ordinateur offre des informations supplémentaires sur l'exécution du OpenERP Server, par exemple, le démarrage ou l'arrêt du service d'information. Information sur le serveur dans la liste Journaux Windows La Sortie d'exécution de serveur OpenERP (Runtime Output) peut être trouvé dans le fichier journal par défaut. Étant donné que le serveur est maintenant en cours d'exécution en tant que service Windows, il ne fait pas de sortie des messages d'exécution. Pour cela, le fichier journal est la seule option. Y accéder depuis le Démarrermenu, à travers la Vue journal lien dans le groupe des raccourcis pour OpenERP 6.1. Sinon, utilisez le chemin C: Program Files OpenERP 6.1 Server openerp- server.log .
  • 17. 17 OpenERP fichier journal du serveur Vous pouvez savoir si OpenERP est en cours d'exécution en invoquant le Gestionnaire des tâches de Windows . Lorsque vous regardez le processus onglet, vous verrez OpenERPServerService.exe et openerp-server.exe , les deux ayant SYSTÈME comme leur utilisateur (voir ci, Afficher les processus de tous les utilisateurs doivent être activés dans le Gestionnaire des tâches). Les services dans le Gestionnaire des tâches de Windows
  • 18. 18 2-3- Installation et configuration de Client Web : Note : Le client Gtk n’est pas développé au-delà de la version 6 Vous devez installer, configurer et exécuter l'OpenERP serveur avant d'utiliser le Web OpenERP. Le client Web a besoin que le serveur fonctionne. Vous pouvez installer l'application serveur sur votre ordinateur ou sur un serveur indépendant accessible par réseau.  Téléchargement du web OpenERP Le OpenERP Web peut être téléchargé depuis la page de téléchargement de site OpenERP . Sous automatique sous Windows Installer, choisissez Web pour télécharger la version autonome de Web OpenERP.  Installation du Web OpenERP Cliquez sur le fichier d'installation exécutable que vous venez de télécharger, et de procéder aux étapes suivantes: a. Choisir la langue d'installation La valeur par défaut est l'anglais . L'autre option est français . b. Message de bienvenue Suivez attentivement les recommandations données dans cette étape. c. Accord de licence Il est important que vous acceptez la licence publique OpenERP (OEPL) Version 1.1 de procéder à l'installation. Cette licence est basé sur la Mozilla Public Licence (MPL) Version 1.1. d. Sélectionner un dossier pour l'installation
  • 19. 19 Par défaut, OpenERP Web est installé dans C: Program Files OpenERP 6.0 Web .Pour installer dans un dossier différent, recherchez un emplacement différent (de dossier) à cette étape. e. Créer des raccourcis Sélectionnez un dossier dans le Démarrer menu dans lequel vous souhaitez créer les raccourcis du programme. f. Installer L'installation automatique de OpenERP Web commence et vous pouvez visualiser ses progrès. g. Finition Lors de l'installation réussie de OpenERP Web, vous obtiendrez une confirmation appropriée. Cliquez sur Terminer pour fermer l'assistant d'installation. Le service Windows pour OpenERP Web Server est également installé et est configuré pour démarrer automatiquement le serveur au démarrage du système.  Démarrage du client Web Le serveur Web en cours d'initialisation et les réglages enregistré, vous pouvez démarrer le client OpenERP Web. Utilisez un navigateur Web de votre choix pour vous connecter à OpenERP Web. Si votre client Web est installé sur le même ordinateur que le serveur, vous pouvez naviguer vers http: // localhost: 8069 pour se connecter à la version web d'OpenERP. Si le serveur est installé sur un ordinateur séparé, vous devez connaître le nom ou l'adresse IP du serveur sur le réseau et accédez à http: / / <adresse_serveur>: 8069 pour se connecter à OpenERP.
  • 20. 20 Client Web au démarrage C- Installation OpenERP 7.0 sur Linux (Ubuntu 14.04 LTS) : 1- Construire votre serveur : On va installer juste le strict minimum de la routine d'installation (vous pouvez installer le openssh-server au cours de la procédure d'installation ou installer la suite en fonction de vos besoins). Après le redémarrage du serveur pour la première fois je installer le openssh-server paquet (afin que nous puissions connecter à distance) et denyhosts pour ajouter un degré de protection attaque par force brute. Il existe d'autres applications de protection disponibles: Je ne dis pas que celui-ci est le meilleur, mais il est celui qui fonctionne et est facile à configurer et à gérer. Si vous ne le faites pas déjà, il est aussi intéressant de regarder la mise en place de l'accès ssh à base de clés, plutôt que de compter sur les mots de passe. Cela peut aussi aider à limiter le potentiel d'attaques par force brute. [NB: Ceci est pas un How To sur la sécurisation de votre serveur ...] sudo apt-get install denyhosts openssh-server Maintenant, assurez-vous que votre serveur dispose de toutes les dernières versions et correctifs en faisant une mise à jour: sudo apt-get update sudo apt-get dist-upgrade Bien que pas toujours indispensable, il est probablement une bonne idée de redémarrer votre serveur maintenant et assurez-vous que tout revient et vous pouvez vous connecter via ssh. Maintenant, nous sommes prêts à commencer l'installation OpenERP.
  • 21. 21 2-Créer l'utilisateur OpenERP qui sera le propriétaire : sudo adduser --system --home = / opt / openerp --group openerp Ceci est un "système" utilisateur. Il est là pour posséder et exécuter l'application, il est pas censé être un utilisateur de type personne avec un login etc. Dans Ubuntu, un utilisateur du système reçoit un UID en dessous de 1000, n'a pas d'enveloppe (il est en fait / bin / false ) et a logins désactivé. Notez que je l'ai précisé un «foyer» de / opt / OpenERP , ceci est où le code du serveur OpenERP va résider et est créé automatiquement par la commande ci-dessus. L'emplacement du code du serveur est votre choix de cours, mais sachez que certaines des instructions et des fichiers de configuration ci-dessous peut-être besoin d'être modifié si vous décidez d'installer à un autre endroit. [Note: Si vous voulez exécuter plusieurs versions d'OpenERP sur le même serveur, la façon dont je fais est de créer plusieurs utilisateurs avec le numéro de version correcte, car une partie du nom, par exemple openerp70, openerp61 etc. Si vous utilisez également quand créer les utilisateurs Postgres aussi, vous pouvez avoir une séparation complète des systèmes sur le même serveur. Je l'utilise aussi les répertoires nommés de façon similaire à la maison, par exemple, / opt / openerp70, / opt / openerp61 et config et les fichiers de démarrage / arrêt. Vous aurez également besoin de configurer des ports différents pour chaque instance ou bien seule la première sera commencer.] Une question m'a demandé quelques fois est de savoir comment exécuter le serveur OpenERP que l'utilisateur du système d'OpenERP depuis la ligne de commande si elle n'a pas de coquille. Cela peut se faire assez facilement: sudo su - -s OpenERP / bin / bash Ce sera su de votre terminal connexion actuelle à l'utilisateur d'OpenERP (le « - »entre su et OpenERP est correcte) et utiliser le shell / bin / bash . Lorsque cette commande est exécutée, vous serez dans le répertoire d'accueil de OpenERP: / opt / OpenERP . Lorsque vous avez fait ce que vous avez besoin, vous pouvez quitter le shell de l'utilisateur de OpenERP en tapant exit . 3- Installer et configurer le serveur de base de données, PostgreSQL sudo apt-get install postgresql Puis configurer l'utilisateur OpenERP sur postgres: Premier changement pour l'utilisateur postgres si nous avons les privilèges nécessaires pour configurer la base de données. sudo su - postgres Maintenant, créez un nouvel utilisateur de base de données. Il en est ainsi OpenERP a des droits d'accès pour se connecter à PostgreSQL et de créer et supprimer des bases de données. Rappelez-vous ce que votre choix de mot de passe est ici; vous en aurez besoin plus tard: createuser --createdb --username-CREATEROLE --no postgres --no-super --pwprompt openerp Entrez le mot de passe pour le nouveau rôle: ******** Entrez à nouveau: ********
  • 22. 22 Enfin la sortie du compte de l'utilisateur postgres: Sortie 4- Installez les bibliothèques Python nécessaires pour le serveur sudo apt-get install python-dateutil python-docutils python-feedparser python-gdata python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-maquette python-openid python-psycopg2 python-psutil python-pybabel python -pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-unittest2 python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi Avec ce fait, toutes les dépendances pour l'installation OpenERP 7.0 sont maintenant satisfaits (noter qu'il ya des nouveaux packages nécessaires depuis 6.1). 5- Installez le serveur d'OpenERP Je tends à utiliser wget pour ce genre de chose et je télécharge les fichiers de mon répertoire. Assurez-vous que vous obtenez la dernière version de l'application: au moment de la rédaction de ce qu'il est 7.0. Je suis les liens de téléchargement à partir de leurs pages de téléchargement (noter qu'il ya également deb , rpm et exe construit dans ce domaine aussi). Il n'y a pas une version 7.0 en tant que telle archive statique plus, mais il ya une nightly build de l'arbre 7,0 source qui devrait être tout aussi bon et qui contiendra les correctifs comme et quand les choses se fixe. Le lien ci-dessous est à l'archive source pour la branche 7.0. Remarque: Comme une méthode alternative d'obtenir le code sur votre serveur, Jérôme a ajouté un commentaire très utile montrant comment l'obtenir directement de bord. Merci! wget http://nightly.openerp.com/7.0/nightly/src/openerp-7.0-latest.tar.gz Maintenant, installez le code où nous en avons besoin: cd à la / opt / openerp / répertoire et extraire l'archive cd / opt / openerp sudo tar xvf ~ / openerp-7,0-latest.tar.gz Ensuite, nous devons changer la propriété de tous les fichiers à l'utilisateur d'OpenERP et le groupe que nous avons créé plus tôt. sudo chown -R openerp * Et enfin, la façon dont je l'ai fait est de copier le répertoire du serveur à quelque chose avec un nom plus simple afin que les fichiers de configuration et les scripts de démarrage ne doivent édition constant (je l'ai appelé, plutôt platement, serveur). Je commencé en utilisant une solution de lien symbolique, mais je trouve que quand il vient à la mise à niveau, il semble faire plus de sens pour moi de simplement conserver une copie des fichiers en place, puis les écraser avec le nouveau code. De cette façon vous garder toute coutume ou des modules et des rapports installés par l'utilisateur, etc. tous dans le bon endroit. sudo cp -a openerp-server 7.0 A titre d'exemple, devrait OpenERP 7.0.1 sortir bientôt, je peux extraire les archives tar dans / opt / openerp / comme ci-dessus. Je peux faire tous les essais que je dois, puis répétez la commande de copie de sorte que les fichiers modifiés seront remplacer selon les besoins et tous les modules personnalisés, des modèles de rapport
  • 23. 23 et ne sera conservé. Après avoir vérifié la mise à niveau est stable, les 7.0 répertoires anciens peuvent être enlevés si désiré. Voilà le logiciel serveur installé OpenERP. Les dernières étapes d'un système de travail est de mettre en place le fichier de configuration et de script de démarrage associé afin OpenERP démarre et arrête automatiquement lorsque le serveur lui-même arrête et démarre. 6- Configuration de l'application OpenERP Le fichier de configuration par défaut pour le serveur (dans / opt / openerp / serveur / install / ) est en fait très minime et sera, avec seulement un petit travail de changement bien donc nous allons simplement copier ce fichier là où nous en avons besoin et de le changer est la propriété et les autorisations: sudo cp /opt/openerp/server/install/openerp-server.conf / etc / sudo chown OpenERP: /etc/openerp-server.conf sudo chmod 640 /etc/openerp-server.conf Les commandes précédentes rendent le fichier détenue et écriture que par l'utilisateur et le groupe d'OpenERP et seulement lisibles par OpenERP et la racine. Pour permettre au serveur de OpenERP pour exécuter d'abord, vous ne devriez avoir besoin de changer une ligne dans ce fichier. Vers le haut du fichier changer la ligne db_password = False au même mot de passe que vous avez utilisé de retour à l'étape 3. Utilisez votre éditeur de texte favori ici. Je tends à utiliser nano, par exemple, sudo nano /etc/openerp-server.conf Une autre ligne, nous pourrions aussi bien ajouter au fichier de configuration maintenant, est de dire OpenERP où écrire son fichier journal.Pour compléter mon endroit proposé ci-dessous, ajoutez la ligne suivante à la openerp-server.conf fichier: logfile = /var/log/openerp/openerp-server.log Une fois le fichier de configuration est modifié et enregistré, vous pouvez démarrer le serveur juste pour vérifier si elle fonctionne effectivement. sudo su - -s OpenERP / bin / bash / opt / openerp / serveur / openerp-server Si vous vous retrouvez avec quelques lignes éventuellement disant OpenERP est en marche et d'attente pour les connexions alors vous êtes tous ensemble. 7- Installation du script de démarrage Pour l'étape finale, nous devons installer un script qui sera utilisé pour le démarrage et arrêter le serveur automatiquement et également exécuter l'application que l'utilisateur correct. Il ya un script que vous pouvez utiliser dans /opt/openerp/server/install/openerp-server.init mais cette aurez besoin de quelques petites modifications pour fonctionner avec le système installé la façon dont je l'ai décrit ci-dessus. Voici un lien à celui que je 'ai déjà modifié pour 7,0.
  • 24. 24 Similaire au fichier de configuration, vous devez soit copier ou coller le contenu de ce script dans un fichier dans /etc/init.d/ et l'appeleropenerp-server . Une fois qu'il est à la bonne place, vous aurez besoin de le rendre exécutable et appartenant à root: 755 /etc/init.d/openerp-server de sudo sudo chown root: /etc/init.d/openerp-server Dans le fichier de configuration, il ya une entrée pour le fichier de log du serveur. Nous devons créer ce répertoire d'abord pour que le serveur a un endroit pour se connecter à et aussi nous doit rendre accessible en écriture par l'utilisateur OpenERP: / var sudo / log / openerp sudo chown OpenERP: root / var / log / openerp 8-Test du serveur Pour démarrer le type de serveur OpenERP: sudo début Vous devriez maintenant être en mesure d'afficher le fichier journal et de voir que le serveur a démarré. moins /var/log/openerp/openerp-server.log Si il ya des problèmes à partir du serveur, vous devez revenir en arrière et vérifier. Il n'y a vraiment pas de point sur le labour si le serveur ne démarre pas ... OpenERP écran de gestion de base de données 7 Si le fichier journal semble OK, maintenant pointer votre navigateur web à l'adresse de domaine ou l'adresse IP de votre serveur OpenERP (ou localhost si vous êtes sur la même machine) et utilisez le port 8069. L'URL ressemblera à quelque chose comme ceci: http://IP_or_domain.com:8069 Ce que vous devriez voir un écran comme celui-ci (il est l'écran de gestion de base de données parce que vous avez pas encore de bases de données de OpenERP): Ce que je ne vous recommande de faire à ce stade est de changer le mot de passe de super-admin à quelque chose belle et forte (Cliquez sur le menu "Mot de passe"). Par défaut, ce mot de passe est tout simplement "admin" et sachant que, un utilisateur peut créer, sauvegarder, de restaurer et de déposer les bases de données! Ce mot de passe est stocké dans le texte brut dans le /etc/openerp-server.conffichier; donc pourquoi
  • 25. 25 nous avons limité l'accès à tout openerp et la racine . Lorsque vous modifiez et enregistrez le nouveau mot de passe/etc/openerp-server.conf fichier sera réécrit et aurez beaucoup plus d'options en elle. Maintenant il est temps pour vous assurer que le serveur arrête bien trop: sudo arrêt Vérifiez à nouveau le fichier journal pour vous assurer qu'il est arrêté et / ou de regarder la liste des processus de votre serveur. 9- Automatisation OpenERP démarrage et d'arrêt Si tout ce qui précède semble fonctionner OK, l'étape finale est de faire le début de script et arrête automatiquement avec le serveur Ubuntu. Pour faire ce type: sudo update-rc.d défaut openerp-serveur Vous pouvez maintenant essayer vous de redémarrer le serveur si vous le souhaitez. OpenERP doit être exécuté par le temps que vous vous connectez avant. Si vous tapez ps aux | grep openerp vous devriez voir une ligne semblable à ceci: openerp 1491 0,1 10,6 207 132 53 596? Sl 22h23 00h02 python / opt / openerp / serveur / openerp-server -c /etc/openerp-server.conf Ce qui montre que le serveur est en cours d'exécution. Et bien sûr, vous pouvez vérifier le fichier journal ou visitez le serveur à partir de votre navigateur web trop. OpenERP 7.0 Ecran principal de configuration
  • 26. 26 D- OpenERP : Windows vs Linux ? : (Vue Générale) La documentation officielle ne met pas en jeu une grande différence entre les performances sur Windows ou sur Linux, en revanche la communauté de l’Odoo7 valorise bien l’implémentation linux plutôt que Windows pour des raisons de stabilité de rapidité. Ceci est dû à plusieurs raisons tel que le besoin a un haut niveau de compilation de dépendances sur Windows pour assurer une performance proche de celle sur linux Mai sur le plan théorique on pourrait mettre en œuvre la comparaison entre les 2 systèmes selon plusieurs critères : Windows (7 ou 8) Linux (Debian/Ubuntu) Temps de Téléchargement moyen petit Temps d’installation moyen petit Configuration Automatique (standard) Manuelle (plus maitrisée) Niveau Paramétrage Standard Elevé (tout est commandé) Dépendances Elevé (compilation répétitive de paquets dépendants) Réduit (tous les paquets sont compilés dès l’installation) Rapidité normale bonne Sécurité Minimale Haute Stabilité Normale Assez bien Privilèges (droits d’accès) Standard Privilège Conflit matériel Possible (port) Résolu dès l’installation Possibilité de réglages dès l’installation Utilisation graphique Graphique ou ligne de commande Methodes de réglages Manuelle Manuelle ou Par ligne de commandes Windows VS LINUX 4 – 8 (Linux)
  • 27. 27 Quelques avis de la communauté : (expériences de déploiement) :
  • 28. 28 E- Audit sur les performances OpenERP Sifast : 1- Constatation : La plateforme OpenERP Sifast est une plateforme de gestion d’équipes, projets, RH, finances … installée sous Windows. Après la manipulation de la plateforme sur un VM de tests, dès limites de performances ont été remarqués :  Lourdeur partielle de la plateforme lors du passage entre les volets des modules Projet Rh spécialement (Ce sont les modules qui mettent recours aux données PostgreSQL via l’ORM)  Surcharge base  Retard de chargement Graphique des différents vues (parsing XML) , et par conséquent retard de chargement des actions (boutons ) & diffusion des messages d’erreur lors des clicks rapides avant chargement complet de la page demandée  Problème de mapping Xml-rpc & xml-rpc Secure relativement aux paquets pythons de liaisons actions- vue (contrôleur + view)  Problème dépendances Windows –Python (retard de compilations des paquets)  Parmi les inconvénients du déploiement sur Windows  Lourdeur excessive de l’utilisation de toute la plateforme lors des moments de pointe (temps de fin de journée ou les ingénieurs de différentes équipes viennent de déposer des données relatives à leur avancement (problème accès concurrentiel)  * Origines des problèmes (surcharge sur la base : mauvaise implémentation du PostgreSQL sur Windows et manque de dépendances python assurant la fiabilité de l’ORM à optimiser le dialogue User – Base) * Serveur d’application werkzeug , serveur dédié aux petites et aux moyennes implémentations , d’après la documentation officielle et les avis communauté ; le nombre max d’intégration d’utilisateurs pour un bon fonctionnement de la plateforme varie entre 120 et 180 user , des statistiques d’utilisations indiquent qu’a partir 40 user connectés simultanément sur un même volet (exemple : pointage) , les doutes de rapidité commencent à apparaitre , et une lourdeur de la plateforme se met en jeu bue la quasi-faiblesse du serveur d’application  Faiblesse du système contre les attaques ; la plateforme a intégré des failles de sécurité qui ont engendré la réussite de tentatives de piratage à avoir accès aux données de la plateforme
  • 29. 29  Manque de control et non perméabilité Windows (port ouverts, unicité des mots de passés, non différenciation entre les comptes user (user , super user , openerp user , PostgreSQL user) 2-Techniques / Astuces d’optimisation de Performances & Mise en comparaison d’efficacité de réalisation Windows vs Linux : 2-1 – OPTIMISATION SUR SERVEUR : Pour ce faire il faut tout d’abord accéder en écriture sur le fichier de config serveur présent dans le répertoire d’installation de l’OpenERP NB : On pourrait accéder via « -c » command si on est sur une plateforme Linux ./server/openerp-server -c /path/to/openerp-server.conf On listera ainsi les différentes lignes de ce fichier tout en recommandant les changements bénéfiques pour une meilleure performance par des commentaires # GRIS : fonctionnalités de la ligne # VIOLET : Propositions  Options de démarrage serveur (Startup) : # Admin password for creating, restoring and backing up databases admin_passwd = admin # default CSV separator for import and export csv_internal_sep = , # to compress reports # PROPOSITION : On pourrait utilizer l’option “True” pour compresser les rapports reportgz = False
  • 30. 30 # disable loading demo data for modules to be installed (comma-separated, use "all" for all modules) # PROPOSITION : Utiliser l’option « True » qui annulera l’affichage des demo d’utilisation des modules without_demo = False # Use this for big data importation, if it crashes you will be able to continue at the current state. Provide a filename to store intermediate importation states. # PROPOSITION & RECOMMANDATION : l’import de données pourrait engendrer un crash brusque de la plateforme ; cette option recommande de donner un nom à la partie de données partiellement importés pour éviter d’abandonner l’état actuel et et assure la continuité d’après crash . -> laisser cette option –sans nom- désactive cette option, d’où c’est fort recommandé de l’activer par donner un nom. Ex : import_partial = partial import_partial = # file where the server “PID” will be stored # PROPOSITION : sur une éventuelle plateforme Linux, cette option stockera le PID du serveur OpenERP dans un fichier qu’on indiquera son nom et son chemin, cette option semble être utile si le serveur local supporte différents plateformes d’accès en concurrence, d’où indiquer le PID (priorité) améliorera la performance du serveur OpenERP en lui affectant une priorité supérieures pidfile = None # specify additional addons paths (separated by commas) # PROPOSITION : On pourrait utiliser deux dossiers addons ou +, ceci paraitra bénéfique si on utilise un dossier supplémentaires pour les modules manuellement développés. Différents critères de choix : modules originales/développés, modules lourds (fort surcharge sur la base de données), modules confidentiels, non testés, pour les utilisations peu fréquentes… Ceci pourrait donner une vitesse supplémentaire à toute la plateforme surtout lors du démarrage addons_path = /full/path/to/addons
  • 31. 31 # Comma-separated list of server-wide modules default=web server_wide_modules = None  Options XML-RPC / HTTP – XML-RPC (Déconseillé d’être activé) # disable the XML-RPC protocol xmlrpc = True # Specify the TCP IP address for the XML-RPC protocol. The empty string binds to all interfaces. xmlrpc_interface = # specify the TCP port for the XML-RPC protocol # PROPOSITION : utiliser un autre port outre que 8069 favorise la sercuritè xmlrpc_port = 8069 # Enable correct behavior when behind a reverse proxy proxy_mode = False  Options XML-RPC / HTTPS – XML-RPC Secure (fortement recommandé – SSL connexion) # disable the XML-RPC Secure protocol xmlrpcs = True # Specify the TCP IP address for the XML-RPC Secure protocol. The empty string binds to all interfaces. xmlrpcs_interface =
  • 32. 32 # specify the TCP port for the XML-RPC Secure protocol # PROPOSITION : utiliser un autre port outre que 8069 (usuel) et 8071 (ssl) favorise de + la sécurité de la plateforme xmlrpcs_port = 8071 # specify the certificate file for the SSL connection secure_cert_file = server.cert # specify the private key file for the SSL connection secure_pkey_file = server.pkey  NET-RPC – NET-RPC Configuration # enable the NETRPC protocol netrpc = False # specify the TCP IP address for the NETRPC protocol netrpc_interface = # specify the TCP port for the NETRPC protocol
  • 33. 33 # PROPOSITION : utiliser un autre port outre que 8070 connu pour ce type de chargement favorise la sécurité netrpc_port = 8070  WEB – Web interface Configuration # Filter listed database REGEXP # PROPOSITION : introduire un (ou +) filtre de parcours de BD (ex : name , date , size…) dbfilter = .*  Static HTTP – Static HTTP # enable static HTTP service for serving plain HTML files # PROPOSITION : Dans le cas de la présence de modules qui présentent un chargement de pages HTML Statique, activer cette option favorise la perméabilité du serveur à les traiter static_http_enable = False # specify the directory containing your static HTML files (e.g '/var/www/') static_http_document_root = None # specify the URL root prefix where you want web browsers to access your static HTML files (e.g '/') static_http_url_prefix = None
  • 34. 34  Options de Tests: # Launch a YML test file. test_file = False # If set, will save sample of all reports in this directory. # PROPOSITION : faudra mieux de spécifier un dossier pour les rapports de tests , l’option false mettra les rapports dans la cache de la plateforme en forme de cookies sur navigateur ou de mémoire vive (ralentissement prèvue) test_report_directory = False # Enable YAML and unit tests. test_enable = False # Commit database changes performed by YAML or XML tests. test_commit = False  Logging Group – Logging Configuration # file where the server log will be stored logfile = None # do not rotate the logfile logrotate = True
  • 35. 35 # Send the log to the syslog server syslog = False # setup a handler at LEVEL for a given PREFIX. An empty PREFIX indicates the root logger. This option can be repeated. Example: "openerp.orm:DEBUG" or "werkzeug:CRITICAL" (default: ":INFO") # PROPOSITION :indiquer des préfixes , indiquera les origines d’erreur log_handler = [':INFO'] # specify the level of the logging. Accepted values: info, debug_rpc, warn, test, critical, debug_sql, error, debug, debug_rpc_answer, notset log_level = info  SMTP Group – SMTP Configuration # specify the SMTP email address for sending email email_from = False # specify the SMTP server for sending email smtp_server = localhost # specify the SMTP port # PROPOSITION :changer ce port (meilleure sécurisation) smtp_port = 25 # specify the SMTP server support SSL or not
  • 36. 36 # PROPOSITION :un connexion ssl est désormais conseillèe smtp_ssl = False # specify the SMTP username for sending email smtp_user = False # specify the SMTP password for sending email smtp_password = False  Database related options # specify the database name db_name = False # specify the database user name db_user = openerp # specify the database password db_password = False # specify the “pg” executable path pg_path = None
  • 37. 37 # specify the database host db_host = False # specify the database port db_port = False # specify the the maximum number of physical connections to posgresql # PROPOSITION :on pourrait augmenter le nombre de connexions physiques au serveur Postgres , ce qui est deconseillè db_maxconn = 64 # specify a custom database template to create a new database db_template = template1  Options d’internationalisation # PROPOSITION : indiquer les modules qu’on a besoin d’en obtenir une certaine traduction , ceci diminue de la lourdeur du chargement des modules translate_modules = ['all']  Options de sécurisation: # disable the ability to return the list of databases # PROPOSITION : assurer la protection de la base en désactivant cette option list_db = True  Options Avancèes:
  • 38. 38 # enable debug mode debug_mode = False # specify reference timezone for the server (e.g. Europe/Brussels") timezone = False # Force a limit on the maximum number of records kept in the virtual osv_memory tables. The default is False, which means no count-based limit. # PROPOSITION : s’assurer d’activer la non-limitation du nombre osv_memory_count_limit = False # Force a limit on the maximum age of records kept in the virtual osv_memory tables. This is a decimal value expressed in hours, and the default is 1 hour. osv_memory_age_limit = 1.0 # Maximum number of threads processing concurrently cron jobs (default 2) # PROPOSITION : cette option traite la chronologie des différents threads, l’option « 2 » précise que le système d’exploitation traite 2 threads d’une façon périodique afin de nettoyer un job après sa terminaison Le nombre conseillé c’est 2, 4 est aussi conseillé sauf que ça ralentisse l’exécution mais favorise le traitement (moindre chance de crash) NB : c’est une option supportée uniquement pour les environnements Unix max_cron_threads = 2 # Use the unaccent function provided by the database when available. unaccent = False
  • 39. 39  Multiprocessing options # Specify the number of workers, 0 disable prefork mode. # PROPOSITION : le prefork mode associe un nombre de threads (requests) dans un seul process , ceci engendre une réduction de consommation CPU mai une besoin élevé sur ressources (RAM) VOIR L’EXPLICATION SUIVANTE workers = 0 # Maximum allowed virtual memory per worker, when reached the worker be reset after the current request (default 671088640 aka 640MB) # PROPOSITION :les options suivants sont des options de spécification mémoire / temps , les valeurs sont par défaut , mais augmenter les tailles pourrait donner + d’agilité à a plateforme limit_memory_soft = 671088640 # Maximum allowed virtual memory per worker, when reached, any memory allocation will fail (default 805306368 aka 768MB) limit_memory_hard = 805306368 # Maximum allowed CPU time per request (default 60) limit_time_cpu = 60 # Maximum allowed Real time per request (default 120) limit_time_real = 120 # Maximum number of request to be processed per worker (default 8192) limit_request = 8192 Difference Worker/Prefork:
  • 40. 40 Exemple : un nombre de process , chaque process necessite 1% cpu et 10mb de RAM. /--------- | Prefork | -------- > Request --- 1% CPU - 10 MB RAM ________/ /--------- | Prefork | -------- > Request --- 1% CPU - 10 MB RAM ________/ /--------- | Prefork | -------- > Request --- 1% CPU - 10 MB RAM ________/ /--------- | Prefork | -------- > Request --- 1% CPU - 10 MB RAM ________/ -> en somme on a 4 process qui utilisent 4% CPU et 40MB de RAM. Nous allons utiliser des chiffres similaires ici, mais on se permet de supposer que le prefork a un peu plus de ressources que le modèle de processus par processus. /------------- | Worker MPM | ----------> Request | Worker MPM | ----------> Request | | Worker MPM | ----------> Request | | Worker MPM | ----------> Request / ____________/  Tout ça utilisent 2% CPU et 25 MB ram. 2-2 – Mesure & Analyse de Performances (Techniques de mesures) :  Surveiller les temps de réponse de la Plateforme :  Vous ne pouvez pas gérer / améliorer ce que vous ne pouvez pas mesurer  Solution : Configurer une surveillance automatisée de la performance et le temps de réponse ... même si vous avez pas problème de performance.  Outil proposé : munin  Comment ? : Exécutez OpenERP avec l’option (Linux) -log-level = debug_rpc (en prod)
  • 41. 41
  • 42. 42  Analyse / Mesure des performances PostgreSQL : Reglages sur postgresql.conf : log_min_duration_statement = 50 Réglez à 50 ou 100 dans prod Mettre à « 0 » pour connecter toutes les requêtes et les temps d'exécutions pour un certain temps Analyse avec pgBadger ou pgFouine : (fortement recommandè d’installer sous Linux) D’où une simple mise en analyse (logs) avec cette outil donne un certain nombre de mesures , on en cite :
  • 43. 43  Cependant on pourrait executer un certain nombre de script SQL afin de determiner les tailles des tables selon la longuer , la grandeur , frequence de lecture , frequence de modification… d’où l’optimisation pourrait se faire sur la base elle-même , et on a interet ainsi , à combiner ou enlevr les tables quasiment non utilisès , decomposer /fragmenter les tables a grades tailles/contenus pour une moindre surcharge , ce qui pourrait optimiser le dialoguer OpenERP – POSTGRESQL et par consequent toue la plateforme
  • 44. 44
  • 45. 45  Utilitaire de surveillance en ligne de commande des requêtes en cours, bloquées et en attente
  • 46. 46 3-Problèmes Reconnus : PostgreSQL  Problèmes des Fonctions stockées :  Domaines fonctionnels stockés sont des « Trigger »  Store trigger peuvent être de la forme :  Peut être très coûteux avec des paramètres erronés ou des fonctions lentes  Problèmes des Lentes Requêtes : Toutes les requêtes SQL 500ms + doivent être analysés  Utilisez EXPLAIN ANALYZE pour examiner / vous mesurer les requêtes et les vues SQL  Essayez d'enlever les parties de la requête jusqu'à ce qu'elle soit rapide, puis la fixer  Vérifier la cardinalités des grande « JOINs »
  • 47. 47  Stratégie d'évaluation de domaine par défaut : search ([('picking_id.move_ids.partner_id', '! =', False)]) Mise en œuvre en combinant les parties "id IN (....)"  Jeter un oeil à _auto_join dans OpenERP 7.0 'move_ids': fields.one2many ('stock.move', 'picking_id', string = 'Moves », _auto_join = True)  Aucune optimisation prématurée: ne pas écrire SQL, utiliser l'ORM toujours au cours du développement initial  Si vous détectez un point chaud avec charge-tests, pensez à réécrire les parties inefficaces dans SQL tout en s’assurant de : Faire des mécanismes de sécurité que vous n'êtes pas en contournant Ne pas créer SQL vecteurs d'injection utilisent des paramètres de la requête, → ne pas concaténer entrée de l'utilisateur dans vos chaînes SQL.  Problèmes des verrouillages personnalisés :  Toute sorte de mécanisme de verrouillage manule / files d'attente est dangereuses, surtout en Python  « Python Locks » peuvent provoquer des impasses qui ne peuvent être détectés et brisés par le système  Éviter, et si vous devez, utiliser la base de données « lock » Voilà ce que devrait emplois (ir.cron) faire: SELECT FOR UPDATE sur la ligne de travaux de cron → Le nettoyage automatique / presse → Balances bien et fonctionne en multi-processus
  • 48. 48 4-Recommandations & Conclusions :  Maitriser le framework :  Évitez les anti-modèles (Patterns) : Assurez-vous que vous comprenez vraiment le mecanisme browse() Assurez-vous d'utiliser correctement l'API de lot  Ne pas écrire SQL sauf si vous devez, ex : pour: Vues d'analyse,Fonctions de Hot Spot, name_search (), computed_fields (), ...
  • 49. 49
  • 50. 50  Installer & Utiliser les outils de Mesures de performances : La plupart des outils de mesures/tests déjà cités sont des packages Linux  Préférable d’installer toutes la plateforme sur un environnement Linux  Optimisation de l’utilisation serveur / Base :  En préciser les différents options de réglages déjà cité selon le besoin et l’utilisation  Environnement Linux beaucoup mieux conseillé  Conseil à propos le déploiement du PostgreSQL  Évitez déploiement PostgreSQL sur une machine virtuelle Si vous devez le faire, d'affiner le VM pour I / O!  Et toujours vérifier l'optimisation des performances de base de données PostgreSQL, elle est conservatrice par défaut