今日の練習 2019-01-25

夜のグリーンプールへ。

IMG_20190125_191847IMG_20190125_191859

  • Cr swim EN1 25min
    • HR 140 ゆっくり泳いでたのに高い。
    • なぜか右肩が痛くなった。
  • (rest)
  • Br kick +board 20min
    • 一瞬右膝の内側に痛みが走ったが、その後なんともなく。あぶなかった。
  • Br swim smooth 10min
  • Ba swim 15min
  • (rest)
  • dolphin kick +board 5min
  • Fly swim smooth 25m *6
  • Cr kick +board dash 25m

IMG_20190125_212814

IIJlabセミナー: 進化するロギング: デバッグのための古くて新しい技術

IMG_20190122_173812

ロギングはバグを特定するための古典的な手法である.ログとして記録してお
くイベントの品質が,そのままデバッグの効率に直結する.それにもかかわら
ず,従来のロギングでは開発者の経験と勘に基づいて
1) ログを出力するコード上の場所(where to log) と
2) 記録しておくべき情報 (what to log)
をアドホックに決定している.そのため,デバッグ時に必要十分な情報が得ら
れるとは限らず,デバッグを困難なものとする一因となっている.
本発表では,ログの品質を改善する「ロギングコード自動挿入」に関する最近
の研究成果を紹介する.ログの自動挿入はここ数年にわたって活発に研究され
ており,システムソフトウェア研究のトピックのひとつとなっている.既存研
究を概観したのち,発表者等が研究・開発を進めているロギング・ツールK9
について紹介する.K9 はマルチスレッド環境におけるエラー伝播を対象とし
ており,共有データを介したスレッド間でのエラー伝播の追跡を可能とする.
共有データを介したエラー伝播が発生すると,障害を起こしたスレッドのコン
トロールフローを遡っても,障害の原因となったバグにたどり着けるとは限ら
ない.K9 ではそのようなエラー伝播の追跡を支援する.実際に,K9 をLinux
カーネルに適用し,既知のカーネル・バグ 3 種の追跡が可能であることを確
認した.さらに,Linux のファイルシステム保守中に遭遇した未知の障害にも
適用し,バグの特定に有益であることを確認した.

IMG_20190122_174848IMG_20190122_175121

