Deoptimization: How YJIT Speeds Up Ruby by Slowing Down / RubyKaigi 2025

Chris's Wiki :: blog/linux/ReplacingNetstatNotBad もはや Linux で ifconfig や netstat といった昔からある(つまり Unix 由来の)ネットワークツールを非推奨にして、ss や ip といったものに置き換えているという話をワタシが知ったのは……記憶を辿ると、どうやら山形浩生経由らしい。 この方針に対し、古手のシステム管理者には、なんで安定して動いているものを置き換えなければならないのかとイライラする向きもあるのだが、それが必要な理由について解説している。 まず一つには、/proc 配下のいろんなファイルを読む ifconfig や netstat は、iproute2 の一部であり netlink ソケットを利用する ss や ip よりもコマンドの実行が非効率というのがある。これが大規模なシステムだと問題になるとい
kunst1080.hatenablog.com シンプルそうな問題でありながら、実は手強いネタで、 背後にいろんな理由が工夫やあるのだな〜と非常におもしろかったです. この手の調査では strace を取ってシステムコールを追いかけたくなる。find(1) が呼び出す getdents(2) がどんな風に動作するのか、あるいは mv、つまり、rename(2) と併用したケースなど 調べようとすらしたことなかったなと思い実験をした このエントリで取り扱うお題 getdents(2) で 1ディレクトリエントリずつ読み出して rename(2) していくと、ファイルシステムによってどんな違いがでるか? 先のブログで書かれていた find(1) + mv(1) あるいは readdir(3), fts_read(3) ではなく、システムコールを直接呼び出して実験する. コマンドやライブラリの
In Visual Studio 2017 15.4 you can now target Linux from your CMake projects. This enables you to work on your existing code base that uses CMake as your build solution without having to convert it to a VS project. If your code base is cross-platform you can target both Windows and Linux from within Visual Studio. This post will give an overview of the CMake support for Linux in Visual Studio. You
どうもこんばんわ。システム運用担当のButameronです。 トラブル対応の備忘録として時々不定期にこんな記事も書いていこうと思います。 OPAP-JPでは、定期的な簡易バックアップにbtrfsのスナップショット機能を使っています。 (オンラインfsckすらない実験的なファイルシステムを実運用で使うというあたり、壊滅的にダメな人です。どうもこんばんわ。) これの良いところは、Copy on Writeの仕組みでストレージを効率的に使えることです。 あるファイルを一切変更しなければ、いくらそのスナップショットを作ってもほぼそのファイルひとつ分だけの領域だけしか占拠しません。限られたストレージ容量を効率的に使いながらファイルの履歴を保存するという用途に重宝するというわけです。(上手く使えば、遠隔バックアップも効率的に行うことができます) さて、ConoHa支援プログラム でVPSの無償提供を受
主にアプリケーション開発者向けに、Linuxサーバ上の問題を調査するために、ウェブオペレーションエンジニアとして日常的にやっていることを紹介します。 とりあえず調べたことを羅列しているのではなく、本当に自分が現場で使っているものだけに情報を絞っています。 普段使っているけれども、アプリケーション開発者向きではないものはあえて省いています。 MySQLやNginxなど、個別のミドルウェアに限定したノウハウについては書いていません。 ログインしたらまず確認すること 他にログインしている人がいるか確認(w) サーバの稼働時間の確認 (uptime) プロセスツリーをみる (ps) NICやIPアドレスの確認 (ip) ファイルシステムの確認(df) 負荷状況確認 top iostat netstat / ss ログ調査 /var/log/messages or /var/log/syslog /
2016年2月17日に公開されたGNU Cライブラリの複数の脆弱性の内、CVE-2015-7547*1は任意のコードが実行可能であるとしてGoogleが報告しています。ここではこれら脆弱性に関連する情報をまとめます。 脆弱性情報 Vulnerability Note VU#457759 glibc vulnerable to stack buffer overflow in DNS resolver JVNVU#97236594: glibc にバッファオーバーフローの脆弱性 CVE CVE-2015-7547 CVE-2015-8776 CVE-2015-8778 CVE-2015-8779 影響 DoS/RCE DoS DoS DoS 重要度 High Low Low Low ステータス PoC公開 PoC公開 PoC公開 PoC公開 対策 修正版へ更新 修正版へ更新 修正版へ更新 修
■□■□■□■□■□続きもあります■□■□■□■□■□ サーバーだけじゃない! Linux デスクトップを使い倒そう! その2 http://www.slideshare.net/ftake/20140301-31817090 ■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□ Linux のデスクトップ環境※は十分に使えるようになってきてました。 本セミナーでは、Linux デスクトップが Windows の変わりになるか?という視点ではなく、 Linux デスクトップだからこそできること、最大限活用する上で気をつけるべきことを中心に紹介します。 ※主に GUI を使用して、ドキュメントを閲覧・作成したりする環境。もちろん、ノートパソコン上の 環境も含みます。 ■主なトピック インストール・メンテナンス方法 カスタマイズ性、軽量性、デザインどれを取る?色々選べるデスクトップ環境
連載バックナンバー 本連載では、ネットワーク管理の基本コマンドを順を追って紹介していきます。基本書式と用法、主要なオプション、用例サンプルを示しますので、manやhelp代わりに通読し、各コマンドでできることを順次おさらいしてみてください。今回は、一時的なルーティングテーブル(IP経路テーブル)の変更に利用する「route」コマンドを紹介します。 なお、本連載では、執筆時点の最新版「Red Hat Enterprise Linux(RHEL)」および「CentOS」環境で動作を確認しています。また、用法事例はIPv4(Internet Protocol version 4)ネットワークを前提にしています。コマンドのサンプルなどで一部環境に依存した出力例となる場合がありますので、その際には適宜ご自身の環境に合わせて読み替えてください。 IP通信の経路情報を静的に設定するときには、「route
大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog を書きましたが、awk file > file より cat file|awk > file が速い環境は稀なようなので、私の環境でなぜ cat file|awk > file のほうが速いのか調べてみました。プロセススケジューラが関係しているようです。 ↑はPerf + Flame Graphs で、awk file > file 実行時のコールスタックと所要時間を可視化したものです。 結論(たぶん) SSDの暗号化・復号をカーネルスレッドで行なっているのと、プロセススケジューラが awk とカーネルスレッドを同じ CPU にスケジューリングしていた(他に空いている CPU があるのに)。 awk file > file では暗号化データを復号するカーネルスレッドと awk のプロセスをプロセススケ
2015-07-21 x86 Linux シェルコード作成 pwn シェルコードとは ソフトウェアの脆弱性攻撃のペイロードであり、バイトコードで記述されます。そのため、CPUやOSのバージョンといったプラットフォーム毎に作成されます。 シェルコードという名称は一般的にシェルを起動することが攻撃者にとって楽にマシン全体の制御を奪う方法であり多用されているからですが、実際のところシェルコードはどのような処理も記述することができます。 x86 Linux シェルコード作成の前提知識 アセンブリ言語 シェルコードのバイトコードは、マシン語命令のアーキテクチャによって異なるため、アセンブリ言語で記述することになります。 Linuxシステムコール OSはカーネル内で入力、出力、プロセス制御、ファイルアセクス、ネットワーク通信と行ったタスクを管理します。 C言語のプログラムは最終的に、こういったタスクを
「GNU/Linux Distribution Timeline」は、1992年に公開された世界最初のLinuxディストリビューション「SLS」以来の、膨大なLinuxディストリビューションの歴史を年表形式で表したものです。(ソースコード、Hacker News)。 例えばメジャーなディストリビューションの一つRedHatからは、こんなにたくさんの子孫が派生していることがわかります。検索してみたら、KondaraとかVineとかLinuxメインのディストリビューションもしっかり含まれていたので、かなり網羅率は高そうです。 最近人気のたかいUbuntuからもたくさん分岐しています。 膨大すぎて一覧表示できないのが難点ですが、Linuxマニアならおさえておきたいタイムラインですね(汗
Linuxの起動処理は、これまでinit/upstartと呼ばれる仕組みで行われていました。Red Hat Enterprise Linux 7 (RHEL7)では、これが、systemdと呼ばれるまったく新しい仕組みに置き換わります。Fedoraでは、すでに先行してsystemdが採用されていますが、この連載(?)では、Fedora 17での実装をベースとして、systemdの考え方や仕組み、利用方法を説明していきます。今回は、systemdの動作の基礎となる「Unit」の概念を理解します。 systemdを採用したFedoraでLinuxの基礎を学びなそう!という方には、「「独習Linux専科」サーバ構築/運用/管理――あなたに伝えたい技と知恵と鉄則」がお勧めです。(^^/ systemdの考え方 参考資料 ・Rethinking PID 1:systemdの開発者であるLennart
とりとめもなく書いてみる。主にルーキー向けです。 サーバの運用とかやっていると、不定期ではあるが、たまにタイトルのようなディスク容量が逼迫する話題に直面します。 まぁ、それが起こるのは一旦良いとして、みんなこういう時、どうやって調べているのだろう? とりあえず、僕がどうやってるか書いてみます。 何はともあれ現状確認 みんな大好き"df"コマンドです。細かい説明は省きますが、各パーティション・ファイルシステムごとにディスクの使用状況を確認。 # df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/sda3 130G 88G 36G 72% / /dev/sda1 494M 23M 447M 5% /boot tmpfs 12G 0 12G 0% /dev/shm正確とは言いませんが、だいたいどのパーティションにどのくらい容量が空いているかが確認できます。 ど
サーバの動作に異常が発生した際に原因を探るためのLinuxコマンドで、自分用のメモです。 全てmanとかググったら出てくるので説明は適当です。思いついたら後で追記していくかもです。 対象はDebian Squeezeになります。 全てパッケージインストールできるもので、パッケージ名は [in packagename] としてあります。 各所よりコメントありがとうございます。 良さ気なコマンドは追記していきます。 <追加したコマンド> * telnet (+コメント wget, netcat) * arp (+コメント arpwatch) * pstree * fdisk コメントに gdisk * host, dig * watch * reboot
LXC の解説に必要なので、ちょいと cgroups についてまとめておきます。RHEL6.0 前提です。 参考資料: RHEL6 リソース管理ガイド Control Groups(cgroups) の概要 cgroups とは 最近の Linux は、あるプロセスの実行を許可する CPU コアの指定など、プロセスごとにさまざまなリソース制御ができるようになっています。このような制御を複数のプロセスをグループ化したグループ単位でできると便利な場合があります。cgroups は、グループ単位でリソース制御を行うためのユーザ・インターフェースを特殊ファイルシステムの形式で提供します。 cgroups 自体がリソース制御の機能を提供するわけではありません。既存のリソース制御機能(cgroups の用語で『コントローラ』もしくは『サブシステム』と言います)を cgroups のインターフェースを利
Linux等で、ファイルの特定の行に、ある文字列を挿入(追加)したい時のコマンド(sed)サンプルを備忘録的に。 前提 こんなファイルがあります。 $ cat test.txt line1 line2 line3 2行目に挿入 $ sed -e "2i hoge" test.txt line1 hoge line2 line3 2行目直下に挿入 $ sed -e "2a hoge" test.txt line1 line2 hoge line3 "line2"の行前に挿入 ※この辺の正規表現は、要件に応じて適当に変えてー。 $ sed -e "/^line2$/i hoge" test.txt line1 hoge line2 line3 "line2"の行後に挿入 $ sed -e "/^line2$/a hoge" test.txt line1 line2 hoge line3 sed
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く