Dans cet article, je vais vous raconter comment vous pouvez faire face à un problème assez simple sur de grandes installations de produits Atlassian, en particulier sur Jira.
Méthodes d'analyse et de recherche des goulots d'étranglement:
statistiques
échantillonnage
profilage et traçage
Dans cet article, nous analyserons la trace de la requête, qui montre la quasi-totalité du segment de la requête, à savoir du début de la requête depuis le navigateur du client jusqu'à la transition vers le proxy inverse, s'il existe, vers le serveur d'application et depuis il aux caches, aux index de recherche Lucene, aux SGBD.
Un point important est qu'il est difficile d'analyser le système de la part du client, car il avait des exigences strictes pour l'utilisation des outils répertoriés dans les exigences.
Conditions
APM- ( ) , . — . , , open source . — , .
:
;
(On-Premise);
;
Elasticsearch (Opendistro);
JVM ( Atlassian , Java), javaagent;
HTTP c SQL-;
;
, , . , 12 , 1 . . , .
https://openapm.io/landscape, APM-. Glowroot, .
, , Cassandra ( ) Elasticsearch.
wget -c https://github.com/glowroot/glowroot/releases/download/v0.13.6/glowroot-0.13.6-dist.zip
2. mkdir -p /jira/glowroot/tmp, Jira , , Jira
chown -R jira: /jira/home/glowroot
3. setenv.sh jira, /jira/current/bin. , /opt/atlassian/jira/bin :
JVM_SUPPORT_RECOMMENDED_ARGS="-javaagent:/jira/glowroot/glowroot.jar ${JVM_SUPPORT_RECOMMENDED_ARGS}"
4. :
systemctl restart jira
:
tail -f {jira_installation_directory}/logs/catalina.out
127.0.0.1, glowroot , , admin.json. bindAddress 0.0.0.0 . contextPath - /glowroot.
reverse proxy ( nginx), :
location /glowroot {
proxy_pass http://127.0.0.1:4000;
}
Agent-Installation-(with-Embedded-Collector)
, jira.example.com/glowroot .
, .
, , , .
,
glowroot , 30000, . trace, .
, PostgreSQL, PostgreSQL IOPS.
— Jira , thread dump , .
stacktrace , .
stacktrace , createTemporaryTablesIfNeeded .
. .
entity engine, , .
, .
:
unlogged cwd_users PostgreSQL
, ? , , ? , ?
, Atlassian .
, .