食べ終えた。ワイシャツ完走中なので、洗濯機の稼働が終わるまで茶の間のソファーで待機。Apple TVでいろいろ見ながら待つ。でも寝落ちするかも。アラームはセットした。
北の果てでポンコツ教員してます。。。
born in Sapporo in 1972
he/him
Sapporo > Rishiri > Nemuro > Kitami
teaching at a high school
- - - - - - - - - - - - - - - -
ActivityPubで繋がるFediverseこそ世界の情報と連帯の新たなインフラとしてどんどん発展してほしい。Fedibirdに寄付することでその発展に貢献したい。
Fediverse以外ではInstagramを利用▶︎Fedibird支援の課金勢(11,000円/年)▶︎Colaboのサポーター会員(60,000円/年)▶︎Tweetbotを生んだTapbotsに深く感謝しているのでIvoryも激推しの重課金勢
食べ終えた。ワイシャツ完走中なので、洗濯機の稼働が終わるまで茶の間のソファーで待機。Apple TVでいろいろ見ながら待つ。でも寝落ちするかも。アラームはセットした。
このアカウントは、notestockで公開設定になっていません。
こういう状況のときに、大きいサーバ……というか、リモートフォローの多い、生きたユーザーをたくさん抱えたサーバは、処理量が多くなるので、そこがネックになりやすい。
webもかなり重くなるので、リモート投稿を受け付けるプロセスと、直接の利用者がAPI利用するプロセスをわけておくと、APIの応答性を守れたりするよ。
あとmstdn.jpでよく発生していたと思うけど、負荷が高まってくると画像のアップロードがコケるようになるんだけど、これもバックグラウンド処理があるからで、分離しておくと安定した動作を確保できる。fedibird.comでやってるよ。
まあそんな感じで、多少ソフトウェアの機能を調整したり、どうプロセスを分割して、どこにどのぐらいのリソースを割くようにするか調整するなど、運用って工夫次第なんだ。
あけおめ負荷試験もそうだし、地震も、他鯖の詰まりもそうだけど、そういうのを貴重なデータにして、仮説を立てておいて結果を検証し、改良を重ねて知見を積み上げていくんだよ。
で、ボトルネックは改善すると別の場所に移動するので、あとはバランスとりかな。
misskey.ioはピーキーなサーバなので、そのへん難しいだろうね。構成変更したときにバランスが崩れやすい。ま、任せるしかないけど! がんばえ!
fedibird.comの場合、ingressキューが詰まる現象というのは見たことがなくて、基本的にdefaultキューが処理仕切れなくて溢れるよ。
でも元凶はingressキューからdefaultキューに投げられる大量の配送処理なので、ingressキューをわざと絞り込んで、処理を遅延させて負荷を軽くすることはできる。
defaultの処理が追いつかなくて死にそうだったら、一時的にingressキューを止めちゃうっていう手もあるよ。
特定のサーバからの処理がキツければ、たとえばlow_priority_ingressキューを別に作って、そこで処理件数を制限しながらゆっくり処理する。で、pumaの方でmisskey.ioから来たActivityだけlow_priority_ingressに積むって感じ。
ま、fedibird.comでは今回、流れてくるものなら全力で処理する方針だけどね。
このingressキューは、mastodon.socialが大量流入で人口爆発したときに生み出されたやつで、これで調整するようにしたらしいよ。重くて動かない状態から、サーバ内動作はなんとかなる、というところまで回復させたりね。
いまのMastodonはリモートから配送されてきた投稿について、まずmastodon-web(puma)が受け取って、送信元の身元確認などを行ったあと、ingressキューに積む。
ingressキューで順番に処理していくんだけど、重複を無視したりして、新規投稿ならデータベースに投稿データとして保存する。
で、この保存した投稿データを内部で配送する。配送はdefaultキューに積んで、順番に処理する。フォローしている人のホームとかリスト、公開タイムライン(連合やローカル、ハッシュタグ)などに差し込む処理ね。
タイムラインに差し込まれるときに、redisのpub/sub channelsを使って、ストリーミングで繋がっているブラウザ・クライアントに結果を流し込む処理を行う。ストリーミングはnode.jsで動いている本体とは別のプロセスが処理するので、redisを仲介にして分離されている。
新規投稿じゃない場合、たとえば絵文字リアクションとかお気に入りなら、ingressキューのワーカーの段階でredisに通知をpubしてストリーミング経由でブラウザ・クライアントに流す。
そういう感じ。
で、もの凄く大量の処理が必要なときに、どこがボトルネックになるかってことを見極めるのが重要なのね。
Mastodonの管理画面でmisskey.ioのとこみると、fedibird.comの場合でフォロー合計46,237って出るんだけど、これは延べ人数。
たとえばしゅうまい君をfedibird.comからフォローしている人は1,186いるんだけど、しゅうまい君の投稿はそれぞれ1回だけmisskey.ioからこちらに送られてきて、それをこちらで1,186人のフォロワーに配る仕組みになっているのね。
だからユニークユーザー数も重要で、こちらは15,156。
15,156人分の溜まっている投稿を受け取って、46,237人に配るわけ。
fedibird.comの場合、フォロワーへ配る他に、各種の購読の処理が加わる。一般的なMastodonサーバでも、ハッシュタグのフォローの処理は加わる。
実際にmisskey.ioの15,156人から24時間にどのぐらいの投稿が配送されてくるのか調べると、1月2日の24時間でみると2,908人が行った29,354件の投稿になる。この数字も面白いね。
ちなみに、misskey.ioの配送の中には投稿だけじゃなくて絵文字リアクションとか投稿削除とかフォローリクエストとか承認とか、いろんなものが混じっているはずなので、投稿件数ではないよ。リアクションの割合は多そうだねえ。
このアカウントは、notestockで公開設定になっていません。
帰宅後最初の夕食はセイコーマートのホットシェフとんかつ弁当。付属のたれではなく塩をふって、ご飯には韓国海苔。でっかいサラダボウルには高知のゆずポンをかけて、わかめスープには増えるワカメ増量・スライス長ネギ・とろろ昆布。これらを氷結ストロングで流し込む。自宅に帰ってきた感満載の夕食。
冷蔵庫を開けたらドライブ旅行前に飲み残して冷蔵庫に入れていた日本酒の器があった(ラップはかけた)ので、ちびちび飲みながら旅の後片づけをしている。味はそんなに悪くなってないと思う。
年末年始の家族間のあれやこれやと世間社会の時事事件のあれやこれやと常からのあれやこれやとが重なって今メンタルが滅滅の滅になってるんだけども状況からして逆に普通にこれが正常だとも思ってるから全然大丈夫✌️
まあ我が家は我が家で親子関係よくはないよ 親父も昔は癇癪で物投げたりぶん殴ったりしてきたから 私が殴り返したり包丁向けたり(その時皿洗い中でたまたまあったんだもん…)してたら気づいたら丸くなってた 長期単身赴任に出て物理的距離を取ってくれたのも機能不全には変わらないけどプラスマイナスまあプラスだったなと思う
父は自分の実家に滞在中も配膳とか風呂掃除とかやってたし…でも母方の叔父・従兄弟や私の兄、父の弟なんかは父がそうしている間居心地悪そうに目を逸らすか全く気づかない素振りで座っているかだったからやっぱり行動だけじゃ無視されるし伝わらないんだと思う 父自身もたぶん「女性陣だけに働かせまい」っていうのは自分個人の強固な意志で思想としてやっていた節ある 左翼だから…
親戚の集まりで女性陣が立ちっぱなしで働き通しのなか男連中は座って飲み食いするだけっていうイヤあるある、我が家の父はそれを嫌ったのか、母方の田舎に滞在中はご飯どきの配膳の手伝いや家中の掃除や色々な手伝いを(普段祖母が一人暮らしで手が回ってないからってのもあるけど)めちゃくちゃ積極的主体的にやる父親なんですけども、そういう男親の姿を見てさえうちの兄はなーーーんにも手伝いしなかったからなかなか行動で示して現状打破!みたいなのは難しいんだろうなと思ってる いや兄は兄で義姉の実家ではよく働いてるってんなら父の目論見は成功なんだろうけどどうなんだろう…無い気がするんだよなそれは…
このアカウントは、notestockで公開設定になっていません。