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


SSL/TLS

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;
}