ablog

不器用で落着きのない技術者のメモ

2020-01-01から1年間の記事一覧

PostgreSQL メモ

テーブルのオブジェクトIDを調べる postgres=> SELECT 'public.pgbench_accounts'::regclass::oid; oid ------- 16566

S3 から Aurora MySQL へ LOAD したメモ

AWS

インストール mysql Aurora MySQLとS3間でデータをロード&アンロードする - ablog sysbench Amazon Linux 2 に sysbench をインストールしようとすると、libmysqlclient_r.so.16 とlibmysqlclient_r.so.16 が必要と怒られる - ablog 準備 データを生成する $…

DMS CDC のソースとして PostgreSQL のリードレプリカは利用できない

AWS

You can use an Amazon RDS for PostgreSQL DB instance or Read Replica as a source for AWS DMS. You can use a DB instance for both full-load tasks and for change data capture (CDC) for ongoing replication. You can use a Read Replica only for…

VACUUM FULL 実行中のロックのとりかた

Aurora PostgreSQL で VACUUM FULL 実行中のロックのとりかたを確認したメモ。 Writer で VACUUM FULL 実行 postgres=> vacuum full pgbench_accounts; Writer で VACUUM FULL 実行中のテーブルを参照 postgres=> select count(*) from pgbench_accounts; # …

RDS PostgreSQL から Aurora PostgreSQL に論理レプリケーションする

RDS PostgreSQL から Aurora PostgreSQL に論理レプリケーションでレプリケーションしたメモ。 手順 設定 RDS PostgreSQL のパラメータグループで rds.logical_replication=1 に設定して、再起動する。 rds.logical_replication=1(on) に設定されているこ…

iperf でパケットサイズを指定する

iperf でパケットサイズを変更する。-l オプションで指定できる。 $ iperf3 -c 172.**.**.36 -P 48 -t 1800 -i 60 -l 1 CloudWatch メトリクス クラアント サーバ OS性能メトリクス sar で PPS を確認。 rxpck/s: 受信パケット数/秒 txpck/s: 送信パケット数…

性能試験で見るべきポイント

スループットの計測などで想定通りのスループットが出ない場合の確認ポイント。 USEメソッドや時間ベース分析で科学的にボトルネックを特定する。 エラーが発生した場合はログから原因を特定する(どのコンポーネントでのエラーが根本原因か特定する)。 ス…

yum を実行すると "Error: rpmdb open failed" と怒られる

yum install を kill してから再実行しようとしたら、"Error: rpmdb open failed" と怒られた。以下の対応で解決した。 rpmdbが壊れる原因 CentOSでYumコマンドを実行したときに、下記のエラーで yum コマンドが失敗しました。 yum がバックグラウンドでロッ…

PostgreSQL ログにクエリログを出力し、CSV ログは出力しない設定

log_destination=stderr に設定すると CSV ログは出力されない。 設定例 DBパラメータグループで以下を設定 log_destination=stderr # postgresql.log に出力するが、csv には出力しない log_statement=all # DDL、DML など全てを記録 log_min_duration_stat…

一定間隔で pg_stat_statements を tsv に出力

一定間隔で pg_stat_statements を取得して tsv に出力する。 PostgreSQL に接続する。 $ export LANG=C $ psql "host=aurora-postgres117.cluster-******.ap-northeast-1.rds.amazonaws.com dbname=mydb port=5432 user=awsuser" 10 秒間隔で pg_stat_state…

psql で PostgreSQL にクエリを定期実行する

書式 クエリ \watch 秒数 例 select b.usename, trunc(a.total_time) "total_time(s)", a.calls, trunc(cast(a.total_time as numeric) / a.calls, 6) "avg_time(s)", a.query from pg_stat_statements a join pg_user b on a.userid = b.usesysid where b.u…

psql で PostgreSQL にクエリを定期実行する

書式 クエリ \watch 秒数 例 select b.usename, trunc(a.total_time) "total_time(s)", a.calls, trunc(cast(a.total_time as numeric) / a.calls, 6) "avg_time(s)", a.query from pg_stat_statements a join pg_user b on a.userid = b.usesysid where b.u…

PostgreSQL の性能分析ツール

qiita.com pgstatsinfo.sourceforge.net

Postgresのdouble precision型を四捨五入したい

メモ qiita.com

PostgreSQL で nextval() のスループットを検証する

準備 PostgreSQL に接続する。 $ psql "host=aurora-postgres117.cluster-******.ap-northeast-1.rds.amazonaws.com dbname=writer port=5432 user=awsuser" シーケンスを作成する。 create sequence seqtest1 start with 1 increment by 1 cache 1; create …

