Hatena::ブログ(Diary)

ablog このページをアンテナに追加 RSSフィード

2018-06-07

PPS を計測する

インストール

$ yum -y install sysstat htop

計測

サーバ
  • iperf で listen する
for i in {5201..5204}
do
	iperf3 -s -p $i &
done

クライアント
  • 負荷をかける
iperf3 -c 172.31.**.*** -P 10 -t 60 -p 5201
iperf3 -c 172.31.**.*** -P 10 -t 60 -p 5201

性能測定する
$ sar -n DEV 5
Linux 4.14.33-51.37.amzn1.x86_64 (ip-172-31-**-***) 	06/07/2018 	_x86_64_	(64 CPU)

02:11:55 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
02:12:00 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:12:00 PM      eth0 345469.08  96451.41 3041362.50   6413.93      0.00      0.00      0.00

02:12:00 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
02:12:05 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:12:05 PM      eth0 344750.50  96154.31 3035024.22   6392.70      0.00      0.00      0.00

02:12:05 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
02:12:10 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:12:10 PM      eth0 345448.39  95719.28 3041171.64   6373.29      0.00      0.00      0.00

02:12:10 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
02:12:15 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:12:15 PM      eth0 345441.16  95467.47 3041113.27   6349.58      0.00      0.00      0.00

02:12:15 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
02:12:20 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:12:20 PM      eth0 344753.51  95941.88 3035055.92   6384.97      0.00      0.00      0.00

02:12:20 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
02:12:25 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:12:25 PM      eth0 345439.76  95952.81 3041095.64   6388.09      0.00      0.00      0.00
$ htop

2018-03-24

EC2 にログインしようとすると "Permission denied (publickey,gssapi-with-mic) " と怒られる

事象

EC2ログインしようとすると以下のエラーで怒られる。

% ssh -i ~/mykey.pem ec2-user@ec2-**-***-***-**.ap-northeast-1.compute.amazonaws.com
Permission denied (publickey,gssapi-with-mic).

原因

  • ユーザー名が間違っている。

SSH を使用してインスタンスに接続し、Host key not found in [directory]、Permission denied (publickey)、または Authentication failed, permission denied のいずれかのエラーが発生した場合は、AMI 用の適切なユーザー名で接続していて、なおかつインスタンス用の適切なプライベートキー (.pem)) ファイルを指定していることを確認します。MindTerm クライアントについては、[Connect To Your Instance] ウィンドウの [User name] ボックスにユーザー名を入力します。

適切なユーザー名は以下のとおりです。

  • Amazon Linux AMI の場合は、ユーザー名は ec2-user です。
  • Centos AMI の場合、ユーザー名は centos です。
  • Debian AMI の場合は、ユーザー名は admin または root です。
  • Fedora AMI の場合、ユーザー名は ec2-user です。
  • RHEL AMI の場合は、ユーザー名は ec2-user または root のどちらかです。
  • SUSE AMI の場合は、ユーザー名は ec2-user または root のどちらかです。
  • Ubuntu AMI の場合、ユーザー名は ubuntu または root. です。

それ以外の場合で、ec2-user および root が機能しない場合は、AMI プロバイダーに確認してください

インスタンスへの接続に関するトラブルシューティング - Amazon Elastic Compute Cloud

補足

  • EC2 ではなく ssh の話だが、AMI によってユーザー名が異なるので、思い込みで間違っていてこのエラーになることがあるのでメモ。

2018-03-03

MySQL クライアントのプロンプトを設定する

  • ~/my.cnf
[mysql]
prompt='\\v \\u: [\\d] \\R:\\m> '
  • 接続してみる
azekyohe% mysql -h aurora01.*********.ap-northeast-1.rds.amazonaws.com -u awsuser -p
Enter password:

(中略)

5.6.10-log awsuser: [(none)] 04:39> use mydb;
5.6.10-log awsuser: [mydb] 04:39>

参考

2018-02-14

Amazon Linux で iperf を使ってみる

EC2インスタンスを2つ作成して両方に iperf をインストールし、片方でiperf をサーバとして起動し、もう片方から iperf をクライアントとして実行してベンチマークを取る。


インストール

