Linux Memory Mapped System Call Performance Kousha Najafi Professor Eddie Kohler Steve VanDeBogart I. Introduction Mmap and read are both fundamentally important system calls. Both calls are used to access bytes on disk. Read uses the standard file descriptor access to files while mmap transparently maps files to locations in the process’s memory. Most operating systems also use mmap every time a
とあるスタートアップを抜け、CTOを辞めた話。 辞めると来まって、1週間ぐらい立ちいろいろ整理してきたので、そろそろこのことについて書く。前々から書かなければ、ならないという謎の使命感を持っていた。 僕は、Technical RockstarsのCTOだった。このスタートアップで、リアルタイムBaaSサービスと等、いろいろなサービスを提供していた。スタートアップ自体は、2013年の11月あたりから、CTOの就任して、大体1年と、半年ぐらいか?そのぐらいの期間CTOだった。 そして、これから、なぜCTOを辞めたのか?というのと、日本のスタートアップ、とくにエンジニアスタートアップの問題点、何を学習したのか? 何を得たのか? そして僕はこれからどうするか?というのを、つらつらと書いていきたいと思っている。 スタートアップとは? ここで、スタートアップがどういうものか?というのを知らない人の為に
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、鈴木カズです。 社内向けの監視システム構築のため、StormやKafkaを利用して開発を行っていました。 そのときの経験をもとに、まずStormによる実際のシステムがどんなものかということを紹介し、KafkaSpoutの処理内容、カスタマイズ方法、Stormのメッセージ処理などを説明したいと思います。 読者としては、StormやKafkaについて興味があり記事を読んだりしたことがあるがもう少し具体的な話を知りたい方、これから開発予定があるような方を想定しています。 StormとKafka Stormは簡単に言うと、リアルタイムに流れてくる大量のデータを処理するための分散システムです。Twitterのメッセージの分析など
タイトルは煽り入ってますが。 仮に動的ページを生成するのにかかる時間が1秒、そのうちデータベースやmemcached等リモートサーバへの問い合わせ時間を除くいたCPUの処理時間が0.1秒とする。また、ピークのリクエスト処理量は、平均の2倍とする。 そうすると、クアッドコアのアプリケーションサーバで処理できるリクエストは、 4 core * 10 reqs/sec * 86,400 sec/day * 30 day/mon / 2 = 51,840,000 reqs/mon と、約5,000万PV/月を1台で捌けることになる。 CPUが動いている時間は全処理時間の10倍と仮定したわけだから、アプリケーションサーバの最大同時接続数は 4 core * 10 = 40 程度あればいいことになる。実際には、安全係数を2倍かけて 80 とか。リクエストの処理に必要なメモリ量を 100MB とすると、
February 16, 2010 This article was contributed by Mel Gorman [Editor's note: this article is the first in a five-part series on the use of huge pages with Linux. We are most fortunate to have core VM hacker Mel Gorman as the author of these articles! The remaining installments will appear in future LWN Weekly Editions.] One of the driving forces behind the development of Virtual Memory (VM) was to
Linux のオーバーコミットのはなし ==================================== (これを書いたのは Linux 2.6.38 のとき) Linux カーネルは実メモリ以上にメモリをプロセスに割り当てることができる この仕組みをオーバーコミット (over-commit) と呼ぶ オーバーコミットでは,とりあえずメモリを `malloc` させて仮のアドレスを返しておき, 実際に使われる段になってはじめて実メモリを確保する. 実験 --------- ただ `malloc` し続けるだけのプログラムを作って実験してみる. このプログラムをメモリ 1 GB + スワップ 1 GB のホストで実行してみると, $ free -t total used free shared buffers cached Mem: 1022404 82992 939412 0 4
この記事はhttp://atnd.org/events/21910のために書かれたものです。 今回の記事では TranscendentMemory, frontswap, zcacheを紹介します。 TranscendentMemory とは 簡単に言えばLinuxカーネルの新しいメモリ管理システムです。TranscendentMemoryは サイズが不定で知ることができない 特殊なput/getの関数でページ単位で「ハンドラ」を使って読み書きする 設定によっては書いたものが消えてしまうこともある 抽象的なメモリになっています。こんなにいかにも使いにくいのに一体どんなメリットがあるんでしょうか? このようにメモリを抽象化することで、このシステムの裏側でいろいろと面白いことができるようになります。たとえば メモリデータを圧縮 (zcache) (2.6.39でstagingにマージ) 高速な
Last year, Nitin Gupta was pushing the compcache patch, which implemented a sort of swap device which stored pages in main memory, compressing them on the way. Over time, compcache became "ramzswap" and found its way into the staging tree. It's not clear that ramzswap can ever graduate to the mainline kernel, so Nitin is trying again with a development called zcache. But zcache, too, currently lac
アドテク×Scala meetup 2014-11-20 http://connpass.com/event/8384/Read less
OSの内部構造(メモリとかファイルシステムとか)を見ているといろんな単位がでてきます。 セグメント ページフレーム ページ ブロック セクタ 等々。 ややこしい限りです。 たとえばページであれば現在のモダンなLinuxは4Kbyteが一般的です。 しかしファイルシステムのblock sizeとなるとデフォルト値はあるものの、ファイルシステム毎(ext2,ext3,jfs,xfs,reiserfs,ocfs2)にそのデフォルトが異なっていたりしますし、フォーマット時に指定可能な値なのでページサイズほど画一化されていません。よく使用するファイルサイズによって最適な値を選択するのがベストとされています。 なので「今このファイルシステムのblock sizeっていくつになってんの?」というのがわからなくなることがあります。そんなとき、ファイルシステムがext2またはext3であればtune2fsで
私たちの救世主DHH™は最近の Full Stack Radioのインタビュー で、 Basecamp の最新版で彼がどのようにRailsのコントローラを書いたかを説明しています。下記は、彼のすばらしい話を書き取ったものです。 これまでに思うようになってきたのは、「RESTの原則に従うには、どのタイミングで新たなコントローラを作るべきかを一度決めたら、ほぼ異例なくその原則を遵守するべきだ」ということです。いつだってその方がうまくいくんです。自分の作ったコントローラの状態を悔やむのは決まって、作ったコントローラの数が少なすぎた時です。多くの処理を任せようとしすぎてしまうんです。 そこでBasecamp 3では、ある程度理にかなったサブリソースがあれば、毎回コントローラを分割していきます。フィルタなどの場合ですね。例えば画面があって、それがある状態になっているとします。もしこれにいくつかのフィ
2. 2/21 川上 雄也 (@yuyarin) インターネットマルチフィード株式会社 技術部 JPNAPチーム ソフトウェア&ネットワークエンジニア JPNAP (Internet Exchange service) メトロエリア広帯域Ethernetネットワーク バックボーン設計 ネットワーク運用自動化 日本ネットワークオペレーターズグループ(JANOG)運営委員 Interop Tokyo 2016 ShowNet NOC マイイカデータ 3. 3/21 マイイカデータ 2008 インターネット系の研究室に配属(B4-M2) WIDEプロジェクト参加 株式会社ドワンゴ 研究開発本部 ニコニコ動画のバックエンドシステムの開発 2011 NTTコミュニケーションズ入社 インターネットマルチフィード配属 JPNAPのネットワークエンジニア 趣味でカンファレンスネットワーク構築 2016 イ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く