Ask questions, find answers and collaborate at work with Stack Overflow for Teams. Explore Teams Collectives™ on Stack Overflow Find centralized, trusted content and collaborate around the technologies you use most. Learn more about Collectives

Content-Length: 342166 | pFad | http://b.hatena.ne.jp/a2ikm/tcp/
以下の記事です。 tech.pepabo.com TCP our of memory memory pressure モード net.ipv4.tcp_mem 以上の三つの詳細を扱ったエントリです。TCP で大規模なトラフィックを扱っているサーバを扱われている場合、問題がないかどうかを確かめてみるとよいかと思います。 本文長いです。何に気をつけたらいいんでしょう? プラクティカルな話だけをまとめると、以下の4行です。 memory pressure モードに入ってしまうと warning です TCP out of memory が出てしまうと critical です 監視は /proc/ 以下のファイルを見ましょう チューニングは net.ipv4.tcp_mem で行いましょう LVS はどうなの? LVS でロードバランシングしている場合は、TCP スタックを通らないため TCP o
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 概要 目的 gRPCはDocumentにあるように以下の特徴があるかと思います。 protocol buffer のようなインターフェース定義語 (IDL) から生成されたコードを利用してRPCができる HTTP/2で通信することができ、リクエストとレスポンスをそれぞれ分割できる 多言語に対応している しかし、この記事ではこれらの機能の紹介ではなく、gRPCの仕組みを理解することを意図しています。 なぜそれを意図したかというと普段の開発でgRPCを利用しているものの、どのような仕組みでRPCが実現できているのかイメージが持てていなかった
完全に消費税に負けた... 今日も小ネタです。 一般に、以下のようなことを調べる時 netstat や ss などのツールは便利です。 あるポートがリッスンされているか知りたい あるコネクションに実際に通信があるか知りたい MySQLサーバなど外部プロセス/サーバにコネクションが貼られているか知りたい でもコンテナ環境では、そんな余計なツールは入っていない!!!ことも多い。 そんな時でも、 /proc ファイルシステムはほぼ間違いなくマウントされているはずです。 なのでそこを直接見ることも検討しましょう。 /proc/net/tcp(6) を眺める コンテナのネットワークに直接入るには、 nsenter などを使うことができます。今回はすぐ用意できる環境があったので Haconiwa ですが、 Docker などで置き換えて試してください。 $ ps auxf ... root 13252
This article was first published on Cloudflare blog: When TCP sockets refuse to die Accompanying scripts While working on our Spectrum server, we noticed something weird: the TCP sockets which we thought should have been closed were lingering around. We realized we don't really understand when TCP sockets are supposed to time out! In our code, we wanted to make sure we don't hold connections to de
TCP socketではwriteの後すぐにcloseしてはいけない。 相手側に全てのデータが届いてからcloseする必要がある。 shutdown で書き込み側だけハーフクローズするとよい。 相手側がcloseしてから、こちらをcloseする。相手側がcloseしたことは、readを呼んでブロックさせておくと、読み込みバイト数==0 つまりEOFになったことでわかる。
By Rawpixel GitLab.comのエンジニアであるクレイグ・ミスケル氏は、顧客から報告された「gitのリポジトリからpullを行う際に発生したエラー」が、切りのいい時間にとらわれがちな人間性によるものだと判明したことについて、エラーを改善するまでの手順を6つのステップに分けて紹介しています。 6 Lessons we learned when debugging a scaling problem on GitLab.com | GitLab https://about.gitlab.com/2019/08/27/tyranny-of-the-clock/ ミスケル氏は、GitLab.comの顧客から「Git pullのエラーが断続的に見られる」という報告を受け取りました。報告されたエラーメッセージは以下の通り。 ssh_exchange_identification: con
今日は socat コマンドのご紹介です。 表題の通り、コマンドラインだけで簡易プロキシサーバーを立てることができるというものです。 さっそく見ていきましょう。 インストール 起動してみる SSLを試してみる まとめ インストール 今回は ubuntu 環境にインストールします。 $ sudo apt-get install socat これだけで準備OKです。 起動してみる その前に簡単に使い方を説明します。 $ socat <options> <address> <address> 一つ目の address が入力で、二つ目の address が出力と思ってもらえればいいです。 具体的には以下のように指定します。 $ socat tcp-listen:80,reuse,fork tcp-connect:localhost:8080 これだけで80番ポートで待ち受け、8080へ中継する動
Repro インフラチーム (SRE + 分析基盤) の伊豆です。今回は、Repro のデータ収集基盤で私たちが遭遇した問題を紹介したいと思います。 具体的には、AWS Network Load Balancer(NLB) + Fluentd の構成でファイルディスクリプタが枯渇する謎の現象に遭遇したので、その問題の調査記録と解決策を共有します。また、この問題を解消するにあたり Fluentd に PR を送ったのでそれの紹介もします。 https://github.com/fluent/fluentd/pull/2352 データ収集基盤の構成 Repro のデータ収集基盤はFlunetd High Availability Configをもとに構成され、大まかに次のようになっています。 SDK からアップロードされたデータは、転送用 Fluentd(log forwarders)を経由し
著者: 坪内佑樹(*1), 古川雅大(*1) 所属: (*1) 株式会社はてな 研究会: Web System Architecture研究会#3 はじめに ウェブシステムは,一般的に,分散したホスト上で動作するソフトウェアが互いにネットワーク通信することにより構成される. 相互にネットワーク通信するシステムにおいて,システム管理者があるネットワーク内のノードに変更を加えた結果,ノードと通信している他のノードに変更の影響がでることがある. ネットワーク接続数が多いまたはノードが提供するサービスの種類が多くなるほど,システム管理者が個々の通信の依存関係を記憶することは難しくなる. さらに,常時接続しておらず必要なタイミングで一時的に通信するケースでは,あるタイミングの通信状況を記録するだけでは通信の依存関係を把握できない. その結果,システムを変更するときの影響範囲がわからず,変更のたびに依
やっと形になってきました。 github.com 「データベースのクエリログを取得したい」 例えば、データベース(RDBMS)のクエリログを取得したいとき一番確実な方法は、そのRDBMSに備わっているログ機構を利用することです。 一方で、全てのクエリログを出力するとなるとそれなりにIO負荷がかかることが予想されるので、負荷状況によってはクエリログ出力(のIO負荷)を別サーバに分離したくなります。 では、どうすればよいかというと、例えば アプリケーションサーバとデータベースサーバの間にプロキシサーバを挟んでそこで記録することでIO負荷を分離する アプリケーションサーバ側で(notアプリケーションで)記録することで(大抵、サーバ台数の多い)アプリケーション側にIO負荷を分散する というような方法を思いつきます。 そこで、「もし、TCPコネクション上に流れている(例えば)クエリログを解析してログ
お、MySQLの通信も見えそうだぞ? pic.twitter.com/GVxBXqHEgA— k1LoW (@k1LoW) 2018年7月25日 "TCP Proxyを書いてPostgreSQLの通信を覗いてみる - Copy/Cut/Paste/Hatena" の続編です。 MySQLの通信を覗いてみる また簡単なクエリだけを対象にします(プリペアードステートメントなどは含みません)。 MySQLもしっかりとしたドキュメントがありクエリのプロトコルの説明もありました。 MySQL :: MySQL Internals Manual :: 14.6.4 COM_QUERY しかし、とみたまさひろさん の資料のほうが断然わかりやすかったです。 slide.rabbit-shocker.org というわけで今回も tcprxy に実装を追加していきます。 mysqlコマンドでクエリを実行してみ
サーバ負荷分散の基本構成と動作 負荷分散装置(ロードバランサ)のニーズは現在も高まる一方です。従来はWebサーバのみを主な対象としていましたが、現在ではルータ#1/アプリケーションサーバ/メールサーバ/SIPサーバ/ファイアウォール/VPNゲートウェイ/ウイルスゲートウェイ/IDSなど、多種多様の機器やプロトコルが負荷分散の対象となっています。それに応じてロードバランサも現在では非常に多機能となっていますが、本連載では、全3回に渡ってアプリケーションベースではなく、ネットワークベースの技術、基本となるパケットフローやサーバヘルスチェック、接続維持などの動作について紹介します。また、パフォーマンス測定についてもお話ししましょう。 #1 ルータはレイヤ3でインターネット回線のマルチホーミングとして機能する(=複数のWAN回線を接続して、同時に通信させることで負荷分散し、必要な帯域を確保するし、
サーバ間で分散処理を行う際の相互通信におけるボトルネックを解消するため,smux(Socket multiplexer)を開発している. サーバ間の相互通信におけるボトルネックとその解決策 一対のサーバ間で多数のリクエストとレスポンスが送受信され,信頼性の高い通信としてTCPを利用する場合,コネクション確立のオーバーヘッドを排除するために接続の再利用が行われる.しかしながら,クライアントは送信に対する受信を待つ必要があるため,レスポンスまでに幾許かの処理時間を要する状況では送信のキューがたまってしまう.そこで複数の接続を利用することでこれを解消する方法が取られるが,追加の接続はリソース使用に関するオーバーヘッドを発生させてしまう.なにより各接続におけるレスポンス待ち時間は依然として解決しておらず,接続の利用面から見て非効率である.そこで,単一の接続において,仮想的に並行送受信を行う方法が提
ちょうど1年前に「高負荷サイトのボトルネックを見つけるには」という記事を掲載していますが、この手のトラブルシューティングって結構大変で悩ましいですよね。はじめまして、新入りの@pandax381です。 ログからは見えてこないもの 「サイトの応答が遅い」という問題が発生した場合、その原因はどこにあるでしょうか。 Webアプリケーションの処理に時間が掛かっている DBサーバに投げたクエリーの応答が遅い サーバの処理能力を超えている などなど、いくつもの可能性があります。通常、上に挙げているような問題は、アプリケーションやサーバのログを調査することで、原因を突き止めることができます。 一方で、こういったログの調査だけでは、その原因にたどり着くことができなかったり、相当な苦労が伴うケースもあります。 あるサイトのある日の出来事 つい先日のことですが、KLabの運営している某ソーシャルゲームにて、サ
TL;DR 平文のTCP/IPの通信では送信したデータの完全性は期待できないので、経路にはSSL/TLSを使いましょう TCP/IPはUDPと違い、信頼性のある通信を実現するためのプロトコルという説明がよくされる。なのでTCP/IPでやり取りしたデータは1bitの狂いもなく転送先に届くと思われがちだ。TCP/IPが信頼性のある通信を確保してると言われているのは下記の理由による。 1. データが届かなかった場合の再送処理がプロトコルに入っている 2. TCPパケットにペイロードのチェックサムがあり、不具合が検知されると修正もしくは再送される(ただし16bit) 3. IP層の更に下の層にチェックサムがあり、不具合が検知されると修正もしくは再送される(イーサの場合32bit) しかしチェックサムはそれぞれ16/32bitのため、昨今の超大量データを取り扱うにはかなり心もとない。 1. ざっくり
ssd.c @��kU ���kU // Copyright (C) 2010 Apple Inc. All Rights Reserved. #include <launch.h> #include <libkern/OSAtomic.h> #include <vproc.h> #include "shared.h" static bool g_is_managed = false; static bool g_accepting_requests = true; static dispatch_source_t g_timer_source = NULL; /* OSAtomic*() requires signed quantities. */ static int32_t g_transaction_count = 0; int server_check_in(void) { in
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く
Fetched URL: http://b.hatena.ne.jp/a2ikm/tcp/
Alternative Proxies: