tech_memo


FrontPage

memo

Host *
 ControlPath ~/.ssh/master-%l-%r@%h:%p
 ControlMaster auto
  • dstat -Tclmdrn

技術文書の書き方

要件定義

Linux


Python

Windows

  • Windows Sysinternals
  • Inside Windows Debugging

DB

Network

CS


エンジニアリング

Cluster

MySQL

Tips

InfiniBand?


Kubernetes

Docker

AWS

Pukiwiki

Tool


ハードウェア

CPU

Intel® Xeon® Processor E5-2600

圧縮アルゴリズム比較

BIOS


OS

Linux

Linux on Power System

Windows

Web


HTTP

Nginx

Apache

CGI

SoapUI

JMeter

Javascript

JQuery

プロファイラ

VSCode

Vim

zsh

tmux

screen

DB

ORACLE

MySQL

プログラミング全般

Python

Go (golang)

Groovy

C++

gdbでデバッグ

  • coreファイルのトレース表示
    gdb <実行ファイル> <コアファイル>
    
    (gdb) thread apply all bt  # コアファイルダンプ時に実行されていたスレッドのスタックトレースが表示される

Qt

プロファイル

C#

Java関連

Java

JBoss

WildFly?

WebLogic?

JMS

Gradle

Maven

Eclipse

Velocity

VBA

Tools

Other

jemalloc

仮想化

コマンドラインからJMSコンソールの値を取得するシェル

  • 下記はJBoss_HOMEで実行する場合
#!/usr/bin/env perl
use strict;
use warnings;

# Config
my @WebModules = qw(CompleteServletRemote HeartBeatServletRemote  EnterServletRemote StatusServletRemote ReportServletRemote);
my $TWIDDLE_PATH = './bin/twiddle.sh';

# Main
main();
exit;

# Logic
sub main {
   monitor_jboss_ejbs();
   monitor_jboss_webmodules();
   monitor_connections();
   monitor_threadpools();
}

sub monitor_jboss_webmodules {
   foreach my $web_module (@WebModules) {
       monitor_jboss_webmodule($web_module);
   }
}

sub monitor_jboss_webmodule {
   print "=============== Servlet ===============\n";
   my $web_module_name = shift;
   print "### Monitoring ${web_module_name} ###\n";
   my $twiddle_cmd = "${TWIDDLE_PATH} -q -s localhost get 'jboss.web:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/testmanager,j2eeType=Servlet,name=${web_module_name}' minTime maxTime processingTime requestCount errorCount";
   system $twiddle_cmd;
}

sub monitor_jboss_ejbs {
   print "=============== Remote EJB ===============\n";
   monitor_job_ctrl_service();
}

sub monitor_job_ctrl_service{
  my $ejb_module_name = shift;
   print "### Monitoring JobControlService ###\n";
   my $twiddle_cmd = "${TWIDDLE_PATH} -q -s localhost get 'jboss.j2ee:ear=testmanager.ear,jar=pid-ejb.jar,name=JobControlService,service=EJB3' InvokeStats";
  system  $twiddle_cmd; 
}

sub monitor_threadpools {
   print "=============== Thread Pools ===============\n";
   # monitor_system_threadpool();
   monitor_servletcontainer_threadpool();
}

sub monitor_system_threadpool {
   print "### System Thread Pool ###\n";
   my $twiddle_cmd = "${TWIDDLE_PATH} -q -s localhost get 'jboss.system:service=ThreadPool' ";
   system $twiddle_cmd;
}

sub monitor_servletcontainer_threadpool {
   print "### Servlet Container Thread Pool ###\n";
   my $twiddle_cmd = "${TWIDDLE_PATH} -q -s localhost get 'jboss.web:name=http-0.0.0.0-8080,type=ThreadPool' ";
   system $twiddle_cmd;

}

sub monitor_connections {
   print "=============== Connections ===============\n";
   monitor_jms_connection();
   monitor_jms_jca_connectionpool();
   monitor_oracle_jca_connectionpool();
   monitor_defaultds_connectionpool();
}

sub monitor_jms_connection {
   print "### JMS Connections ###\n";
   my $twiddle_cmd = "${TWIDDLE_PATH} -q -s localhost get 'jboss.messaging.connectionfactory:service=ConnectionFactory' ";
   system $twiddle_cmd;
}

sub monitor_jms_jca_connectionpool {
   print "### JMS JCA Connections ###\n";
   my $twiddle_cmd = "${TWIDDLE_PATH} -q -s localhost get 'jboss.jca:name=JmsXA,service=ManagedConnectionPool'  MaxConnectionsInUseCount InUseConnectionCount";    
   system $twiddle_cmd;

}

sub monitor_oracle_jca_connectionpool {
   print "### Oracle Connections ###\n";
   my $twiddle_cmd = "${TWIDDLE_PATH} -q -s localhost get 'jboss.jca:name=OracleDS,service=ManagedConnectionPool'  MaxConnectionsInUseCount InUseConnectionCount";
   system $twiddle_cmd;
}

sub monitor_defaultds_connectionpool {
   print "### DefaultDS Connections ###\n";
   my $twiddle_cmd = "${TWIDDLE_PATH} -q -s localhost get 'jboss.jca:name=DefaultDS,service=ManagedConnectionPool'  MaxConnectionsInUseCount InUseConnectionCount";
   system $twiddle_cmd;
}