今日の記事

今日の記事

Macが度々固まってたのが直ったみたいです

仕事で使ってる会社Macが度々レインボーマウスになってしまうので、対策しました。 対策後10日ほど経ちますが、一度も症状出ていないので、効いたと思われます。

マシンの仕様など

OS X EL Capitan
バージョン 10.11.6

MacBook Pro (Retina, 13-inch, Late 2013)
2.4 GHz Intel Core i5
メモリ 8 GB 1600 MHz DDR3

状況

突然レインボーマウスがぐるぐるして、EmacsChromeやiTerm2やアクティビティモニタが反応しなくなる。
マウスは動くし、Dockのマウスオーバーも反応するし、ウィンドウを前面に持ってきたりはできるけれど、それも調子に乗ってると無反応になっちゃう。

アクティビティモニタも固まってるので、どのプロセスがおかしいか、とかもわからない。

観察

あらかじめTerminal.appでtopコマンドを実行しておく。もう1つTerminal.appのウィンドウを開いておく。
すると、上記現象が発生したときに、
distnoted
というのがCPUを4コア全部食ってるのが見えた。

launchdでdistnotedを定期的に終了させる - @znz blog
なるほどねぇ。distnotedは殺しちゃえばいいのか。

ということで、ひとまず、「もう1つ」のほうのTerminal.appで

killall -9 distnoted

したら、レインボーカーソル状態を脱出した!

観察2

別の日に同じ状態で使ってたらまたレインボーカーソルになった。
が今度はTerminal.appも固まっててニッチもサッチもいかず。
この時は電プチ。

対策

やっぱ自動で定期的にkillしないとダメだ、ということで、
launchdでdistnotedを定期的に終了させる - @znz blog
のとおり、

~/Library/LaunchAgents/local.killall.distnoted.plist

というファイル名で、

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>local.killall.distnoted</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/killall</string>
        <string>distnoted</string>
    </array>
    <key>StartInterval</key>
    <integer>600</integer>
</dict>
</plist>

こういう内容のファイルを作って、

launchctl load ~/Library/LaunchAgents/local.killall.distnoted.plist

した。

ちなみに、上記を修正、反映するときはこうする。

launchctl unload ~/Library/LaunchAgents/local.killall.distnoted.plist
launchctl load ~/Library/LaunchAgents/local.killall.distnoted.plist

その後

幸せに暮らしましたとさ

今日の記事

コンテナ化のベストプラクティスとアンチパターン

Best Practices and Anti-Patterns for Containerized Deployments - DZone Cloud

Containerization Best Practices

1. Start by Targeting the Right Kind of Application

アプリのスケールとか

2. Consider Team and Human Capabilities

DevOpsスタイルのチーム能力に投資すること。
SREエンジニアが本番デプロイやスムーズな運用ができるように投資すること。
これらに注意を払わないことは、失敗するための確実なレシピです(!)

3. Adopt Pure Open-Source Kubernetes

でないと、その独自オーケストレーションの仕組みに、将来にわたってずっとバインドされちゃう。
プレインバニラの純正Kubernetesを使いましょう。

4. Work Out The Enterprise Integrations

single sign-on とか。
モニタリングとか。

5. Stay Conversant with Kubernetes Changes

SaaS-based managed Kubernetes serviceを使うのも手です。

6. Incrementally Iterate

Have Patience

Containerization Don'ts

1. Choosing the Wrong Kind of Application

2. Neglecting Enterprise Integrations

3. Neglecting to Build a Customized Continuous Delivery/Continuous Integration Pipeline Architecture

4. Locking Yourself Into an IaaS provider's Kubernetes or Serverless Computing Services

5. Not Dealing with Multi-Cloud Management

6. Not Making Investments from Both a Developer and Operations Standpoint

今日の記事