Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

LUA – Optimisation des performances d’un serveur Live Update interne

Rappel sur LUA et PostGreSQL

Dans le cadre d’un projet d’intégration de SEP, j’ai installé un serveur LiveUpdate en interne. LiveUpdate est la technologie utilisée par les produits Symantec pour se mettre à jour par Internet (c’est l’équivalent d’un serveur WSUS chez Microsoft).

Dans la suite de ce billet, Live Update désigne le service de mise à jour et Live Update Administrateur (LUA) désigne le serveur interne de distribution des mises à jour.

Le client Live Update utilise une technologie PULL pour se connecter en HTTP et en FTP. Par défaut le client Live Update est configuré pour pointer vers les serveurs publics de Symantec. Il est possible de modifier ce comportement de manière à ce qu’il se connecte au serveur LUA interne en lieu et place des serveurs publics.

Le serveur LiveUpdate Administrateur utilise le moteur de base de données PostgreSQL . La version de PostgreSQL fournie avec LUA 2.x est la version 8.1(cf. site officiel PostGreSQL).

Remarque : Le support technique de Symantec recommande fortement à ses clients l’application de toutes les mises à jour du serveur LUA de manière à bénéficier de toutes les améliorations disponibles (notamment des améliorations apportées par la version 8.1 de PostGreSQL).

Le moteur PostGreSQL est configurable via le fichier « postgresql.conf » situé a la racine du dossier d’installation de LiveUpdate Administrator.

Tuning des performances PostGreSQL

Voici les principaux paramètres ayant une grande influence sur les performances de la base ainsi que les valeurs recommandées :

1. shared_buffers

Le paramètre shared_buffers détermine la quantité de mémoire utilisée pour la mise en cache des données. Certaines sources recommandent une valeur correspondant à 25% de la mémoire vive du serveur.

Par défaut la valeur du paramètre shared_buffers est de 32Mo avec LUA 2.2. Une valeur de 512 Mo permet d’améliorer les performances. Certains gros clients ont augmenté cette valeur jusqu’à 1024 Mo et on ensuite pû observer de grandes améliorations.

2. temp_buffers

Le paramètre temp_buffers n’est utilisé que pour le maintient des tables temporaires en mémoire.

Comme LUA 2.x ne dépend pas fortement de ces tableaux, certains clients ont réduit cette valeur de 2 Mo dans le cadre de leur mise au point.

3. work_mem

work_mem fixe la quantité maximale de mémoire à utiliser pour l’exécution d’une requête.

Le réglage de work_mem à 256 Mo a conduit à une amélioration des performances pour certains clients.

4. max_fsm_pages

Cette valeur doit être réglée sur le nombre maximum de pages de données (affichage Web) que vous voulez modifier ou supprimer. Une valeur de 20 000 a bien fonctionné pour certains clients.

5. wal_buffers

Une valeur de 256Kb devrait être suffisamment grande. pour une bonne utilisation de LUA.

6. checkpoint_segments

Les valeurs recommandées vont de 16 à 128 en fonction de l’espace disque disponible.

Par défaut, la valeur est de 3. Certains gros clients ont augmenté cette valeur à 30 et vu de grandes améliorations.

7. effective_cache_size

Effective_cache_size définit la taille du cache disque par rapport à la quantité de mémoire RAM disponible pour la mise en cache des données,

Il est recommandé de configurer la valeur effective_cache_size à 50% de la RAM du système (cette préconisation est valide si et seulement si le serveur est dédié au rôle LUA).

Par défaut, LUA 2.2 a effective_cache_size a une valeur de 128Mo. Certains gros clients ont augmenté cette valeur jusqu’à 2048 Mo et vu de grandes améliorations.

Exchange 2010 – Erreur “the execution of scripts is disabled on this system” lors du lancement d’un script powershell

Lors de l’exécution d’un script powershell (.PS1) sur un serveur Exchange 2010, alors que vous possédez des droits Administrateurs, vous rencontrez l’erreur suivante :

image

Par défaut, et pour des raisons évidentes de sécurité, l’exécution de script “Powershell for Exchange” est bridée. Afin de visualiser ce niveau de sécurité, il suffit de lancer la commande “Get-ExecutionPolicy” :

image

afin de se rendre compte que les droits sont positionnés à “Restricted” par défaut.

Les différents droits existants pour l’exécution de script sont les suivants :

  • Unrestricted
  • RemoteSigned
  • AllSigned
  • Restricted
  • Default
  • Bypass
  • Undefined

image

Il est alors possible d’autoriser l’exécution de script à l’aide de la commande “Set-ExecutionPolicy” et d’y ajouter la valeur désirée (nommée précédemment).

image

Mais comme l’indique alors le message lors du passage de la commande, le niveau de sécurité est dans ce cas abaissé. Ce qui peut poser problème. Si on désire autoriser momentanément l’exécution de script sans toucher au niveau de sécurité, il est possible de paramétrer l’environnement d’exécution juste pour ce lancement, avec un VBS par exemple, et qui servira de “lanceur” au script powershell.

1/ Le raccourci de lancement du Powershell for Exchange s’exécute comme suit :

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit –command            ".’C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1′; Connect-ExchangeServer -auto"

  • Lancement de l’exécutable –Command “appel du script RemoteExchange.ps1 permettant d’alimenter le Powershell avec les commandes pour Exchange 2010”; Connexion au premier serveur Exchange disponible

2/ Il suffit alors de rajouter ce type de commande supplémentaire :

  • Set-ExecutionPolicy -ExecutionPolicy Bypass –Force

Ce qui pourrait donner :

  • C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit –command            ".’C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1′; Connect-ExchangeServer -auto"; Set-ExecutionPolicy -ExecutionPolicy Bypass –Force
    3/ Une fois inclus dans un script VBS, cela peut donner :
  • Return = WshShell.run (“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit –command            ".’C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1′; Connect-ExchangeServer -auto"; Set-ExecutionPolicy -ExecutionPolicy Bypass –Force; MonScript.ps1; exit“)

    Le script “MonScript.ps1” sera alors exécuté avec les bonnes autorisations sans impacter les paramètres de sécurité du serveur de manière définitive.

    N.B.: il est possible de remplacer “-auto” par le nom d’un serveur Exchange spécifique permettant ainsi d’effectuer du “Remote Scripting” sur le serveur désiré.

N’hésitez pas à laisser un commentaire si ce tips vous a été utile ou bien si vous avez des éléments à ajouter !…