Reprenez la main sur vos applications SharePoint en mesurant et en optimisant la performance et la...

37
1 @Dynatrace Sous l’angle de la performance 10,11,12 février Antoine Ferté : [email protected] Rafael Portolano : [email protected] Consultants Dynatrace

Transcript of Reprenez la main sur vos applications SharePoint en mesurant et en optimisant la performance et la...

1 @Dynatrace

Sous l’angle de la performance

10,11,12 février

Antoine Ferté : [email protected] Portolano : [email protected]

Consultants Dynatrace

2 @Dynatrace

Sous l’angle de la performance

Démos live Retex SharePointA.P.M. Pourquoi ?

Principe de fonctionnement

Principales causes de lenteurs observées

Tips pour optimiser les pages lentes

Mesurer le ressenti de mes utilisateurs

Isoler les anomalies

10,11,12 février

[8 mn] [20 mn] [12 mn]

3 @Dynatrace

Manque d’accompagnement

Conception, ergonomie inadaptée

Performance, erreurs techniques

3 freins à l’adoption de

Priorité 1 : la satisfaction utilisateurs

4 @Dynatrace

Manque de visibilité

Des environnements techniques complexes

Des outils fonctionnant en sillot

Des situations de crise fréquentes

Etat des lieux

5 @Dynatrace

Deux questions essentielles

Mes utilisateurs rencontrent t-ils une insatisfaction ?

Quelle est l’origine du dysfonctionnement ?

6 @Dynatrace

Comment Dynatrace répond à ces 2 questions ?

DéveloppeurUtilisateur JAVA

Big DataAutre

Mainframe

Contenu tiersCDN

RéseauRéseau

ServeurDynatrace

7 @Dynatrace

Visibilité jusqu’au code source

8 @Dynatrace

L’impact de l’infrastructure sur les applications

DéveloppeurUtilisateur JAVA

Big DataAutre

Mainframe

Contenu tiersCDN

RéseauRéseau

ServeurDynatrace

9 @Dynatrace

Démo #1

Mesurer le ressenti utilisateur

10 @Dynatrace

Support: Décrivez-moi votre écran

User: [Echap], [F1], [F2], [F3] ...

Support: Non ! Ca c'est votre clavier ! L'écran, c'est la télé ...

User : Vous me prenez pour un C.. ou quoi ?

11 @Dynatrace

www.laval.ca

Exemple d’une visite utilisateur sur le site de Laval monitoré par Dynatrace coté client uniquement (pas d’agent applicatif)

12 @Dynatrace

Vue sur toutes requêtes web générées par mes utilisateurs.Présentation des temps de réponses et du poids des ressources.

Analyse de la visite dans la solution Dynatrace

13 @Dynatrace

Cartographie de la transaction et temps de réponse

14 @Dynatrace

Actions utilisateurs de ma visite (quelque soient les navigateurs web ou mobile)

15 @Dynatrace

Navigation descendante -> quelles sont les transactions générées par cette action

16 @Dynatrace

Séquence d’appel des ressources : plus 1,8 sec consommé pour charger le fichier « jquery-ui-accordion.js »

17 @Dynatrace

Vérification de l’impact de ce fichier JS sur les temps de réponse et le trafic : ce fichier est appelé 26 fois (sur toutes les pages

visitées, une optimisation semble nécessaire)

18 @Dynatrace

La visibilité transverse complète

Démo #2

19 @Dynatrace

Navigation sur un site de GED monitoré par Dynatrace (agent applicatif installé)

Navigation puis tentative d’ouverture d’un fichier Excel qui aboutit par une popup d’erreur

20 @Dynatrace

Pour chaque visite : chemin de navigation présenté lisiblement. Affichage des actions utilisateurs et des temps de réponse.

Analyse de la visite dans Dynatrace :

21 @Dynatrace

- Temps de réponse passés dans chaque tiers - Etat de santé : Applicatif, Process et des Hosts

Cartographie de ma visite : 

Cartographie de bout en bout de ma visite :

22 @Dynatrace

Détail de l’état de santé de mon Host

23 @Dynatrace

Descente dans le code pour retrouver l’exception apparue à l’ouverture de mon doc Excel : « Excel Services not running »

24 @Dynatrace

Visibilité sur les requêtes SQL appelées depuis la couche applicative

25 @Dynatrace

Vérification de la configuration sur la centrale d’administration des Excel

Service de mon WebApp

26 @Dynatrace

SynthèseLes problèmes peuvent venir de partout !

Côté client Des pages complexes, lourdes, des CDN peu performants (cache de contenu)

JavaScripts (séquence et poids) et compatibilité Browsers

Déploiement / configuration Crawl perpetual, Service de cache, MySite mal dimensionnés, …)

Code custom

27 @Dynatrace

Pages lentes : causes & solutions

Retours d’expériences

28 @Dynatrace

Custom Web Parts - Bad Coding #1

Tous les List Items sont remontés dans la requête la BDD

DO NOTint nbElements = SPContext.Current.List.Items.Count;

Item Count est chargé depuis la table AllUserData et mis en mémoire

DOint nbElements = SPContext.Current.List.ItemCount;

29 @Dynatrace

Custom Web Parts - Bad Coding - #2DO NOTfor (int itemIx=0;itemIx< SPContext.Current.List.Items.Count;itemIx++) { SPListItem listItem = SPContext.Current.List.Items[itemIx];// do something ... }

Chaque itération engendre 2 ExecuteReader ( count & accés aux proprietés )

Au final 202 appels SQL avec plus d‘1 sec

30 @Dynatrace

Custom Web Parts - Bad Coding - #2DOSPListItemCollection items = SPContext.Current.List.Items;foreach (SPListItem listItem in items) { // do something ...}

Une seule requête à la base pour remonter la collection

31 @Dynatrace

Composants (Ex. Grid Control) - #3

Chaque Cellule de grille exécute un select.493 au total !

Aucune de ces exécutions n’a été préparée

32 @Dynatrace

Call Asynchrone - #4

Async Threads occupés en I/O

33 @Dynatrace

1er Appel “DoAsyncCall” trés lent - #4

Web Service appelé par la WebPart

L’HttpWebRequest utilise la class ServicePoint

Le 1er Web Service met 5.8s à retrouver les infos

34 @Dynatrace

Les threads attendent ! - #4

On a 10 appels parallèles en tâche de fond qui attendent

Les autres threads passent leur tpsen “waiting” dans the ServicePoint

35 @Dynatrace

Solution: Change Defaults #4

36 @Dynatrace

37 @Dynatrace

Essayez gratuitement Dynatrace Free Edition

Téléchargement sur Dynatrace.fr