後で読む「マネージメントに必要なことは全てゲームから学んだ」

自分が今まで読んだことのあるチームマネジメントの記事の中で最も価値のある記事。これはチームマネジメントに関わる人は読むべき https://t.co/hPTtrlOBbw— Sho Shimauchi (@shiumachi) November 30, 2020

Web レンダリング Pros/Cons

Rendering on the Web | Google Developers

Y氏鬼モットー

「競合の動き」よりも「顧客価値」を、 「短期的な結果」よりも「長期的な価値」を、 「自チームのための行動」よりも「組織全体のための行動」を、 「大がかりな分析や検討」よりも「計算されたリスクとスピード」を 価値としてるエンジニアです。 左記の事…

AWSのサービス名について

AWS

The pattern is that utility services are prefixed with AWS, while standalone services are prefixed by "Amazon".Services prefixed with AWS typically use other services, for example: AWS Elastic Beanstalk, AWS OpsWorks and AWS CloudFormation…

RDS や Aurora の設定変更で再起動が必要なもの

AWS

Aurora Modifying an Amazon Aurora DB cluster - Amazon Aurora [Settings for Amazon Aurora] - [Downtime notes] 列を参照 RDS Modifying an Amazon RDS DB instance - Amazon Relational Database Service [Settings for DB instances] - [Downtime note…

S3 Intelligent-Tiering について

AWS

従来は、アクセス頻度の高いオブジェクトを"STANDARD"に/アクセス頻度の低いオブジェクトを"STANDARD_IA"に配置する、という設計を行っていたかと思います。 しかし、アクセス頻度がどのくらいかを長期的に予測して運用することは非常に困難だったのではな…

S3 ストレージクラス分析を設定してから表示されるまでにかかる時間

AWS

S3 ストレージクラス分析を設定してから表示されるまでにかかる時間はモニタリングのグラフは24-48時間、30日以内/30-45日/45-60日/60-90日/90-180日/180日以上というライフサイクル単位がそれぞれの日数経過後と思われる。 After you configure a filter, y…

Aurora MySQL でクラスター作成後に後から変更できない設定

AWS

マネジメントコンソールでクラスター作成と変更の画面を見ると以下のような感じ。 マスターユーザー名 VPC サブネットグループ 暗号化キー バックトラック

Amazon Linux 2 に Tanel Poder の 0x.tools をインストールする

インストール sudo yum -y install git gcc git clone https://github.com/tanelpoder/0xtools cd 0xtools/ make sudo make install 使ってみる 適当にプロセスを実行する。 $ yes >> /dev/null & [1] 26464 psn $ psn -p 26464 -G syscall,filename Linux P…

Pgpool-II で詳細にログ出力する

Pgpool-II で詳細にログ出力してみる。 ログ出力 /var/log/pgpool.log Oct 29 09:52:35 ip-***-**-4-52 pgpool[30235]: [34-1] 2020-10-29 09:52:35:, pid:30235, proc_name:CHILD, db_name:writer, user:awsuser, app_name:psql, line_num:17, LOG: stateme…

nginx でレスポンスタイムをログに記録する

nginx のログにリクエスト処理時間を記録したい場合、LogFormat で $request_time を指定する。 ログ出力 /var/log/nginx/access.log **.0.3.*** - - [29/Nov/2020:14:15:07 +0000] "GET / HTTP/1.1" 200 3520 0.000 "-" "Mozilla/5.0 (Macintosh; Intel Mac…

Apache のログにレスポンスタイムを記録する

Apache のログにリクエスト処理時間を記録したい場合、LogFormatで %D(マイクロ秒)、%T(秒)で指定する。 ログ出力 /var/log/httpd/access_log **.0.3.*** - - [29/Nov/2020:13:56:07 +0000] 260★マイクロ秒(%D) 0★秒(%T) "GET / HTTP/1.1" 403 3630 …

Amazon Linux 2 で 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 nethogs sudo yum -y install gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 ncurses* git clo…

Aurora ストレージの自動リサイズについて

AWS

投稿日: Oct 15, 2020Amazon Aurora データベースクラスターに割り当てられたストレージスペースは、クラスターからデータを削除すると動的に減少するようになりました。ストレージスペースは、既に最大サイズの 128 テビバイト (TiB) まで自動的に増加する…

MySQL でショート/ロングトランザクション実行中のインデックス作成の影響

MySQL (5.7 InnoDB) で本番稼働中にインデックス作成すると、対象テーブルにショートトランザクション実行中の場合は並行でできるけど、ロングトランザクションが実行中*1の場合は Waiting for table metadata lock (synch/cond/sql/MDL_context::COND_wait_…