Coder Social home page Coder Social logo

Comments (30)

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

はじめの準備

  • ssh接続できることを確認
  • scpで~/.ssh 以下に、デプロイ用のssh鍵を配置
  • configファイルに、git接続用のconfigを追加
  • vscode remote で接続する
  • .gitignoreを編集して、不要なファイル類をignoreする
  • gitユーザとメールアドレスを設定
  • .vscode/settings のファイルを作成し、カラーテーマを設定しておく(リモートだということがわかるように)
  • vscodeでcommitするファイルを確認してからcommit、Pushまで実施。
    • Pushできないときはssh鍵のpermissionが悪いかも
  • git pushされてきたことを確認したら手元にgit cloneして素材を持ってくる
  • リモート側からのpushが終わったら、mainブランチへのPushができないように設定しておく(事故防止)

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024
  • npm scripts類がざっと動く状態にして、いくつか動作確認。
  • gtopがうまくうごかないので一旦放置
  • htopうごかしながら、 1回目のベンチを適当に実施

15:16:01.765762 score: 1123(1162 - 39) : pass

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

datadogの準備をする

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

datadog 準備

  • apiキー発行 (organizationの鍵じゃないとダメかも)
  • datadogエージェントをインストール。
  • agentのログを確認しながら、datadog側にデータが来るのをまつ
  • datadog画面側で確認できたら、監視しながら再度ベンチマーク実施
  • 15:28:18.744797 score: 1135(1174 - 39) : pass
  • この時点ではプロセス監視はまだ入れてない。
  • datadogのプロセス監視用の設定を追加 (yamlを編集)
  • process監視もenableにしたので、再度ベンチ実施

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024
  • goアプリにdatadog入れてみた。動くかどうか確認のためベンチ実施
  • ちょっとラグがあるので注意。なんとか動かせてDatadog側でプロファイリングできるようになった。
  • 15:56:41.015815 score: 957(1000 - 43) : pass
  • ここまでの準備で1時間。練習しないと時間かかるか

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

image

image

  • get /api/isu が影響大きそうなことがわかるのでクエリもみてみる
  • どうやら、クエリも重たそう
  • SELECT * FROM isu_condition WHERE jia_isu_uuid = ? ORDER BY timestamp DESC LIMIT ?" がやる価値ありそう

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

DataGrip準備してなかったのでここで準備する。最初のコードリーディングの際に合わせてDBもちぇっくするので、その時に入れよう

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

SELECT * FROM isu_condition WHERE jia_isu_uuid = ? ORDER BY timestamp DESC LIMIT ?" がやる価値ありそう

  • isu_condition のDDLみてみると、IndexがPKしか無いことがわかる。
  • explainしてクエリをみてみる

explain SELECT * FROM isu_condition WHERE jia_isu_uuid = 'c88df01f-3424-46b4-9ecd-23f06ac1205e' ORDER BY timestamp DESC LIMIT 1

id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE isu_condition ALL NULL NULL NULL NULL 54070 Using where; Using filesort
  • 1行とるだけなのに、refが多すぎるのでindex貼れば解決しそう。filesortもかかってるので、複合Index。
create index isu_condition_jia_isu_uuid_index
    on isu_condition (jia_isu_uuid);

create index isu_condition_jia_isu_uuid_timestamp_index
    on isu_condition (jia_isu_uuid, timestamp);
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE isu_condition ref isu_condition_jia_isu_uuid_timestamp_index isu_condition_jia_isu_uuid_timestamp_index 144 const 992 Using where

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

下がった?微妙そう?

  • indexを複合じゃなくしたけどあんまりこれも上がらなかった。一旦おいておくか
  • 16:28:07.245851 score: 984(1028 - 44) : pass

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024
  • drop probabilityをもっと上げる
  • 0.95にしたらスコアが上がった 16:50:39.314109 score: 2363(2386 - 23) : pass
  • 0.98 にしたら更に上がった 16:52:44.512643 score: 9036(9038 - 2) : pass

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

ログ周りを触ったらスコアが減ったので戻す?

  • 16:58:04.798671 score: 7120(7124 - 4) : pass
  • 17:00:36.410813 score: 8806(8808 - 2) : pass

何度か実施しても振れてるのでわからず。いったんこのままで

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

DEBUGレベルのログがとまらない。なぜ? -> datadogの影響だった。

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

image

drop probabilityを下げたので、ボトルネックが変わった。

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

image

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

queryの方をみたかんじ、以下のクエリがつらい?改善できないか考えてみる

SELECT * FROM isu_condition WHERE jia_isu_uuid = ? ORDER BY timestamp DESC

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

ロジックをみてると、全件取得は不要なので、LIMIT 1 つければいけそうに見える。

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

2回実行して少し上がったようにも見えなくはない。

  • 17:13:37.759511 score: 9034(9036 - 2) : pass
  • 17:15:18.940794 score: 9358(9360 - 2) : pass

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

image

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

insertをbulk化したらスコアが少し上がった。実際に、insertのクエリ数も減ってる。
20:23:31.390590 score: 9898(9900 - 2) : pass

image

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

drop probabilityを少し下げ見てる

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

drop probabilityを少し下げ見てる
下げたらスコア落ちた。モット工夫しないと下げられないのか

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024
  • 色々やって1万こえた
  • 22:27:01.248673 score: 10158(10160 - 2) : pass

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

nginxのgzipは自分でビルドしないといけないのか、、、

https://hack-le.com/nginxgzip/

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

時間かかったので終了。できなかったことややるべきこととかをまとめたい

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

https://tech.mirrativ.stream/entry/2021/08/25/120426

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

初期構築で結構時間がかかってしまったので、手元からscpしたりansibleしたりできるような環境を準備しておくべき

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

何度か素振りして、初期の構築は2,30分かからないくらいにはできた。(datadogの導入もできる)

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

急に途中でスコアが半分くらい下がってしまったが原因不明。コミット戻してもスコア変わらず。なんで?

from isucon2022.

HirokiYoshida837 avatar HirokiYoshida837 commented on September 26, 2024

close

from isucon2022.

Related Issues (7)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.