$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

topにおけるCPUのsteal/niceは何か調べた

入門監視を読んだところ、CPUのstealやniceが何か分からなったため調べてみた。今回はそのメモを書いてみる。あまり自信はないので間違っていたら指摘してください。

steal

リソース制御でサービスレベルを確保せよ:実践! Xenで実現するサーバ統合(5)(2/3 ページ) - @IT が参考になった。

steal列には、ゲストOSがリソース要求を行ったにもかかわらずCPUリソースを割り当ててもらえなかった時間の割合が表示されます。steal列に0%以外の値が表示されている場合はCPU利用率閾値設定が行われているか、ほかのゲストOSあるいはホストOSが同時にCPUリソースを要求して「取り合い」の状態になっていることが考えられます。特に閾値を設定していないにもかかわらずこのstealの値が高いようであれば、そのホストサーバは全体として過負荷になっているか、前述のCPUマッピング設定がアンバランスになっている可能性が高いと判断できます

パフォーマンスが出ない状態でstealが占める割合が高い場合、VM周りで何か問題が起こっていることが考えられる。例えばホストOSが何らかの理由で異常に負荷がかかってしまっているとか。

もしstealが高い場合でAWSを使っているなら、ホストの障害が起こっている可能性があると考えて、インスタンスのstop -> startを試してホストを変えてみると治るかもなーと思った。

nice

niceの調査は結構難しかった。以下の文献が参考になった。

man topで参考になるのは

us, user : time running un-niced user processes
sy, system : time running kernel processes
ni, nice : time running niced user processes
...
13. NI -- Nice Value
The nice value of the task. A negative nice value means higher priority, whereas a positive nice value means lower priority. Zero in this field simply means priority will not be adjusted in determining a task's dispatch-ability.

このあたりを総合すると

  • CPUにおけるnice値はlow priorityなプロセスが占めている率
    • man topではuserはun-nicedと書いていると書いているので、CPUのnice値とは逆と考えたら良さそう
  • CPUのnice値を読み解くときは
    • CPU利用率が高く、かつCPUのnice値が高い場合、low priorityなプロセスが多いだけなので、優先度が高いプロセスが現れたらそっちにCPU使われる。そのため問題ないことが多い
    • CPU利用率が高く、CPUのnice値が低い場合、優先度が高いプロセスが多くCPUに余裕がない状態
  • 優先度の意味でのniceの値(niceコマンドで設定できる)は-20~19の値が取れる。-20が優先が最大で、19が優先度が最低(プラスとマイナスの意味が逆転してる)。

という感じ?ただこの文章を書いてみて次のことも同時に思った。

  • niceコマンドで優先度の意味のniceの値を-20(つまり通常のプロセスより優先度が高い状態)にした場合、そのプロセスはnicedなプロセスになってCPUのnice値も上がるんじゃない?
  • そうすると、次の文章は嘘かも? -> 「CPU利用率が高く、かつCPUのnice値が高い場合、low priorityなプロセスが多いだけなので、優先度が高いプロセスが現れたらそっちにCPU使われる。そのため問題ないことが多い」

この疑問はまた別途考える。

まとめ

今回は「入門 監視」を読んで疑問に思ったstealとniceの値について調べてみた。何か間違いがあったら教えてください。あとniceはやっぱりよく分かってない部分も多いのでそちらも知りたい。

「エンジニアメンター制度の効果的な運用を目指して」という発表をEngineering Manager Meetup #5でしました

「エンジニアメンター制度の効果的な運用を目指して」という発表をEngineering Manager Meetup #5でしました
Engineering Manager Meetup #5で「エンジニアメンター制度の効果的な運用を目指して」という発表をしてきました。

自分も久々の発表で緊張しましたが、自分の頭をまとめる良い機会になりました。他の発表も学びが多く、とにかく濃いミートアップでした。このような機会を与えてくれた運営の方に感謝です。また機会があったら参加・発表したいです!

以下は発表内容のまとめです。

発表内容

アジェンダ

  • はてなのチーム横断のエンジニアメンター制度とは
  • 実際にどのような課題があったか
  • どのように改善したか
  • 改善施策により最終的にどうなったか
  • 今回の施策を通しての気付き: マネージャ向けにも当たり前のことをする

イントロ

  • 自分がマネージャっぽい仕事をしていると以下のような課題を感じることがあった
    • 初めてマネージャになったけどまず何をしたらいいかさっぱり
    • 目標設定、1on1、評価などをやっているけど手応えがない
    • そもそもどうやって悩みや問題を解決していったら良いのか分からない
    • マネージャスキルをどう身につけたらよいか分からない
    • (Manager of Manager視点): マネージャスキルをどうやって横展開していけばよいのか分からない
  • はてなのチーム横断エンジニアメンター制度でも同じ課題が存在した
  • その課題をどう解決していったか紹介

