タグ

linuxに関するEhrenのブックマーク (92)

  • https://www.thomas-krenn.com/en/wikiEN/images/c/c2/Linux-storage-stack-diagram_v6.2.pdf

  • Porting Rust's std to rustix

    Rustix is a system-call wrapper library with multiple backends. It has a raw Linux syscalls backend, as well as a libc backend, and other backends are in development. Rustix is designed for memory safety, I/O safety, and performance. And this is a branch of Rust's std partially ported to use rustix in place of direct libc calls. Read on for why this is cool, and stay for the benchmarks! Factoring

  • TCPのTail Loss Probeと再送周りについて少し - エンジニアですよ!

    仕様は RFC にはないっぽくて(?) 2013年にgoogleの方々が出してるinternet draft で定義されている模様。 Tail Loss Probe は、一連の送信パケットの最後のパケットがロスした場合に、送信側が再送タイムアウトを待たずにロスを検知して回復することを目的としている。 パケットがロスした時、後続のパケットが次々と送られている場合はduplicate ackが返されるため、fast retransmitによってリカバリすることができる。 しかし、末尾のパケットや途中から末尾までウィンドウいっぱいのパケットがロスしてしまった場合などは、dup ackが届かないためfast retransmitはトリガーされないため再送タイムアウトまでリカバリできない。 再送タイムアウトを待つと時間がかかりすぎるし、タイムアウトが発生すると輻輳ウィンドウが小さくなってスロースター

    TCPのTail Loss Probeと再送周りについて少し - エンジニアですよ!
  • Amazon Linuxの特徴とCentOSとの違い まとめ | DevelopersIO

    はじめに Amazon EC2でLinuxサーバを新規構築する場合は弊社ではAmazon Linuxをお勧めすることが多いです。その理由としてはAWSのツールが最初から入っていてAmazonのサポートも受けやすいからです。Amazon Linuxを使ったことがない方はどんなディストリビューションなのか特徴を知りたいのではないかと思いますので、CentOSとの違いも含めまとめてみました。以下はAWS公式サイトのページになります。 Amazon Linux AMI Amazon Linuxの特徴 Amazon LinuxはRedHat系のディストリビューションになります。CentOSやRHELを使ったことがある方なら同じように使えるのではないかと思います。CentOSとの比較をしながらAmazon Linuxの特徴を見ていきたいと思います。CentOSはAWS MarketPlaceにあるCe

    Amazon Linuxの特徴とCentOSとの違い まとめ | DevelopersIO
  • Fedora 24 Linux Operating System to Switch to Python 3.5 by Default

    The Fedora 23 Linux operating system has not even been released, and Fedora Project's Jan Kurik comes with the first system-wide change proposal for the next major version of the acclaimed GNU/Linux distribution, Fedora 24. According to Mr. Kurik, it would appear that the upcoming Fedora 24 operating system will switch to the Python 3.5 dynamic programming language by default, for all the Fedora e

    Fedora 24 Linux Operating System to Switch to Python 3.5 by Default
    Ehren
    Ehren 2015/12/07
    次のRHEL はpythonのversionが3系になるってことか。いつでるかな
  • Linux のオーバーコミットについて調べてみた

    Linux のオーバーコミットについて調べてみた 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 4172 12280 -/+ buffers/cache:

    Linux のオーバーコミットについて調べてみた
    Ehren
    Ehren 2015/11/11
  • 大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog

    以下、長々と書いてますが、結論は ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablogに書いてます はじめに awk file より cat file|awk のほうが速いという以下のブログエントリが興味深いので調べてみました。 ちなみに cat file|awk が速くなる環境は稀で、巷では awk file のほうが速い環境のほうが多いようで、どちらが速いかは環境依存です。 [root@localhost sample]# cat command1 awk '$5 ~ /((26|27|28|29|30)\/Jun|(01|02|03)\/Jul)/{ print }' sample.txt > result1.txt (中略) [root@localhost sample]# time sh command1 real 0m53.92

    大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog
  • システムコールを経由する生のLinuxスレッド | POSTD

    Linuxのスレッドは、洗練された美しい設計です。スレッドは仮想アドレス空間とファイルディスクリプタテーブルを共有するプロセスに過ぎません。プロセスによって生成されたスレッドは、メイン”スレッドの”親プロセスに追加された子プロセスです。これらは同じプロセス管理のシステムコールを通して処理されるので、スレッドに関するシステムコールのセットを分ける必要性を取り除きます。これはファイルディスクリプタと同様に洗練された方法です。 一般的に、UNIX系のシステムではfork()を使ってプロセスを生成します。新しいプロセスは、オリジナルのコピーとして独自のアドレス空間とファイルディスクリプタテーブルを取得します。(Linuxではコピーオンライトを使用して、この部分を効率的に処理します。)しかし、これは非常に高度なスレッドの生成方法なので、Linuxでは別の clone() システムコールを使用します。

    システムコールを経由する生のLinuxスレッド | POSTD
    Ehren
    Ehren 2015/07/10
  • PowerTOPを使ってLinuxマシンを省電力化する -- ぺけみさお

    使い方PowerTOPはpowertopコマンドで起動する。 PowerTOPはカーネルやハードウェアに設定を行うので起動にはroot権限が必要だ。 PowerTOPはCLIアプリケーションで、端末が設定画面になる。 PowerTOPで特に重要なのは、起動直後に表示されるOverview画面と、省電力設定を行うTunable画面である。これらの画面はtabキーで切り替え可能だ。 Overview画面の一番上に表示されている”The battery reports a discharge rate of …“の部分が現在の消費電力である。PowerTOPによる省電力設定では、この数値をできる限り下げる事が目的になる。Overview画面には電力消費が多い順にハードウェアやプロセスが表示されており、何が電力を浪費しているのかが把握できるようになっている。 Tunable画面を見てみよう。この画

    PowerTOPを使ってLinuxマシンを省電力化する -- ぺけみさお
    Ehren
    Ehren 2015/05/12
  • Improving Performance

    Many Unix-like operating systems and distributions are tuned for desktop or light use out of the box and not for a production database. This guide describes recommended system performance tunings for operators of new and existing Riak clusters. The tunings present in this guide should be considered as a starting point. It is important to make note of what changes are made and when in order to meas

  • Linuxカーネルに関する技術ドキュメント「Linux internals」の第2部が公開される | ソフトアンテナ

    Linuxハッカーを目指す技術者に役立ちそうな技術ドキュメント「Linux internals」の第2部が公開されています(Hacker News)。これは前回紹介した第1部の続編となるドキュメントで、カーネルのセットアップが完了し、アセンブラ言語からC言語のmain関数がよびだされた後、を解説するものとなっています。 具体的には、プロテクトモード、起動パラメーターのzeropageへのコピー、コンソールの初期化、ヒープの初期化、CPUの検証、メモリの検出、キーボードの検出、Querying(様々な情報の取得)などのトピック関して解説されています。 次回第3部は、ビデオモードの設定と、その他プロテクトモードへ移行する前に行う各種準備、プロテクトモードへの移行を解説する予定となっています。

    Linuxカーネルに関する技術ドキュメント「Linux internals」の第2部が公開される | ソフトアンテナ
    Ehren
    Ehren 2015/02/04
  • VAIO Pro 13: ubuntu インストール メモ

    DVDやUSBからubuntuを起動すると問題なく動作するのに,内蔵SSDにインストールすると起動途中で停止してしまう.あるいは,起動に10分前後かかるなど非常に遅い状態になる. [黙って10分も待つ人はマレで,普通はハングアップしていると思ってリセットをかけたりすると思います.私の場合は,原因を調べるため別のマシンで web の情報をあさっていたら,ハングアップしていたはずの ubuntu が忘れた頃に突然起動して,ものすごいスローダウンが起こっているだけでハングアップしてるわけではないんだと気づきました.] 原因 Native Command Queue (NCQ) に対応していない SSD に NCQ コマンドを発行してしまい,非 NCQ コマンドとの排他制御が生じてディスク アクセスが大幅にスローダウンする. 対策 Grub で NCQ コマンドを発行しないようカーネル パラメタ“

    VAIO Pro 13: ubuntu インストール メモ
    Ehren
    Ehren 2015/01/01
  • エンジニア・光成 滋生の「バグを突き止める技術」 | サイボウズ式

    サイボウズ・ラボの西尾 泰和さんが「エンジニアの学び方」について探求していく連載の第18回(これまでの連載一覧)。サイボウズ・ラボの光成 滋生さんにお話を伺うシリーズ(1)です。 連載は、「WEB+DB PRESS Vol.80」(2014年4月24日発売)に掲載された「エンジニアの学び方──効率的に知識を得て,成果に結び付ける」の続編です。(編集部) 文:西尾 泰和 イラスト:歌工房 この連載では「エンジニアの学び方」をテーマにインタビューを行い、どういう「学び方」をしているのか探求していきたいと思っています。第2弾は、サイボウズ・ラボのエンジニアとして、楕円曲線などの難しい数学を使った暗号の論文を読んで実装したり、サイボウズが遭遇した問題の原因を掘り下げていって最終的にLinuxのバグを修正したり、と幅広い活動をされている光成滋生さんです。 光成さんが、どういうプロセスで問題の原因を

    エンジニア・光成 滋生の「バグを突き止める技術」 | サイボウズ式
  • Linux TC (帯域制御、帯域保証) 設定ガイドライン | GREE Engineering

    Abstract このドキュメントはLinuxにおいて帯域制限のためにtcを用いる際のガイドラインです。 tcは様々な用途に活用できるものですが、プロダクションにおいて特定のserver daemonのトラフィックを制限するというシナリオで活用することを目的としています。 tcのより詳しい詳細については別にドキュメントを書きましたのでそちらを参照してください。 よくわかるLinux帯域制限 Root qdiscの選定 帯域制限を行いたい場合のqdiscは主に以下のようになるでしょう。 TBF PRIO + 内部qdiscとしてTBF HTB それぞれ用途に合わせて適切なものがあるのですが、機能としてはHTBが前者2つの上位互換となるので、迷った場合にはHTBを使えば問題ありません。ということで以後HTBの設定について解説します。 class構造,トラフィックのclassify, filte

    Linux TC (帯域制御、帯域保証) 設定ガイドライン | GREE Engineering
  • 相手がいないのに ESTABLISHED になってる TCP ポート - tmtms のメモ

    最近 ParallelServer というライブラリを作ったのですが、その最中に奇妙な状態になってる TCP ポートを見つけたので、メモっておきます。 Ruby では TCP サーバーは次のような感じで作ることができます。お手軽ですね。 require 'socket' Socket.tcp_server_loop(12345) do |socket, client_addr| socket.puts "Your IP address: #{client_addr.ip_address}" name = socket.gets socket.puts "Hello, #{name}" socket.close end これは 12345 ポートでクライアントからの接続を待ち、接続されたらクライアントのIPアドレスとクライアントからの入力をクライアントに送信して切断するだけの簡単なプログラム

    相手がいないのに ESTABLISHED になってる TCP ポート - tmtms のメモ
  • Linux Performance

    static, benchmarking, tuning: sar, perf-tools, bcc/BPF: bpftrace, BPF book: Images license: creative commons Attribution-ShareAlike 4.0. This page links to various Linux performance material I've created, including the tools maps on the right. These use a large font size to suit slide decks. You can also print them out for your office wall. They show: Linux observability tools, Linux static perfor

  • Linux システムコールのブロック・ノンブロックまとめ

    はじめに Linux にはブロックするシステムコールとノンブロックなシステムコールがあります。さて、システムコールが「ブロックする」とはどういうことでしょうか。よく、ブロックするシステムコールとは「処理が完了するまでプロセスの動作が中断され待たされること」という説明を見ますが、より詳細に、どういう処理の場合に待たされるのか、整理してみましょう。 「ブロックする」とは Linux において、システムコールがブロックするとは、「プロセスが、システムコール呼び出しの延長で待状態(TASK_INTERRUPTIBLE or TASK_UNINTERRUPTIBLE) に遷移し、CPU時間を消費せずにあるイベントが完了するのを待つようになる」、ことを指します。ブロックするシステムコールのうち代表的なものと、完了待ち対象イベントをまとめると、以下のようになります。 システムコール待ち対象イベント re

    Ehren
    Ehren 2014/07/25
  • Fedora20でRHEL7を体験してみた - afnf.net

    RHEL7がやってくる 仕事柄、UbuntuよりもRHELを使うことが圧倒的に多いワタクシ。RHEL6系に慣れ親しんできましたが、そろそろRHEL7のお勉強をしないといけません。CentOS7が出るまでのお試しとして、Fedora20を使ってみました。 CentOS6.5で構築していた、blog-java1の環境を再現することを目標とします。 インストール LXDEの32bit版LiveCDから、VMware Playerの仮想マシンにインストールしました。32bit版LXDEを選んだのは、なんとなくです。 特に悩むようなことは無く、さくっと完了。 ネットワーク設定 RHEL7は、デフォルトでifconfigが入っていないそうです。yum install net-toolsでインストール可能ですが、インターネットに出れないとどうしようもないですねw /etc/sysconfig/netwo

  • Etsukata blog: iostat -x の出力を Linux Kernel ソースコードから理解する

    はじめに iostat は IO の出力速度や待ち時間の計測によく使われるコマンドです。"-x" オプションをつけると、平均待ち時間(await)やリクエストキュー長(avgqu-sz)、サービスタイム(svctm)などの詳細な情報を出力することができ、とても便利です。データベースをはじめとし、各種アプリケーションのパフォーマンスを計測するための重要な指標となります。 今回は、これらの出力結果について、より詳細かつ正確な意味を、Linux Kernelのソースコードを読んで理解しましょう。かなり長くなってしまったので、意味を把握したい方は下の方の "iostat -x 出力結果まとめ" をご覧ください。 iostatの挙動 まず、iostatの挙動を調べます。iostatは、read_sysfs_file_stat()で指定したインターバルごとに /proc/diskstats の情報を読

    Ehren
    Ehren 2014/07/15
  • The Linux Page Cache and pdflush

    The Linux Page Cache and pdflush: Theory of Operation and Tuning for Write-Heavy Loads As you write out data ultimately intended for disk, Linux caches this information in an area of memory called the page cache. You can find out basic info about the page cache using tools like free, vmstat or top. See http://gentoo-wiki.com/FAQ_Linux_Memory_Management to learn how to interpret top's memory infor