タグ

serverに関するhiroyukimのブックマーク (25)

  • Go で 1024 以下のポートを Listen するアプリを作る - methaneのブログ

    Go はネットワークアプリケーションを手軽に書ける言語ですが、例えば 80 番ポートなど、 root でしか bind できないアドレスを Listen するアプリケーションを、 root でないユーザーで動かすのは地味に面倒です。 普通はソケットを bind してから setuid/setgid するのですが、 Linux では setuid が呼び出したスレッドしか適用されないという問題があり、 Go との相性が悪いからです。 参考 対処方法として、 Linux では capabilities を使って非 root ユーザーでも 1024 番以下を bind できるようにし、 Mac OS X などでは bind してから setuid するようにする。 先に root で bind したソケットを Go のプログラムに渡す。 2番めの方法を使うサンプルプログラムを書いておきます. $

    Go で 1024 以下のポートを Listen するアプリを作る - methaneのブログ
  • Net::Server - Perlによる拡張可能な汎用サーバエンジン - perldoc.jp

    Net::Server - Extensible, general Perl server engine Net::Server - Perlによる拡張可能な汎用サーバエンジン 概要¶ #!/usr/bin/perl -w -T package MyPackage; use Net::Server; @ISA = qw(Net::Server); sub process_request { #...コード... } MyPackage->run(port => 160); exit; 取得方法¶ * Single Server Mode * Inetd Server Mode * Preforking Simple Mode (PreForkSimple) * Preforking Managed Mode (PreFork) * Forking Mode * Multiplexing M

  • Shortfin Web Server

    Shortfin is a fast and lightweight static web server made to run web apps.Install Shortfin is completely written in C and currently only runs on Linux, but porting to xBSD has been initiated. Just run the following command as root to install the server. # wget http://shortfin.io/install.sh && sh install.sh Config To get the best performance out of the server it's important that you configure it

  • NUMAの選択

    Windows Server 2012の Hyper-V で強化された機能として、仮想マシンごとにNUMA(Non-Uniform Memory Access)の設定が可能となったことが挙げられます。 CPUとメモリは単一バスで結ばれるSMP(Symmetric Multiprocessing)の形がとられます。ソフトウェアの動作を詳しく観察すると、ほとんどのメモリアクセスはある特定の領域に集中していると言われています(参照の局所性) コンピュータにおいて、メモリはデータアクセスの速度によって階層化されます。高レベルには頻繁に利用される(参照される)データが配置され、優先的に処理されます。また、近い将来にアクセスされると予測されるデータをキャッシュすることで、さらにメモリアクセスを効率化します。 しかしながら、複数あるCPUのうちの一つのCPUが処理を実行する際に、メモリ中の特定の箇所(頻

    NUMAの選択
  • epoll を使った echo サーバ - odz buffer

    自分用メモ。epoll & Non-Blocking IO による echo サーバの例。 使い方のテスト以上のものではないので、そのままではいろいろまずい。epoll_create や socket で取得した file descriptor を close してなかったり。まねしないように。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <sys/socket.h> #include <sys/types.h> #include <sys/epoll.h> #include <netinet/in.h> #define SERVER_PORT 10007 #define MAX_EVENTS 10 #define BAC

    epoll を使った echo サーバ - odz buffer