チーム横断のエンジニアメンター制度とは

これです -> https://developer.hatenastaff.com/entry/2018/05/30/173000

実際にどのような課題があったか

  • そもそも課題があるのか?の検証から始めた
  • そのためにメンターをやっている人にアンケート
  • アンケートの結果、メンターが手応えを全く感じておらず、やはり課題があるという結論になった
  • 課題が残っていると、効果的にメンター制度が運用できない/メンターを増やせず組織はスケールしないと考え、取り組むべきであると結論づけた
  • アンケートを分析すると、4つの課題に絞り込めた
    • メンターとなった時、最初何をしたらいいかさっぱり
    • どういうスキルを身につければよいか分からない
    • メンター同士のつながりがなく、解決できない問題を相談できない
    • メンティーの役に立っているのかが判断できず、メンターが手応えを感じてない

どのように改善したか

  • 改善策を三つ実施した
    • マニュアル、推薦書籍、そして導入会
    • メンターグループ会
    • フィードバックアンケート
  • なぜこの施策が良いと考えたかや、どのように行ったかの詳細はスライド参照

改善施策により最終的にどうなったか

  • 再度メンターにアンケートを送り、役割ごとの手応えや、施策が実際役立ったかについてアンケートした
  • 役割ごとの手応えは、施策実施前にアンケートを送ったときより総じて向上した。施策の効果が出ていると実感
  • 施策の役立ち度合いとしては、特にメンターグループ会とフィードバックアンケートの評価が高かった
    • その他施策ごとの感想についてはスライドを参照
  • この施策を実施してから一年後、メンター数も8人増員し、大体二倍程度に増やすことが出来た。スケールをすることが可能になった

今回の施策を通しての気付き: マネージャ向けにも当たり前のことをする

  • 今回やった施策はメンバーにとっては当たり前のことばかり
  • 当たり前のことをマネージャ向けには出来ていなかった。なんとなく大丈夫でしょと思っていた
  • しかしまず当たり前のことをするだけでも効果があった
  • 画期的なものの導入だけでなく足元の整備も同時に大事
  • 今後もひとつずつ改善していきたい

採用手法の良し悪しを判断するための基礎知識を身に付ける - 「人事と採用のセオリー」を読んだ

今後採用に積極的に携わることになったので、じゃあ基礎知識を自分が身につけておかないと人事の人にも信頼されないよなと思い、社内の人事の方に紹介された「人事と採用のセオリー」という本を読んだ。

今の自分が知りたい情報に完全にマッチしていたため最高の本であった。人事とはどういう役割を担うかという簡単なサマリーや、採用を考える際の基本的な知識をざっくり学ぶことが出来たと思う。ネット上の記事ではいろんな採用の手法がどんどん話題になるけど、その良し悪しや自社へのマッチ度を判断するために必要な知識を得られたと感じる。

特に

  • 要員計画を立てた上で、採用計画はその枠の中の一つと捉える。要員計画を達成する手段は「採用」だけでなく「育成」「配置」「外部委託」などもある
  • 採用フローでの歩留まりの考え方
  • ポテンシャルを見抜くインタビューの手法
  • 優秀層を採用するために、採用担当者は優秀層のフォローに一番時間を使っている状態を作る

あたりの内容は非常に勉強になった。


今後は要員計画や採用計画についてもっと勉強していきたい。おそらくこの辺りをきちんと勉強することで、採用をより俯瞰的に捉えることが出来るようになり、より効率的な採用ができるようになりそう。何かおすすめの書籍 or 資料があったら教えてください。

読書メモ

* 人事の機能は、採用・育成・配置・評価・報酬・代謝の6つ 154、172 ※
    * 代謝とは転職などによる退出のコントロール
* 6つの機能を担う上で、個別最適にならないように「人事の一貫性」が大切 155
    * 一貫性の軸の理想は「事業」 177
        * 「安定・成熟事業型」と「変革・新規事業型」の考慮すべきポイント 190
    * ただし一貫性を担保するにはVUCAという予測困難である要因によって難しいので、「容易に変わらないものは何か?」を徹底的に考える必要がある 226
        * 事業戦略、社会的な使命やビジョン、経営者の考え方や価値観、組織文化、従業員の特性など
* 人材フローの検討で決める主な要素 265
    * 採用比率(新卒/中途/非正規社員の割合など)
    * 外部流動性(退出を良しとしていくか、長く組織に所属してもらうか)
    * 内部流動性(キャリアチェンジの可否など)
* 人材フローの考え方の図 274
    * プレイヤー層とマネジメント層
    * 即戦力中途採用n%、内部昇進n%、退職率n%、ポテンシャル中途採用n%、新卒採用n%、退職率n%