[2019-01-22 18:00]

  • 障害が発生したら(教科書的には): 再現→調査→対策
  • しかし:
    • そもそも再現がむつかしい。
    • 同じ実行環境が手にはいらない。
    • プライバシの観点からデータが手に入らない。
  • かわりのログを送ってもらいログを調査する。
  • しかし:
    • ログが膨大すぎて解析できない。
    • 肝心の手掛かりとなる情報がログにない。
  • 経験と勘に基づいたロギングが原因。
    • システムコールのエラー。
    • 例外的な処理。
    • 気分で入れてるだけ。
    • windows SOSP 2009
    • printf, log4j, syslog event tracing for windows (ETW)
  • 適切なログイングは難しい。
  • 専門用語:
    • logging too little: ログが少なすぎる
    • logging too much (redundant&trivial): 冗長だったり、あたりまえの内容だったり。オーバヘッド・ストレージ使用量が問題になる。
  • ロギングが研究テーマになったのは数年前から
    • 手動から自動へ
    • where to log?: どこに入れるか?
    • what to log?: どんな値を記録すればよいか?
    • what happend?: ログから障害発生の様子を自動抽出して障害の実行パスを類推する。
  • Errlog [Yuan+ OSDI'12]
    • どこでログを入れるか、入れわすれたところに自動でログを入れる。
    • 例外処理:
      • 実際にはログを取り忘れるケースが多い。250件の障害事例を調査。
    • error()を呼んでたらエラー処理というような判定をする。error()を呼ぶ条件式を集めて、ログを入れ忘れているところに追加する。プログラマは無能ではない前提。
  • SherLog [ASPLOS'10]
    • what happend? ログから実行パスを類推する。Sharはシャーロックホームズから。
  • LogEnhancer[ASPLOS'11]
    • 実行パスが類推できるように変数の値をロギングする。
  • K9ではLinuxをターゲットにした。
    • Linux as Infrastructure
    • Linuxは実用的・巨大・複雑なので、Linuxでつかえれば他のソフトでも使える。
  • 用語:
    • fault: =bug 誤りのこと バグがあっても踏まないと発症しない
    • error: バグをふんでおかしくなった状態
    • error propagation: おかしな状態は伝搬する
    • failure: 障害発生(クラッシュ・ハングアップ)
  • Palix:
    • Null: nullチェックもれ
    • Inull(Inconsistent null check): ポインタ参照(deref)したあとにnullチェック(意味がない)
    • Block: ブロックしてはいけないコンテキストでブロックする関数をよぶ
  • linuxにはだいたいいつでも700個くらいバグが残っている。
    • バグをつぶしても同じくらいバグが入ってくる。
    • 1行あたりのバグは減っている。
  • 簡単なバグだけではない
    • 関数にまたいだ問題
    • 割り込み(非同期)
  • Inter-thread error propagation
      • Btrfsでworker threadが例外時にdirtyフラグを落すのを忘れて
      • sync threadがBUG()を踏む
    • direct propagation: スレッド1が共有データを更新して、スレッド2が読む。
    • indirect propagation: スレッド1が共有データを更新して、スレッド2が読んで別の共有データを更新して、スレッド3が読む。
  • K9ではエラー伝搬を解析できるようにログを入れるが、linux規模のソフトでは正攻法は無理。
    • オーバヘッドを押える
    • 静的解析はしない
    • ポインタ解析はしない (やっても正確には分からないことが証明されている)
    • coding traditionを仮定して共有データをさがす。
      • 共有データはヒープに置かれる。
      • 共有データは構造体になっている。
        • そのなかのポインタ配列やリスト構造をみる。
        • リンクリストなどのデータ構造用のライブラリにも対応(対応しないとデータ構造を操作するだけの関数がログに出て呼び出し元が分からない)
    • indirect propagationはデータフローは追い掛けずに型レベルで推測する。
  • ファイルシステムにはバグが多いという論文がある and Btrfsは新しいファイルシステムなのでバグが多く残っているのでは? and 研究室の学生がBtrfsのメンテナ
  • Btrfsで未知のバグをK9で追い掛けた原因をつきとめられた (実証)
  • K9のオーバヘッドは、スループットで1.83%(平均)、CPU利用率で0.32%(平均)。
  • たまにスループットのオーバヘッドが少ないという論文があってもCPU使用率が高いケースがある。その場合はCPUに余裕がないとスループットが悪くなる。

[2019-01-22 19:16]

QA

  • Q: ログを入れたのはファイルシステムだけ?
  • A: yes。だがファイルシステムのコードから呼ばれている関数にもログが入っている。スケジューラとかメモリ管理とか。これら(sched,mem)にはバグが少ないという研究報告がある。クリティカルセクション内でログを吐かないようにすることで、よりオーバヘッドを減らせる余地がある。
  • Q: ロックには注目しないのか?
  • A: ロックの範囲を調べるのが簡単ではないのと、ロックが保護している変数を見つけるのも難しい。ロックもれがあった場合に困る。やってみたが良くなかった。
  • Q: K9の論文は公開されているか?
  • A: 投稿中。
  • Q: オープンソースにするのか? それとも企業に買収されるのを期待しているのか?
  • A: 日立との共同研究なので日立が買う可能性はあるが、オープンソースにする予定になっている。
  • Q: C以外の言語でもつかえるか?
  • A: LLVMの中間言語で解析しているので、言語に特化したものでなければいけるはず。

[2019-01-22 19:24]

IMG_20190122_194128

関連資料?

サンスター技研 くつ底補修材

サンスター技研 くつ底補修材を買った。安かったビックカメラでポチ。1512円。送料無料。

ハンズにシューグーを見に行ったらこれがあったので調べてみたら熱硬化型で、硬めの仕上がりになる・においがないということでこっちにした。ハンズも高いわけではなかったけど実店舗にもう一度行くのも面倒だし。

ちなみに補修じゃなくて補修。構造物になるものだから材料の材。

_1220082x_1220085x2

納品書は感熱紙だった。だからどうってわけではないが、めずらしい。

_1220089x_1220090x_1220091x_1220092x_1220093x

パッケージは収納とお湯につけるときの容器を兼ねている。

説明書

_1220094x_1220095x_1220096x_1220097x

チューブに穴をあける

_1220121x_1220122x

この時点ですでに手に補修材がついて指が黒くなった。ティッシュで拭いても指紋の間に入り込んで取れない。この指でドライヤーをさわるとドライヤーが黒くなったが加熱するまでは固まらないのでティッシュでごしごし拭きとったらok。

_1220130x

まずはちょっとだけ削れてきたヒールの補修をやってみる。

現状

_1220119x

紙ヤスリで削った

_1220120x

盛る。

_1220123x

ドライヤーで加熱する。風に押されて盛り上がってしまった。

_1220125x

表面が固まってくるとつやがなくなる。

_1220126x

3分くらいで中まで固まると書いてあったが心配なので5分くらい加熱した。中の温度がどのくらい上がるかはドライヤーの距離感にもよるし難しい。

つぎにソールが薄い靴のつま先の補修というか予防的に補修材を盛ってみる。

同じように盛って、

_1220127x

加熱する。

_1220128x

補修材は垂れるほど柔らかくはないが風を当てると変形するので狙った通りに固めるのはむつかしい。こういうこところはシューグーとかシューズドクターの方がやりやすそう。

1日履いてみた。だいたい1時間弱の歩行時間。

ヒールは飛び出してたところは削れて平になってた。

_1220145x

つま先は体重がかからないからかそれほど削れてない。

_1220147x

今日の練習 2019-01-20

IMG_20190120_120659

グリーンプールへ。長水路では大会をやっているが、どうやら長水路の可動床が1/18に故障したらしい。水抜き清掃まで一般開放なし。

スクリーンショット (277)

  • Cr swim up 200m
  • Ba swim 25min
  • Cr swim drill 5min
  • Cr swim 5min
  • (rest)
  • Br kick +board 20min
  • Br swim 5min
  • Fly pull +buoy 25m *4
  • Cr kick +board 25m *8
  • Cr pull +buoy EN2 5min

横山公園でもう梅が咲いてた。1本だけだけど。

IMG_20190120_120914IMG_20190120_095341

ドライヤー EN-NE38 購入

髪の毛短いしドライヤーなんてなくても死なないしってことで長いことドライヤーを使っていなかったが、案外安いことに気づいてポチった。

ヨドバシでマイナスイオン付きのやつでいろいろメーカーがあって悩んだがパナソニックのイオニティ(ionity)(EH-NE38-A)にした。1930円。価格.comみたら最安値だったのは2017年で1500円を切ってたし、最近では年末にamazonで1700円台で売ってたようなので、ちょっとタイミング外したくさい。

_1220098x_1220101x2_1220103x_1220105x_1220107x_1220109x_1220110x_1220111x_1220112x_1220113x

安いやつなのでCOLDボタンがなくてセットするときにはスライドボタンでCOLDにしないといけないのが不便ではあるが、特にこれといった不満はない。電源ケーブルも柔らかくてとりまわししやすい。しかし、turboって言葉はすっかりパワーアップする意味で定着したなぁ。たしか20年前に買ったドライヤーにもturboがあった記憶。

_1220117x

イオン吹き出し口をのぞくと針みたいなものが見える。ここで放電してイオンを生成してるんだろうか。つかってみるとにおいがするし。

_1220115x

吸い込み口は細かいメッシュになっている。

_1220116x

記事検索
月別アーカイブ
アクセスカウンター

    タグ絞り込み検索
    ギャラリー
    • 今日の練習 2019-03-18
    • 今日の練習 2019-03-18
    • 今日の練習 2019-03-18
    • FINA/CNSG Diving World Series 2019 Sagamihara,JPN
    • FINA/CNSG Diving World Series 2019 Sagamihara,JPN
    • FINA/CNSG Diving World Series 2019 Sagamihara,JPN
    Amazon
    楽天市場
    adby google
    LINE読者登録QRコード
    LINE読者登録QRコード
    • ライブドアブログ