Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

メモリリークがある可能性がある #1913

Closed
syuilo opened this issue Jul 16, 2018 · 16 comments
Closed

メモリリークがある可能性がある #1913

syuilo opened this issue Jul 16, 2018 · 16 comments
Labels
packages/backend Server side specific issue/PR 🐢Performance Efficiency related issue/PR ❓needs more investigation A bug whose causes are unknown

Comments

@syuilo
Copy link
Member

syuilo commented Jul 16, 2018


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@syuilo syuilo added ❓needs more investigation A bug whose causes are unknown packages/backend Server side specific issue/PR labels Jul 16, 2018
@syuilo
Copy link
Member Author

syuilo commented Jul 18, 2018

様々な操作をした上でヒープを比較したりして調査しているけど、あまり手がかりはない
強いて言うなら https://github.com/syuilo/misskey/blob/master/src/daemons/server-stats.ts
が怪しい

@syuilo syuilo changed the title メモリリークがある可能性がある メモリリークがある Jul 18, 2018
@syuilo syuilo changed the title メモリリークがある メモリリークがある可能性がある Jul 18, 2018
@syuilo
Copy link
Member Author

syuilo commented Jul 19, 2018

調査した結果

  • 複数のヒープを採取して比較した
  • 謎の object が大量にメモリ上に残存していることを確認
  • これがメモリリークなのかどうかは判断できない(普通に使われている値の可能性もある)
  • Node.js内部で使われているものなのかMisskeyコードに由来するものなのかは不明
  • 上記の server-stats などのdaemon系を無効にしても発生する
  • オブジェクトがどこに起因するのかや、具体的な中身などは確認できなかった

@syuilo
Copy link
Member Author

syuilo commented Jul 19, 2018

「デーモン系の処理を無効 かつ どこからもリクエストが無い状態」で再度テストしてオブジェクトが増えるかどうか確認してみることにする

@syuilo
Copy link
Member Author

syuilo commented Jul 19, 2018

リークが起きているとしたら、クラスターのマスタースレッドではなく、ワーカースレッドで起きていそうだということがわかった

@syuilo
Copy link
Member Author

syuilo commented Jul 19, 2018

ワーカースレッドをインスペクトする方法がわからない

@syuilo
Copy link
Member Author

syuilo commented Jul 19, 2018

できた

@syuilo
Copy link
Member Author

syuilo commented Jul 19, 2018

MongoDB and/or Redisのコネクションプール辺りが怪しい

@syuilo
Copy link
Member Author

syuilo commented Jul 25, 2018

もう一度調べたけど、node.jsのインスペクタでMisskeyのプロセスを見ると、メモリを120MB使ってると表示されるのに、Linuxのtopコマンドでプロセスのメモリ使用率を見ると1.2GBってなってる

(ガベコレ発動させても、1.2GBから変化しない)

@syuilo
Copy link
Member Author

syuilo commented Jul 25, 2018

つまりMisskeyにメモリリークがあるというよりnode自体にある...???

@syuilo
Copy link
Member Author

syuilo commented Jul 28, 2018

ローカルでサイズの大きい画像を大量にアップロード(URLアップロードも)したりしたけどリークは無さそうだった

@syuilo
Copy link
Member Author

syuilo commented Jul 29, 2018

デーモン系の処理を無効にした上で、

・投稿がされない状態でもリークするか
・アクセスが無い状態でもリークするか
・ローカルユーザーの投稿がされるとリークするのか
・リモートユーザーの投稿がされるとリークするのか
・ローカルユーザーの投稿がリモートに配信される過程でリークするのか
・画像のアップロードでリークするのか

あたりを確認していきたい

@marihachi
Copy link
Contributor

関係がありそうなバグ見つけた
#2344

@syuilo
Copy link
Member Author

syuilo commented Aug 19, 2018

コネクションが無限に増えても、ユーザーがブラウザを閉じたりページを再度読み込みしたりすれば全て切断されるので、メモリリークとは関係ないかもしれない

@marihachi
Copy link
Contributor

そうなのか~

@AyaMorisawa AyaMorisawa added the 🐢Performance Efficiency related issue/PR label Sep 30, 2019
nokotaro pushed a commit to nokotaro/misskey that referenced this issue Nov 25, 2020
Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.796.0 to 2.799.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](aws/aws-sdk-js@v2.796.0...v2.799.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
@syuilo
Copy link
Member Author

syuilo commented Jun 9, 2023

@syuilo
Copy link
Member Author

syuilo commented Jun 9, 2023

ここの情報がいろいろ古すぎるので立て直す

@syuilo syuilo closed this as completed Jun 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
packages/backend Server side specific issue/PR 🐢Performance Efficiency related issue/PR ❓needs more investigation A bug whose causes are unknown
Projects
None yet
Development

No branches or pull requests

3 participants