* 内部流動性と外部流動性はトレードオフ 301
    * 異動の頻度を高めると社内に定着する。異動させなければ転職する
* 6人前後が一般的な人がマネジメントできる人数 331
* 人事業務全体の重要度としては、採用が50%、配置が25%、残り25%が育成、評価、報酬、代謝 518
    * 「人は大人になるほど変われない」
* リストラせずに組織のピラミッドを適切な状態に保つには、「退職率のマネジメント」が重要 614
    * 求心力施策と遠心力施策 638
        * 求心力: 組織の一体感や愛社精神を高揚させるイベントや評価・認知活動、社内業務に役立つ能力開発への支援など
        * 遠心力施策: 社外を含めた選択肢を検討させるキャリア研修、ポータブルスキル開発への投資など
* 成長を促すためには、まず「人材の内部流動性を高める」ことが重要 681
    * 異動や昇格/降格
* 配置を考える上での重要な要素 681
    * 「配属される人と配属先の構成員・チームとの相性」がが最も重要(日本人的)
        * 相性の良さには「同質」と「補完」の二つがある 714
        * 同質は類似な人を組み合わせること。似ているので短期間で分かりあえる。
        * 補完は異質だが合わせると強い特性の人を組み合わせること。理解するまで時間がかかるが、そこを超えると生産的なコンフリクトが起こる
    * 他には個人の能力や志向、職務の適性など
* メンターを組み合わせるときは、非公式に新しい人に「メンター候補」を示し、自分に合いそうな人を選ばせると良い 791
* 評価は、たまに社員がうちの評価制度こんなのだったなと気づく程度の、空気のような存在でも良いのではないか 882
* 絶対評価と相対評価のメリット・デメリット 973 ※
    * 絶対評価
        * メリット: 期初に設定した目標達成度=評価となり分かりやすい。(難易度調整が必要だが)評価者の間ですりあわせをする必要度が少なく、作業の手間が少ない
        * デメリット: 高い評価を即報酬に結びつけると報酬総額が上がりすぎる。評価社の評価傾向(甘辛など)がそのまま反映される、目標難易度の調整を失敗すると不公平が生じる場合がある
    * 相対評価
        * メリット: 評価高=報酬UPとなりわかりやすい、評価社の評点傾向を補正する機会がある、目標難易度を事後に調整しやすい
        * デメリット: 目標を達成しても他社との相対比較でもっと達成度の高い人がいれば評価が低くなる、評価作業に負荷がかかる
* 評価のリアルタイムフィードバックは、日本人の国民性に合わない可能性がある 1097
    * 直接のネガティブ・フィードバックを好まないため、ネガティブなことを言う場をあえて提供する必要がある
* モチベーションの源泉には、組織型、仕事型、職場型、生活型がある 1191
    * 組織型: 社内の社会的なステータスや、社内の裁量権・意思決定権など
    * 仕事型: 仕事そのものの目的、個人に蓄積できる知識・技術・人脈など
    * 職場型: 組織・上司の評価、仲間との協働の喜びなど
    * 生活型: 家族の期待と応援、休みのとり方の自由度など
* 昇給/降給制度の設計のメリット・デメリット 1214 ※
    * 絶対額決定性: グレードごとにテーブルを作成しておき、定期評価によって次期の報酬が決まる
        * メリット: 全体の人件費のコントロールが容易、給与の下方硬直性が無い、成果を出したら大幅に昇給させられる、給与計算など事務的な作業が楽
        * デメリット: 厳密なグレード設定が必要、給与を下げることが多くなるためモチベーションダウンにつながることも
    * 昇給額決定性: 現在の報酬からの昇給率が定期評価によって決まる
        * メリット: 給与が緩やかに上昇するため社員が容易に報酬を予想可能、時間をかけて知識やスキルを積み重ねるのに合わせて昇給するので実感に合いやすい
        * デメリット: 現在生じている報酬と職務難易度の不一致を一気には是正しにくい、給与の下方硬直性がある(減給を制度に組み込むと緩和される)、成果を出した際にも大幅な昇給をさせることが難しい、総額人件費の予測が難しい

### 6章以降の採用系
* 要員計画とは、「一定期間において必要な人員を確保するための計画」。採用計画はその枠の中の一つとして捉える 1260 ※
    * 要因を確保する手段は「採用」だけでなく、「育成」「配置」「外部委託」などの手段もある
        * 配置転換は最も簡単でコストも掛からない
        * 育成はコストは抑えられるが、時間がかかり即効性がない
        * 採用はコストも人材リソースも必要だが、うまくやれば即効性が高い
        * 外部委託は、表面上のコストが膨らむが、繁閑の激しい業務では中長期的にコストを抑えっられる可能性がある
    * これらを考慮して、採用以外で獲得できない人員や採用での獲得が望ましい人員について採用計画を立てる
