動かざることバグの如し

近づきたいよ 君の理想に

横浜の猫カフェぷちまりーに行ったら猫ハーレムで癒やされた件

2021年2月8日追記

PuchiMarry横浜元町店は閉店してしまいました。😢😢😢😢😢😢😢😢

以下過去記事 ほかのぷちまりー店もいいから是非

唐突だが、癒やしを求めて猫カフェに行ってきた。

都内にもいろんな猫カフェがあるが、今回は横浜に用事があったのでその近辺で探したところ、猫カフェぷちまりーという場所を見つけたので行ってみた。

正式名称は 猫カフェPuchiMarry横浜元町店 というところ (11:00-20:00(最終入場19:30))

www.puchimarry.com

横浜駅から地下鉄で元町・中華街駅へ 後述するが、迷わなければ徒歩10分以内で行けるので割と近い。

料金

料金は以下の通り。最低入室時間30分+ドリンク代がかかるので実際には950円〜からとなるが、都心にしては安いほうだと思う。あと充電器とWifiは完備してある

入室料(10分毎)
最低入室時間30分
200円
ドリンク飲み放題 350円
平日フリータイム
(ドリンク飲放題付き)
2300円
土日祝フリータイム 2500円

流れとしては、

  • 玄関で靴を脱ぐ
  • 受付で店員さんに料金の案内をされる
    • このときに簡単な猫に対する注意事項をうける(無理にだっこしない等
  • いざ癒やし空間

箇条書きレポ

  • 時間帯によって違うんだろうけど、この時の猫ちゃんはかなり活発だった
    • ずっとおもちゃで遊んでくれる
  • 基本的に子猫が多い
  • 中の雰囲気がとても良かったし清潔だった あと店員さんの対応も非常に良かった

もうあとは文で語るより画像載せたほうが伝わるやろ感

膝の上乗ってくれた かわいい

f:id:thr3a:20190721231635j:plain

めっちゃネコパンチされた かわいい

f:id:thr3a:20190721231620j:plain

ネコによって好きなおもちゃが違う。店内にはいくつか用意されてたので好きなおもちゃを使える かわいい

f:id:thr3a:20190721234841j:plain

一度掴んだら離さなくて大変だった けどかわいい

f:id:thr3a:20190721231631j:plain

おとなしい猫ちゃんもいる。この子は窓際でひなたぼっこをしている猫 かわいい

f:id:thr3a:20190721234846j:plain

とまあ総括するとめっちゃ可愛くてあれよあれよと癒やされているうちにあっという間に時間になってしまった。

ちゅーる(別途料金)でおやつをあげることも出来るようなので、また来ようと思った。

ぷちまりー横浜元町店への行き方

最寄り駅は横浜中華街とかある「元町中華街駅」なので楽なのだが、問題はここからでGoogleMap曰く徒歩でほぼ直進4分とわかりやすい表示なのだが、行く途中で迷いやすいポイントがある。

首都高の下の橋を渡る。ここまではいい

f:id:thr3a:20190721231612p:plain

問題はここで、Google Mapだと川沿いにすぐ右折だが、そっちに行っても癒やしはない。もう1本先の賑やかな道路の方を右

f:id:thr3a:20190721231602p:plain

すると右手にぷちまりーの看板がある。この建物の2階である

f:id:thr3a:20190721231607p:plain

公式アカウント

OpenCVビルドメモ

sudo apt-get update
sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install -y python2.7-dev python3.6-dev python-dev python-numpy python3-numpy
sudo apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev libjasper-dev
sudo apt-get install -y libv4l-dev v4l-utils qv4l2 v4l2ucp
sudo apt-get install -y curl
sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev



cmake -D WITH_GSTREAMER=ON -D WITH_LIBV4L=ON -D BUILD_opencv_python2=ON -D BUILD_opencv_python3=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

MySQLでToo many connectionsの原因クエリ特定の対処法

環境

症状

max_connectionsの設定を大きくしているのにもかかわらず、なんらか悪いSQLが走ってしまってテーブルがロックしてしていまい「Too many connections」エラーになる。

対応方法

まずは焦らずロックの原因になってしまっているSQLを(あとからでもいいので)特定できるように保存する

先に詰まってるクエリ一覧をバックアップ

mysql -p  -e 'show full processlist' > sql_list.txt

fullをつけないとSQLが省略されてしまうので注意

次にいったん全クエリをkillしてToo many connectionsを解消する。以下のコマンドを実行

mysql -p  -e 'select concat("KILL ",id,";") from information_schema.processlist;' -s

するとKILL プロセスIDをリストがバーっと出力される。

concat("KILL",id,";")
KILL 202718241;
KILL 202718240;
KILL 202718239;
KILL 202718238;
KILL 202718237;
KILL 202718236;
(略)

これをコピーして対象のMySQLサーバーにログインしてコピペ実行すれば一旦は全クエリが中止される。

そして最初に保存したsql_list.txtを確認して、悪いSQLを特定していく おわり

蛇足

現在のコネクション数 show processlistの行とほぼ一致するはず

show variables like "%max_connections%";

MySQLのコネクション数を増やす設定

mysql> set global max_connections = XXXX;

CPU数が多いとTensorflow&kerasの機械学習が遅い件

概要

どういうわけか、CPUが多いサーバーだと学習に時間がかかるんじゃないかという話があった。そんなことないやろと思いつつ、公平にAWSベンチマークを撮ってみたが、やはりCPU数が多ければ多いほど遅くなってしまう。。

検証環境

nvidia-dockerを使ってCUDAの環境を構築し、その中でkeras公式レポジトリ内のexampleコードを実行して掛かった時間を計測する。

ちなみにgithubのレポジトリを使うとそれらがスクリプト化されている。

git clone https://github.com/thr3a/gpu.git
cd gpu
make build
make benchmark1 CPUS=0-1 # 使用するコアをCPUSで渡す デフォルト0のみ

babi_rnn.pyを実行したときのベンチマーク結果

FacebookのbAbIデータセットを用いた学習 自然言語処理系のはず

CPU数1個の場合

  • かかった時間 8分44秒
  • 1エポックあたりの平均 25秒

CPU数2個の場合

  • かかった時間 7分23秒
  • 1エポックあたりの平均 21〜22秒

CPU数4個の場合

  • かかった時間 7分37秒
  • 1エポックあたりの平均 22秒

CPU数8個の場合

  • かかった時間 8分06秒
  • 1エポックあたりの平均 24秒

結果2コアが1番速く終わることになる

cifar10_cnn.pyを実行したときのベンチマーク結果

いわゆる画像分類

CPU数1個の場合

  • かかった時間 5分18秒
  • 1エポックあたりの平均 31秒

CPU数2個の場合

  • かかった時間 4分14秒
  • 1エポックあたりの平均 25秒

CPU数4個の場合

  • かかった時間 4分40秒
  • 1エポックあたりの平均 27秒

CPU数8個の場合

  • かかった時間 5分11秒
  • 1エポックあたりの平均 30秒

これも2コアが一番速かった

結果

2つのベンチマークを表にすると以下

babi_rnn.py cifar10_cnn.py
1コア 8:44 5:18
2コア 7:23 4:14
4コア 7:37 4:40
8コア 8:06 5:11

うーんなにかUbuntu側の設定の問題なのか、Tensorflow(or keras)の仕様なのか、、謎

mysqlslapでMySQLサーバーの負荷テストをサクッと行う

環境

実はMariaDBにも同じコマンドが入っていたので仕様同じで使えるはず

やりたいこと

MySQLサーバーの負荷テストを「手軽」に行いたい

やれやれまたツールの選定作業か、、と思って探していたらどうも公式がツールを「mysqlslap」という名前で出しているらしい。てか入ってた。サンキューイルカ

公式ドキュメントいわく、

mysqlslap は MySQL サーバーのクライアント負荷をエミュレートし、各段階のタイミングをレポートする診断プログラムです。複数のクライアントがサーバーにアクセスしているかのように作動します。

とのこと。ポイントは「自動で負荷用のダミーDB、SQL」を生成してくれるところだと思う。

インストール

mysql-clientインストールしたら勝手に入ってると思う

実行

基本構文は以下

time mysqlslap \
--user=root \
--password=pass \
--engine=innodb \
--concurrency=10 \
--iterations=20 \
--auto-generate-sql \
--auto-generate-sql-load-type=mixed \
--number-char-cols=20 \
--number-int-cols=20 \
--auto-generate-sql-write-number=100000

各オプションの説明は以下

  • --user ユーザー名
  • --password パスワード 今回はローカル対象だが、別ホストを対象にテストをする場合は--hostが必要
  • --engine=innodb ストレージエンジン myisamとか
  • --concurrency 同時接続数 多くのユーザーからアクセスされていることを想定するならここの値を増やす
  • --iterations SQLの実行を何回行うか
  • --auto-generate-sql SQLを自動生成する
  • --auto-generate-sql-load-type=mixed INSERTとSELECT、UPDATEのコマンドをそれぞれ行う
  • --number-char-cols 1レコード内のVARCHAR型のカラム数
  • --number-int-cols 1レコード内のINT型のカラム数
  • --auto-generate-sql-write-number 最初にダミーデータを用意する際、レコードをどれだけ用意するか デフォルトだとかなり少ないので設定推奨

他にもオプションはいっぱいあるので公式ドキュメントをご覧くださいとしかいいようがない

実際に負荷テストする前にSQLを確認したい

オプションに --only-print をつけて実行するとSQLがバーっと術力される。

工夫すれば自前SQLでテストもできるらしいが、サクッとやるぶんにはauto-generate-sqlでも十分だと思った。