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
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)
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)
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
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 (), ...
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