Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

performanceに関するwushiのブックマーク (188)

  • Linuxで3万(10万)プロセスを同時に起動させてみた

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 といっても、きちんとした検証をしたわけではないので、あくまで「こういう環境でこういう事をやるとこうなる」という参考程度のものと理解してい頂ければ幸いです。 Linux上でプロセスは同時に何個起動できるのか 数年前にC10K問題が流行りました。これは、簡単に言うと、万のオーダーでプロセスを立ち上げる事になると、現状のOSではそれを想定した設計になっていないためまともに動かなくなる、といった問題でした。 だったら、「10万プロセス位を同時に立ち上げてみて、どうなるか試してみようぜ!」と思い、会社のエンジニアと一緒に試してみました。検証環境は、メモリ48GでCPUはHyperThreading込で24コアです。そこで動いていたOSはDebianでL

    Linuxで3万(10万)プロセスを同時に起動させてみた
    wushi
    wushi 2015/01/20
    kernel:__ratelimit: xx callbacks suppressed
  • Stack Overflowの裏側は、Webサーバ9台、SQL Serverが4台など。月間5億6000万PVをさばくシステムの状況を公開中

    ITエンジニアのコミュニティサイトStackOverflowなどを運営するStackExchangeが、同社のサービスを支えているシステム構成の状況を知らせるWebサイトを公開しています。 同社のサービスは各国版のStack Overflowのほかにも、サーバ管理者のためのServer Fault、数学関係者のためのMathematicsなど多岐にわたっています。 これらを合わせた同社のサービスは月間5億6000万ページビュー。このページビューを、48GBのメモリを搭載した9台のWebサーバ。384GBのメモリを搭載しライブ/ホットスタンバイ構成にクラスタ化した2台のSQL Serverと、288GBのメモリを搭載した2台のSQL Serverによるもう1つのクラスタの合計4台のSQL Server。96GBのメモリを搭載し、マスター/スレーブ構成にした2台のRedis Serverなどで

    Stack Overflowの裏側は、Webサーバ9台、SQL Serverが4台など。月間5億6000万PVをさばくシステムの状況を公開中
  • Effective web performance tuning for smartphone

    1. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Effective Web Browser Performance Tuning for Smartphone 1 Dec 16, 2014 ! Kei Takahashi kei.takahashi@dena.com Game Development Infrastructure Gr. DeNA Co., Ltd. ~FINAL FANTASY Record Keeper の軌跡~ 2. 自己紹介 2 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 高橋 慧 (たかはし けい) Japanリージョン ゲーム事業技術・編成部 ゲーム開発基盤グループ(GDI)所属 Web Frontend Engineer といいつつ最近はアプリにお

    Effective web performance tuning for smartphone
  • Optimizing NGINX TLS Time To First Byte (TTTFB) - igvita.com

    By Ilya Grigorik on December 16, 2013 Network latency is one of our primary performance bottlenecks on the web. In the worst case, new navigation requires a DNS lookup, TCP handshake, two roundtrips to negotiate the TLS tunnel, and finally a minimum of another roundtrip for the actual HTTP request and response — that's five network roundtrips to get the first few bytes of the HTML document! Modern

    Optimizing NGINX TLS Time To First Byte (TTTFB) - igvita.com
  • strace コマンドの使い方をまとめてみた : sonots:blog

    strace コマンドの使い方をまとめてみた : sonots:blog
  • > Sun NFS サーバーの調整 > 第 2 章 NFS 性能の分析

    第 2 章 NFS 性能の分析 この章では、NFS 性能の分析方法について説明します。システムを調整するための一般的な手順を簡単に示し、ネットワーク、サーバー、各クライアントの検査方法について説明します。 調整手順 NFS サーバーを最初に設定する際には、サーバーが最高の性能を発揮するように調整する必要があります。また、後で、特定の状況に応じてよりよい性能が得られるように、その都度調整する必要があります。 全般的な性能を向上させるための調整手順 以下の手順に従って、NFS サーバーの性能を向上させます。 ネットワーク、サーバー、各クライアントの現在の性能レベルを測定します。「ネットワーク、サーバー、クライアントの性能検査」を参照してください。 収集されたデータのグラフを作成し、分析します。例外、ディスクと CPU の使用状況、ディスクサービス時間を調べてください。しきい値または性能値ルール

  • nginx+squidで画像キャッシュサーバーの作り方 - hideden.hatenablog.com

    仕事で画像キャッシュサーバーを構築した時のメモ。大規模事例の設定例が検索してもあまり見つからなかったので同じような境遇の誰かの参考になれば。 ピーク時のトラフィックは数Gbps 画像総容量は数十TB バックエンドのstorageが複数種類 規模とアクセス量とアクセスされる画像の種類が多いので、squidでdisk cacheを使用するとCOSS等を使用してもdiskIOで詰まる為、全てon memory cache。cache容量を確保する為に必然的にcacheサーバーの台数も数十台。 1. squidをsibling構成で並列に並べる cache_peer 10.0.1.1 sibling 80 3130 no-query no-digest proxy-only cache_peer 10.0.1.2 sibling 80 3130 no-query no-digest proxy-o

    nginx+squidで画像キャッシュサーバーの作り方 - hideden.hatenablog.com
  • Linuxで、どのプロセスがページングを行っているのか調べるには? | Yakst

    スワップがなぜ起きるか、どのようにスワップの状態を確認するべきかの平易な解説。Quoraの質問に対する、Robert Love氏の回答。 質問に対するストレートな回答は、調べるのは不可能、だ。どうしてそうなのかを説明してから、君の知りたい情報を含んでいるであろう、5つの関連する質問に答えよう。 Linuxのような、モダンなOSにおいては、スワップはシステム全体における現象だ。ある1つのプロセスがスワップに関する責任を持っているわけではない。システムがスワップしているかどうかは、メモリプレッシャの機能による。物理メモリを大量に使おうとすれば、スワップしてしまう。何をスワップアウトするかは、一番少ないページを要求しているのが何かによる。何をスワップインするかは、一番ページを必要としているのが何かによる。プロセスがRAM上に存在しないページを要求した時、そのページはディスク上にあるので、スワップ

  • Linux の TCP/IP チューニング・パラメータ

    TCP のチューニング・パラメータ 接続確立関係のチューニング・パラメータ TCP のチューニング・パラメータ TCP のチューニング・パラメータは、以下のコマンドで取得できます。 なお、以下は Linux のものです。 >cat /proc/sys/net/ipv4/tcp_retrans_collapse 1 >cat /proc/sys/net/ipv4/tcp_keepalive_probes 9 >cat /proc/sys/net/ipv4/tcp_keepalive_time 10800 >cat /proc/sys/net/ipv4/tcp_syn_retries 10 >cat /proc/sys/net/ipv4/tcp_sack 1 >cat /proc/sys/net/ipv4/tcp_timestamps 1 >cat /proc/sys/net/ipv4/tcp

  • @IT:/procによるLinuxチューニング [後編](2/4)

    /procによるLinuxチューニング [後編] ~ /proc/sysの主要パラメータ群総解説 ~ 遠田 耕平 2002/12/17 /proc/sys/fsディレクトリ /proc/sys/fsには、ファイルシステム関連のチューニングパラメータが集められています。 file-max システム中のオープンファイル管理データの最大数を指定できます。 file-nr file-nr内のパラメータはそれぞれ、オープンされているファイル数、空きファイル管理データの数、システム中のオープンファイル管理データの最大数(file-maxと同じ)を示します。 ファイルのクローズ時には、使っていたファイル管理データを即座に解放するのではなく、いったん(次の機会に使えるように)取り置きます。この取り置かれている管理データの数が、2番目の数値となります。 inode-state、inode-nr inode-

  • バックログの指定 - 揮発性のメモ2

    listenのバックログが指定できない - 揮発性のメモの続き http://www.linux.or.jp/JM/html/LDP_man-pages/man2/listen.2.html int listen(int sockfd, int backlog); backlogでバックログの数=accept()待ちの接続のキューの数を指定できる。 ということになっているけど、実際はキューの数をあまり制限できないっぽい。 カーネル側の設定を # cat /proc/sys/net/ipv4/tcp_syncookies 0 # cat /proc/sys/net/ipv4/tcp_max_syn_backlog 1プログラム側を result = listen( sd, 1 );として制限かけていても、実際にはセッションが確立してしまう。 tcp 0 0 172.16.1.4:5000 1

    バックログの指定 - 揮発性のメモ2
  • UNIX/Linuxで「プロセスごとの」ディスクの使用状況(ディスクI/Oの状況)を取得する方法 - OKWAVE

    質問者様は既に放置されているようなので、このページを参照している他の方のためにメモします。 (質問者様の環境のように、/proc以下にioディレクトリがない環境では使えません) まず、I/Oが激しいプロセスを特定する方法は以下の通りです。 (root)# find /proc -name io | xargs egrep "write|read" | sort -n -k 2 すると以下のようなフォーマットでI/Oの一覧が出力されます。下に行くほどI/Oが多いプロセスになるようにsortされています。 /proc/3847/io:read_bytes: 82096128 この場合、"3847"というのがプロセスID、最後がバイト数です。 上記の一覧から、どのプロセスがあやしいか、だいたい当たりをつけます。 次はそれがどのプログラムかですが、例えば上記の3847であれば、以下の方法で得ること

    UNIX/Linuxで「プロセスごとの」ディスクの使用状況(ディスクI/Oの状況)を取得する方法 - OKWAVE
  • Webクライアントからの接続数とリクエスト処理スレッド数の制御

    ここでは,Webクライアントからの接続数の制御と,リクエスト処理スレッド数の制御について説明します。 インプロセスHTTPサーバでは,一度に接続できるWebクライアントの数を設定することで,インプロセスHTTPサーバで作成するリクエスト処理スレッド数を制御できます。また,処理を実行していないリクエスト処理スレッドを予備スレッドとして一定数プールしておくことで,リクエスト処理スレッドの追加・削除に掛かる処理を最小限に抑えられます。 このように,Webクライアントからの接続数とリクエスト処理スレッド数を制御して,リクエスト処理スレッド数を最適化することによって,J2EEサーバの負荷を一定に抑え,安定した高いスループットを維持できます。 Webクライアントからの接続数の制御とリクエスト処理スレッド数の制御について説明します。 <この項の構成> (1) Webクライアントからの接続数の制御 (2)

    Webクライアントからの接続数とリクエスト処理スレッド数の制御
  • 何か決めなきゃ駄目ですか。 Linuxのbacklogについて

    少しだけ突っ込んだ話。 (曖昧さは人間の脳内補完に委ねるとして・・・。) LinuxにはTCPの3Wayハンドシェイク(即ち、SYN,SYN/SCK,ACK)状態保持に関連して、 次のようなパラメータを持っている。 net.ipv4.tcp_max_syn_backlog=1024 何それ?って人は # sysctl -a | grep tcp 等のコマンドで探します。 # sysctl -a | grep backlog?それじゃノイズが無さすぎて面白くn(ry これは、「LinuxがSYNを受信し、SYN/ACKで応答した状態をいくつ保持するか」というもの。 閾値を超えると、Linuxは新規に接続しようとするホストのリクエスト(SYN)を無視する。 最近のLinuxを、最近のハードウェアにとりあえずインストールすると、 初期値は上記のような1024とか言う数値になっていると思う。 利用

  • A.53 ListenBacklog

    Interstage Application Server Webサーバ運用ガイド (Interstage HTTP Server編) 名前 ListenBacklog 形式 ListenBacklog 接続待ちキューの最大数 ListenBacklog 接続待ちキューの加算数 機能概要 接続待ちキューの最大数を設定します。最大数には、1から2147483647までを指定できます。 ディレクティブの設定値は、MaxClientsディレクティブで設定したクライアントの同時接続数よりも多くのアクセス要求があった場合に、Solaris OEシステム内にキューイングされる数として有効となります。 ただし、ディレクティブの設定値がSolaris OEシステムに設定されている待機中TCPコネクションの最大値(tcp_conn_req_max_q)よりも大きい場合は、待機中TCPコネクションの最大値

  • kernelチューニング

    linuxサーバのOS全体に効くカーネルパラメータのチューニング箇所と その設定値、またその理由をまとめておく。 あくまで自分の環境ではこうした、というだけであり、 提供するサービスごとに検討が必要である。 どこをどう変更するのか、または変えないのか、その判断材料にはなるだろう。 ※ユーザ単位でシステムリソースに制限をかける場合をこちらを参照してほしい。 以下は/etc/sysctl.conf で設定するものとする。 ● 大規模サイト用チューニング kernel.pid_max 動作:pidの最大数 設定値:131072 理由:pidを枯渇させない vm.max_map_count 動作:mmapやmalloc時にメモリを仮想空間にマッピングできる最大ページ数 設定値:300000 理由:マッピングできなくなる事態を防ぐ net.core.somaxconn 動作:接続(ソケット)キューの

  • LinuxのTCP/IPの実装について調べてみた - nyantのブログ

    結論 tcp_syncookies = 0 の場合 tcp_max_syn_backlog の 75% を超える half openなコネクション要求が来た場合、dropされる(TCP: drop open request from [IP]/[PORT]) somaxconn と tcp_max_syn_backlogの小さいほうの値を、付近の2の累乗の値に切り上げた数値を超えると、drop (TCP: Possible SYN flooding on port [PORT]. Dropping request.) tcp_syncookies = 1 の場合 somaxconn と tcp_max_syn_backlogの小さいほうの値を、付近の2の累乗の値に切り上げた数値を超えると、cookie送信 (TCP: Possible SYN flooding on port [PORT]

    LinuxのTCP/IPの実装について調べてみた - nyantのブログ
  • net.core.somaxconnについて調べてみた - 祈れ、そして働け ~ Ora et labora

    概要 ↓ memcachedのtcp_backlogのデフォルト値は1024で、stats settingsにも1024と表示されているのですが、 stats settings ... STAT tcp_backlog 1024 ... END↓ net.core.somaxconnがデフォルト値のままだと128に切り詰められてしまい、 # cat /proc/sys/net/core/somaxconn 128負荷が高いサーバーでは接続要求を取りこぼしてしまうことがあるそうです。 このnet.core.somaxconn、MemcacheやMySQLなど、高負荷時に多くの接続要求を受け付けるサーバーではチューニングが必要なカーネルパラメータのようです。いったいどういう値なのか、調べてみました。 net.core.somaxconnとは TCPソケットはlisten()関数の第二引数 ba

    net.core.somaxconnについて調べてみた - 祈れ、そして働け ~ Ora et labora
    wushi
    wushi 2014/06/19
    net.core.somaxconnはOS全体で設定される値で、プロセス毎のbacklogの最大値
  • タイムアウトエラーや、Webアクセスの遅延が頻繁に... | よくあるご質問 | ALSI (アルシー)

    セキュリティ情報 InterSafe WebIsolationCloud 制限事項・注意事項 InterSafe WebFilter 使い方 InterSafe WebFilter全般 Proxy for Squid for ICAP LogLyzer URL・データベースについて 機能・仕様 技術情報 制限事項・注意事項 トラブルシューティング ライセンス バージョンアップ ダウンロード 技術資料 障害・不具合報告 過去のお知らせ InterSafe CATS 使い方 機能・仕様 技術情報 制限事項・注意事項 トラブルシューティング バージョンアップ コンフリクト情報 ライセンス 過去のお知らせ 障害・不具合報告 InterSafe GatewayConnection 利用環境 機能・仕様 制限事項・注意事項 for VPN 技術資料 過去のお知らせ ISGC Agent InterSa

    wushi
    wushi 2014/06/19
    backlogのサイズの目安として、待ち受けるプロセス数の半分という指標が示されている。
  • HTTP サーバーへの接続の失敗 (Sun Java System Web Server 7.0 パフォーマンスのチューニング、サイジング、およびスケーリング)

    wushi
    wushi 2014/06/19
    listenキューのSolaris版