J'ai créé un programme qui recherche la classe cible à partir du processus surchargé avec Java

introduction

J'ai essayé cet article pour connaître la charge sur mon application Le programme en charge a été trouvé.

https://qiita.com/tnakagawa/items/4d7d891af4913e2b5865

Cependant, comme il est difficile de taper des commandes à chaque fois, j'ai permis au programme d'émettre automatiquement des commandes. Il est publié sur github, donc j'espère que cela aidera quelqu'un. Je l'ai fait rapidement, alors comprenez bien qu'il est plein de sentiments pour le moment ...

https://github.com/ewai/check-java-process

Environnement de fonctionnement confirmé

CentOS 6.7 java8

Méthode d'exécution

Courir

Exécutez les opérations suivantes dans le système cible. Un répertoire de journal est créé dans le répertoire directement sous l'exécution et le journal y est édité. Je pense qu'il est nécessaire d'exécuter avec les mêmes privilèges que l'application.


java -jar check-java-process.jar 50 30 packageName

https://github.com/ewai/check-java-process/tree/master/build/libs Vous pouvez utiliser le pot qui est placé ici Vous pouvez l'importer dans eclipse en tant que projet gradle et le peaufiner.

paramètre

# Définir la valeur default À la fin
1 CPU(%) 50 Rechercher les processus qui dépassent cette valeur définie
2 temps de traitement(Secondes) 10 Rechercher les processus qui dépassent cette valeur définie
3 keyword Aucun Seuls les processus qui ont ce mot-clé dans stacktrace seront journalisés

Ce que vous faites dans le programme

  1. Trouvez le processus java
  2. Obtenez un thread dump de 1
  3. Trouvez le processus enfant de 1
  4. Faites correspondre 2 et 3 et émettez une trace de pile pour chaque processus enfant.
  5. Seuls les processus qui dépassent le seuil du paramètre.
  6. Seuls les processus qui incluent des mots-clés de paramètres.
  7. Sortie dans le journal.

c'est tout.

Recommended Posts

J'ai créé un programme qui recherche la classe cible à partir du processus surchargé avec Java
Comment gérer le type auquel j'ai pensé en écrivant un programme Java pendant 2 ans
[Java] J'ai essayé de créer un jeu Janken que les débutants peuvent exécuter sur la console
[Java] J'ai essayé de faire un labyrinthe par la méthode de creusage ♪
J'ai essayé de créer une application Web qui recherche les tweets avec vue-word cloud et examine la tendance de ce qui est écrit dans le profil associé
J'ai essayé de créer une API Web qui se connecte à DB avec Quarkus
[Introduction à Java] J'ai essayé de résumer les connaissances que j'estime essentielles
J'ai essayé de faire une authentification de base avec Java
Un programme qui recherche une chaîne de caractères, et lorsque la chaîne de caractères de recherche est trouvée, affiche la chaîne de caractères du début de la ligne juste avant la chaîne de caractères de recherche.
J'ai essayé de casser le bloc avec java (1)
Je voulais écrire un processus équivalent à une instruction while avec l'API Java 8 Stream
[JDBC] J'ai essayé de faire de l'accès à la base de données SQLite3 depuis Java une méthode pour chaque instruction SQL.
J'ai essayé de générer automatiquement une classe à convertir d'une classe de données en un bundle avec APT
[Petite histoire] J'ai essayé de rendre java ArrayList un peu plus pratique
J'ai essayé de créer une fonction de connexion avec Java
[Azure] J'ai essayé de créer une application Java gratuitement ~ Se connecter avec FTP ~ [Débutant]
J'ai essayé de créer un outil de comparaison des prix des produits Amazon dans le monde entier avec Java, l'API Amazon Product Advertising, l'API Currency (29/01/2017)
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
J'ai essayé de moderniser une application Java EE avec OpenShift.
[JDBC] J'ai essayé d'accéder à la base de données SQLite3 depuis Java.
J'ai créé un client RESAS-API en Java
Je veux renvoyer un type différent de l'élément d'entrée avec Java8 StreamAPI Reduce ()
J'ai essayé de créer un programme en Java qui résout le problème du voyageur de commerce avec un algorithme génétique
J'ai essayé d'interagir avec Java
Une histoire que j'ai eu du mal à défier le pro de la concurrence avec Java
J'ai essayé de créer une application Android avec MVC maintenant (Java)
J'ai essayé de générer une source de programme en langage C à partir de cURL
Comment identifier le chemin sur lequel il est facile de se tromper
J'ai essayé de créer une fonction de groupe (babillard) avec Rails
J'ai essayé d'exprimer les résultats avant et après de la classe Date avec une ligne droite numérique
J'ai essayé de créer une classe parent d'objet de valeur dans Ruby
J'ai essayé d'apprendre Java avec une série que les débutants peuvent comprendre clairement
[WSL] Solution pour le phénomène que 404 est affiché lors de la tentative d'insertion de Java avec apt (mémo personnel)
[iOS] J'ai essayé de créer une application de traitement de type insta avec Swift
[First Java] Créez quelque chose qui fonctionne avec Intellij pour le moment
Un programme qui calcule la puissance de 2 à 100
Lors de l'appel de sshpass depuis Java avec shell etc., il semble qu'il soit nécessaire d'avoir un chemin.
J'ai essayé de créer une application de conversation en Java à l'aide de l'IA «A3RT»
À partir de Java9, les constructeurs de classe correspondant aux types primitifs sont marqués comme obsolètes.
J'ai créé une classe qui peut utiliser JUMAN et KNP de Java
J'ai essayé de créer un exemple de programme en utilisant le problème du spécialiste des bases de données dans la conception pilotée par domaine
Une histoire sur l'exécution d'un programme qui copie des fichiers en Java à partir d'un fichier chauve-souris pour rendre le travail quotidien un peu plus efficace
Une histoire qui a souffert d'un espace qui ne disparaît pas même s'il est taillé avec Java La cause est BOM
J'ai essayé de créer une méthode qui applique plusieurs filtres à la fois avec l'API Java Stream. Cela vous convient-il?
[Java] J'ai installé JDBC et essayé de me connecter avec servlet + MySQL. (Il existe une version utilisant DAO / Bean)
Une note que j'ai renoncé à essayer de créer une annotation personnalisée pour Lombok
J'ai créé une application d'apprentissage automatique avec Dash (+ Docker) part3 ~ Practice ~
Initialiser le tableau Ruby avec 0 comme Java, c'est-à-dire définir la valeur par défaut sur 0
J'ai essayé de faire un jeu simple avec Javafx ① "Trouvons le jeu du bonheur" (inachevé)
[Java] J'ai essayé de me connecter en utilisant le pool de connexion avec Servlet (tomcat) & MySQL & Java
Jusqu'à ce que vous exécutiez un programme Java avec le SDK AWS local sur Windows
[Android] J'ai créé un écran de liste de matériaux avec ListView + Bottom Sheet
[Azure] J'ai essayé de créer une application Java pour la création d'applications Web gratuites - [Débutant]
J'ai recherché un framework léger qui répondrait au soudain "faites-le vite"
[Rails] J'ai essayé de faire passer la version de Rails de 5.0 à 5.2
java j'ai essayé de casser un simple bloc
Je l'ai fait en Java pour toujours rendre (a == 1 && a == 2 && a == 3) vrai