$ sudo yum -y install git gcc
$ git clone https://github.com/esnet/iperf
$ cd iperf
$ ./configure
$ sudo make
$ sudo make install
$ sudo ldconfig

計測

サーバ
$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
クライアント
$ iperf3 -c 172.31.30.119 -P 10
Connecting to host 172.31.30.119, port 5201
[  5] local 172.31.31.185 port 23094 connected to 172.31.30.119 port 5201
[  7] local 172.31.31.185 port 23096 connected to 172.31.30.119 port 5201
[  9] local 172.31.31.185 port 23098 connected to 172.31.30.119 port 5201
[ 11] local 172.31.31.185 port 23100 connected to 172.31.30.119 port 5201
[ 13] local 172.31.31.185 port 23102 connected to 172.31.30.119 port 5201
[ 15] local 172.31.31.185 port 23104 connected to 172.31.30.119 port 5201
[ 17] local 172.31.31.185 port 23106 connected to 172.31.30.119 port 5201
[ 19] local 172.31.31.185 port 23108 connected to 172.31.30.119 port 5201
[ 21] local 172.31.31.185 port 23110 connected to 172.31.30.119 port 5201
[ 23] local 172.31.31.185 port 23112 connected to 172.31.30.119 port 5201

(中略)

[SUM]   0.00-10.00  sec  24.5 GBytes  21.0 Gbits/sec   28             sender
[SUM]   0.00-10.03  sec  24.4 GBytes  20.9 Gbits/sec                  receiver

iperf Done.

参考

2017-12-10

MySQL Connector/J(JDBC Driver) で接続時に任意の collation_connection をセットする

MySQL Connector/J(JDBC Driver) で接続時に任意の collation_connection をセットする には以下の用に JDBC URL に「connectionCollation=utf8mb4_bin」のように設定すれば良い。

jdbc:mysql://aurora01.cluster-*******.ap-northeast-1.rds.amazonaws.com:3306/mydb?connectionCollation=utf8mb4_bin

参考

MySQL クライアントプログラム mysql、mysqladmin、mysqlcheck、mysqlimport、および mysqlshow は、次のように、使用するデフォルトの文字セットを特定します。

  • ほかの情報が欠如している場合、プログラムは、コンパイル時のデフォルトの文字セット (通常は latin1) を使用します。
  • プログラムは、オペレーティングシステム設定 (たとえば、Unix システムでは LANG や LC_ALL ローカル環境変数の値、Windows システムではコードページ設定) に基づいて、使用する文字セットを自動検出できます。ロケールが OS から利用できるシステムの場合、クライアントはコンパイル時のデフォルトを使用するのではなく、このロケールを使用してデフォルトの文字セットを設定します。たとえば、LANG を ru_RU.KOI8-R に設定すると、koi8r 文字セットが使用されます。したがってユーザーは、MySQL クライアントが使用できるように、自身の環境内でロケールを構成できます。OS 文字セットは、正確に一致するものがない場合は、もっとも近い MySQL 文字セットにマップされます。一致した文字セットをサポートしていない場合、クライアントはコンパイルイ時のデフォルトを使用します。たとえば、ucs2 は接続文字セットとしてはサポートされていません。

C アプリケーションは、サーバーに接続する前に次のように mysql_options() を呼び出すことによって、OS 設定に基づいて文字セットの自動検出を使用できます。

mysql_options(mysql,
              MYSQL_SET_CHARSET_NAME,
              MYSQL_AUTODETECT_CHARSET_NAME);
  • プログラムは --default-character-set オプションをサポートしており、ユーザーはこのオプションを使用すると文字セットを明示的に指定でき、クライアントがそれ以外のどのデフォルトを指定していても、それをオーバーライドできます。
MySQL :: MySQL 5.6 リファレンスマニュアル :: 10.1.4 接続文字セットおよび照合順序

Use characterEncoding=utf8mb4& for jdbc url

jdbc:mysql://x.x.x.x:3306/db?useUnicode=true&characterEncoding=utf8mb4
java - utf8mb4 in MySQL Workbench and JDBC - Stack Overflow

connectionCollation

If set, tells the server to use this collation via 'set collation_connection'

Since version: 3.0.13

MySQL :: MySQL Connector/J 5.1 Developer Guide :: 5.3 Configuration Properties for Connector/J