* 求める人物像を設定するには 1278
    * 自社の事業や組織を分析し導く演繹的アプローチ。
    * 自社で成果を上げている人材を分析し、彼らが持つ能力や性格や志向を抽出し、人物像を導く帰納的アプローチ
    * これらを組み合わせる。事業環境が安定しているなら帰納的アプローチが有力、近い将来これまでと異なる人材が必要となりそうなら演繹的アプローチが有力
* 求める人物像の構成要素は最小限に絞るほうが良い 1342
    * 構成要素が多いと、対象が狭まりすぎる、そもそも採用できない、多様性が減少し変化対応力が衰えるなどデメリットがある
* PULL型とPUSH型の採用プロモーション 1375、1388 ※
    * PULL型: 広く公募し向こうから来た人をジャッジ
        * メリット: 効果的に多くの人数にリーチ、志望度は高く自体率が比較的低い
        * デメリット: 自社のファン以外にリーチしにくい、大量応募に対する時間的・労力的コストがかさむ
    * PUSH型: ターゲットを特定し会社側からアプローチ
        * メリット: 自社の採用ブランド以上の人材を採用できる可能性がある、ファン以外にもリーチできる
        * デメリット: 志望度が低く辞退率は比較的高い、きめ細かいフォローに寄る動機づけや引き留めが必要
* PULL型では「求める人材のみを集める」ようにしないと大変。採用広告などではその内容で候補者が自分で会社に合っているか判断できるようにしないといけない 1407
    * リアルに仕事の実情を伝えたほうが良い
* リアルに実情を伝えるときには、まず興味を持ってもらうために関心を引く事を言った上で、次にリアルな現実も伝える 1438 ※
* 究極のPUSH型=リファラルリクルーティング 1455
    * 採用の重要性や自社の求める人物像などを説明し、自社に知人や後輩などを紹介してもらう
    * 「最終的に落ちるかもしれないのに知人を自社に紹介する」のは心理的なハードルが高いので、インセンティブなどで動機づける必要がある
* 選考プロセスは「歩留まり」「ステップ」「コンテンツ」の3つの要素を、採用ブランドや採用環境、採用方針などに応じて決めると良い 1495
* 歩留まりとは「内定率」「受験率」「書類通過率」「筆記通過率」「面接通過率」「途中辞退率」「内定辞退率」。事前予測と実績を比較することで採用状況をモニタリングできる ※
    * それぞれの計算手法は 1522
    * それぞれの目安は 1526
    * 改善するための注意点は 1533
* ステップとは選考のプロセス、コンテンツとは選考で使うツール 1536
    * ステップ: 選考回数、実施期間、選考過程など
    * コンテンツ: 面接、筆記試験など
* ポテンシャルを見抜くインタビューをするためには、「過去のエピソードを聞く」「わかりやすいエピソードを選ぶ」「ディテールを深掘りする」 1595〜1641 ※
    * わかりやすいエピソードに関しては、
        * 人と関わって頑張ったことを聞く。組織で仕事する上で重要となる、人と関わるときの行動特性や思考特性が分かる
        * 順風満帆なエピソードより苦労した話の方が、成果を生み出した際のその人の実際の貢献が分かる。(順風満帆なものはラッキーなことも多い)
        * 「短期間」のエピソードよりも「長期間に渡る出来事(習慣)」のエピソードを聞く。その人の再現性のある特徴が分かる
    * ディテールの深掘りでは「役割」「程度」「動機」の三方向から掘り下げる
        * 役割: 環境とその中での役割。どのような人と一緒にやったか、どういう風土・文化のチームや組織だったか、指揮命令系統はどうか、業務分担や目標はどうなっていたかなど
        * 程度: その人がやったことの難易度や希少性の情報。どれくらいの期間か、何人くらいが関わって、どのような苦労があり、どのくらいの貢献をしたか
        * 動機: そのエピソードの自分にとってのモチベーションリソースが何か。エネルギーの源泉を知ることで、自社の仕事においても同様に成果を上げるために頑張ってもらえるかを判断
* 優秀層を採用するために、採用担当者は優秀層のフォローに一番時間を使っている状態を作る 1833 ※
    * フォローするときには、内定者の不安や価値観を聞き出し、それに対して不安を解消する内容を答える。もちろん不安通りなら正直に答えていく 1886
    * タイプに応じてアプローチを変える 1967
    * 候補者が自社を選ぶ理由と、候補者が自社を辞退する理由を引き出し、もつれている部分があれば解いておく 1970
    * 意思決定スタイルに応じてアプローチを変える(論理型、統合型、決断型、柔軟型) 2050