タグ

linuxに関するhohoho_ho2005のブックマーク (589)

  • Linux スケジューラーのコア実装とシステムコール - Qiita

    はじめに これは Linux Advent Calendar 2016 の第 11 日目の記事です。Linux のタスクスケジューラーのソースコードや関連するドキュメントなどを読んで分かったことをまとめました。とても長いです・・・ はじめにスケジューラーのアーキテクチャと重要な概念を紹介し、その後はスケジューラーコアとシステムコールの実装について分かったことを延々と述べます。調べきれなかったことや分からなかったことは TODO に残したので、コメント欄とかツイッターで教えてもらえると嬉しいです。間違いの指摘も大歓迎です。 ちなみに私が読み始めたきっかけは、スケジューラーのアーキテクチャ、スケジューリングアルゴリズム、スケジューリングアルゴリズムの切り替え方、nice 値やプロセッサアフィニティがスケジューリングに及ぼす影響、プリエンプションの流れ、マルチプロセッサにおけるタスクのロードバラ

    Linux スケジューラーのコア実装とシステムコール - Qiita
  • psコマンドについて詳しくまとめました 【Linuxコマンド集】

    psはLinux上で現在動作しているプロセスを表示するコマンドだ。Linuxは一見単純な操作でも、内部では数多くの処理から成り立っている。プロセスとは、Linux内の一つ一つの処理のことだ。 grepコマンドを実行すれば、指定したファイルを開いて検索文字を探す処理を行う。またコマンド未入力の時点でも受付待機の処理中であり、何かのコマンドが入力されれば、そのコマンドに準じたプログラムを呼び出す処理を行っている。これら一つ一つの処理がプロセスだ。 このページではpsコマンドを使ったLinuxの動作状況の確認方法を解説する。 Linuxの動作が遅い時の原因を追究したり、不要なアクセスを監視したりすることもできるので、Linux管理者にとっては必須のコマンドだ。 ぜひ、この機会に覚えておいてほしい。 psコマンドの基 コマンドの基動作 使い方は、次のとおり簡単だ。 $ ps 現在、Linux

    psコマンドについて詳しくまとめました 【Linuxコマンド集】
  • 貧弱なメモリでも仮想環境を立てたい!!〜LXCを使う〜 - Qiita

    記事は 新人Advent Calendar 2016 の6日目の記事です。 背景 私、インフラエンジニアなのですよ。仮想マシン立てて検証とかしたいじゃないですか。Ansibleで複数のホストをプロビジョニングとかしたいじゃないですか。 ところがですね、職場で支給されるPCWindows 7 32bit版、メモリ 4GB とかいう貧弱なPCなんですよ。 一応、検証環境はあるんですけど、IPアドレスの申請が必要で、ちょっと試したい目的には申請・承認フローがめんどくさいし、そもそも、IPが枯渇気味らしい。 2038年まで待ってられない ということで、仕方ないので、軽量仮想コンテナで我慢することとしています。 コンテナといえばDockerみたいな時代ではありますが、インフラエンジニア的にはシステムコンテナの LXC かなと思うわけです。 それに、ガチモンの仮想マシンより、圧倒的に速いので、自

    貧弱なメモリでも仮想環境を立てたい!!〜LXCを使う〜 - Qiita
  • 明日使えない Linux の capabilities の話 - @nojima's blog

    (この記事は KMC アドベントカレンダー 2016 の3日目の記事です) はじめに みなさん以下のようなことで困ったことはないでしょうか? ポート80を listen したいけど特権ポートなので、一般ユーザの権限で動くデーモンでは bind できない。 1024未満のポートは特権ポートと呼ばれ、一般ユーザの権限では bind することはできません。 この問題の解決策を考えてみます。 (なお、長々と説明を書いていますが、結論だけ知りたい人は一番下だけ読んで下さい) root で起動 まず、root であれば特権ポートを自由に bind できるので、root で対象デーモンを起動すれば、特権ポートを bind できます。 しかし、デーモンを root として動作させるのは一般にリスクが大きいです。 もしそのデーモンに脆弱性があった場合、root 権限を悪用される可能性があるわけです。 したが

    明日使えない Linux の capabilities の話 - @nojima's blog
  • statファミリ-のメモと、カーネルチューニング - Qiita

    調査をするときに使うが、毎回忘れてしまうので自分用にメモ statファミリーまとめ dstat 美しい! 目で見るならこれ。 最も役に立つ参考サイト:http://qiita.com/harukasan/items/b18e484662943d834901 vmstat メモリやCPUを見る時に使う。 iostat ディスクIOを見るときに使う。 netstat ネットワークの状態を見るときに使う。 カーネルチューニングとKVS設定 net.core.somaxconn TCPのmax connection数。 参考サイト:http://d.hatena.ne.jp/tetsuyai/20111220/1324466655 例えばmemcacheやRedis等のKVSを使うときは、memcachedのtcp_backlogや、Redisのmaxclientsの数値以上にあげたほうがいい。

    statファミリ-のメモと、カーネルチューニング - Qiita
  • sedのパターンスペース・ホールドスペースの動作を図で学ぶ - Qiita

    概要 sedは、入力ストリームに対して様々なテキスト変換をおこなう、ストリームエディタです。 cut, grep, trといった基的なフィルタコマンドと比較して、柔軟なテキスト処理が可能です。 このsedの機能の1つとして、パターンスペース・ホールドスペースがあります。 高度なテキスト処理が可能になる反面、パターンスペース・ホールドスペースは、動作が理解し辛いという難点があります。 ですが、sedのパターンスペース・ホールドスペースの動作を丁寧に解説した記事は、私が探した限りでは見つかりませんでした。 そこで、sedを深く学ぶ方への助けとして、また私自身の復習として、sedのパターンスペース・ホールドスペースの動作を、記事としてまとめました。 記事では、sedのパターンスペース・ホールドスペースの動作を、図示して解説します。 実行環境 Arch Linux 4.8.8-2-ARCH G

    sedのパターンスペース・ホールドスペースの動作を図で学ぶ - Qiita
  • [Linux/CentOS] パスワードなしでsudoできる設定を行う(グループ別、ユーザー別) - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日はLinuxでroot権限でコマンドを実行するsudoについて、パスワードなしで行うための設定をブログに書きたいと思います。 目次 設定する対象 以降の説明は以下のコマンドで編集を行います。 $ sudo visudo グループ別に指定する グループ別にパスワードなしを設定するには、visudoコマンドで以下の内容を追加します。 # visudo # my_opeグループにパスワードなし設定を行う場合 %my_ope ALL=(ALL) NOPASSWD: ALL また、特定のコマンドのみパスワードなしにしたい場合には、以下のように設定します。 # visudo # my_opeグループにshutdownのみパスワードなしできるようにする %my_ope ALL=(ALL) NOPASSWD: /sbin/shutdown ここでのポイントはグル

    [Linux/CentOS] パスワードなしでsudoできる設定を行う(グループ別、ユーザー別) - YoheiM .NET
  • umountコマンドについて詳しくまとめました 【Linuxコマンド集】

    umountコマンドの基 コマンドの基動作 使い方は、次のとおりだ。 $ umount デバイス名またはマウントポイント デバイス/dev/cdromをアンマウントする場合は、次のコマンドだ。 $ umount /dev/cdrom はじめにmountコマンドでマウント内容を確認すると、/dev/cdromがマウントされていた。 その後、上記コマンドでアンマウント後、再度mountコマンドでマウント内容を確認したところ、デバイス/dev/cdromがアンマウントされている。 umount関連コマンド 最後にumountコマンドに関連して、基的なディスクの管理のコマンドも紹介しておく

    umountコマンドについて詳しくまとめました 【Linuxコマンド集】
  • ざっくりと一通り理解する!Linuxのログ調査方法

    Linuxはサーバで使われることが多く、サーバではログのチェックが必須項目だ。 このページではログの調査方法についてざっくりとまず知っておきたいところをまとめている。参考にしてほしい。 Linuxでログを調査するには? Linuxの場合基的に「/var/log」の下にログが残ることは別途ページで解説したとおりだ。rsyslogの設定にも触れたが「ログの見方」というところをあまり触れていなかったと思う。 「/var/log」の下に残されているログは、大体がテキストデータである。一部では専用のコマンドで閲覧するバイナリとしてログがとられているファイルも存在するが、ログは基的にテキストデータと考えて問題ない。 テキストデータなので「grep」コマンドなどで絞りこみや「tail」コマンドでのリアルタイムな監視、「less」コマンドなどによる、閲覧が可能となっている。テキストデータのほうが特殊な

    ざっくりと一通り理解する!Linuxのログ調査方法
  • バイナリレベルでの調査に使用するLinuxコマンドメモ - Qiita

    [rso@localhost log]$ cat /etc/issue CentOS release 6.3 (Final) Kernel \r on an \m [rso@localhost log]$ file /bin/ls /bin/sh /var/log/messages /dev/sda /dev/tty11 /tmp /tmp/test.pl /tmp/hoge /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped /bin/sh: symbolic link to `bash' /var/log/messages: ASCII English text /dev/sd

    バイナリレベルでの調査に使用するLinuxコマンドメモ - Qiita
  • Linux コンテナの基礎 / KOF 2016

    "KOF 2016" の発表資料です。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。

    Linux コンテナの基礎 / KOF 2016
  • 原理原則で理解するフォアグラウンドプロセスとバックグラウンドプロセスの違い - Qiita

    topはバックグラウンドで実行できない? 突然ですが、Unixライクな端末上での処理で下記のようになる理由はわかりますか? また、こうなってしまうのを防ぐ方法はないのでしょうか? シェルでOSを操作するときに、バックグラウンドプロセスとフォアグラウンドプロセスという言葉をしばしば耳にしていると思います。 エンジニアであれば、聞いたことがないという人はいないでしょうし、その違いも何となく知っているとは思いますが、体系的に理解する機会があまりなかったという人もいるのではないでしょうか? もともとはデーモンプロセスについてQiitaに投稿しようと思って記事を書いていたのですが、デーモンプロセスの性質上どうしてもバックグラウンドプロセスというものに言及しなければならなく、その説明も含めて一個のエントリにしてしまうと煩雑になると思い、今回はバックグラウンドプロセスにフォーカスしてみました。 上記はプ

    原理原則で理解するフォアグラウンドプロセスとバックグラウンドプロセスの違い - Qiita
  • tcpdump の便利なオプション - Qiita

    messages とかに kernel: device eth0 entered promiscuous mode のようなログが残らなくなります。その代わりそのホスト宛てのパケットしかキャプチャされません。 カーネルログが監視されててもこっそりキャプチャ出来ます。 -w file キャプチャ結果をファイルに出力する。出力されたファイルは Wireshark で開けます。

    tcpdump の便利なオプション - Qiita
  • Top 20 OpenSSH Server Best Security Practices

    OpenSSH is the implementation of the SSH protocol. OpenSSH is recommended for remote login, making backups, remote file transfer via scp or sftp, and much more. SSH is perfect to keep confidentiality and integrity for data exchanged between two networks and systems. However, the main advantage is server authentication, through the use of public key cryptography. From time to time there are rumors

    Top 20 OpenSSH Server Best Security Practices
  • Systems Performanceを読んだ

    Brendan Greggによる“Systems Performance: Enterprise and the Cloud”を読んだ. Linux(Solaris)のパフォーマンスの分野でBrendan Greggという名前を聞いたことがあるひとは多いと思う.名前を知らなくてもが書いているブログやカンファレンスでの発表資料を見かけたことはあると思う.また彼が開発したFlame Graphにお世話になってるひともいるのではないか(ref. GolangでFlame Graphを描く).とにかくパフォーマンスに関して常に先端にいるひとである. そんな彼がSystems(ここでいうSystemsとはCPUやメモリといったハードウェアとKernelやOSといったソフトウェアを指す)のパフォーマンスについて内部のアーキテクチャーを含め徹底的に解説したのが書である.面白いに決まってる. 書の根底

  • あなたの知らない less の世界 - Qiita

    最近 prezto 入れたんですよ。prezto。そしたらいつものシェル世界が見違えるほど使いやすくなって身長も 3 メートルくらい伸びたんですが、それは余談でして、prezto 入れた後に less 使ってみたら余りの変わりっぷりに驚いたんです。 これを機に man page を読み直してみたら更に驚き。less ってこんなスゴイ物だったのか!みたいな。今回はそんな less の底力を紹介します。 環境変数 $LESS less には様々なオプションがあるのですが、これを予め環境変数 $LESS に設定しておくと、毎度 less ファイル名 と打つだけでそれが有効になります。更に、後述しますが、この設定は less 起動中にオン・オフして切り替えることが可能です。 # 最低限でもこれくらいは設定しておこう export LESS='-i -M -R' # 僕は後述の物を全部付けてます(-

    あなたの知らない less の世界 - Qiita
  • Amazon Linuxがコンテナ化されたので、Macで動かしてみた。 - Qiita

    cloudpack大阪の佐々木です。 Amazon Linuxがコンテナ化され、ECSでもオンプレのDockerでも動かせるようになったようです。 https://aws.amazon.com/jp/blogs/aws/new-amazon-linux-container-image-for-cloud-and-on-premises-workloads/ 早速やってみます。 AmazonLinuxコンテナはECR上に保存されているので、ECRへのログインコマンドを取得します。リージョンはap-northeast-1でも取得できました。

    Amazon Linuxがコンテナ化されたので、Macで動かしてみた。 - Qiita
  • あなたの知らない time(1) の世界 - kuenishi's blog

    自分が書いたプログラムのメモリ使用量を測定したいことがある。プログラムがOOM Killerによってお亡くなりになった場合や、ページフォルトをなくして高速化したい場合などだ。定常的に起動するサーバーのプログラムなら、sarや meminfo など(今なら Datadog とかだろうか)を使ってじーっと見つめるわけだ。もっとモダンにやるなら perf や DTrace を使ってもよいかもしれない。しかしこれらのツールは基的にプロセスIDを渡してサンプリングして外から覗く方法だ。 わたしのユースケースはデーモンプロセスではなく、 main から入って必要な計算をして、それが終わったら main を抜けるバッチジョブ(単にコンソールから実行して終わるまで待つ、いわゆる "Hello world!" 的なやつ)だ。これだと、プログラムが起動して終わるまでそこそこの時間で終わってしまって、外部プロ

    あなたの知らない time(1) の世界 - kuenishi's blog
  • Linux入門 ~「パスを通す」とは~ - Qiita

    概要 ある程度プログラミングの経験のあるかたなら、 「パスを通す」という作業をしたことあるのではないでしょうか? こんなコード 今回は、パスを通すというのは一体なんなのか、なにをしているのか、というのを プログラミング入門者がわかるよう説明します。 結論 結論から入ります。 パスを通すとは 環境変数($PATH)の記述を変えて、コマンド検索パスを追加することです。 この定義を読み解いていきましょう。 環境変数 漢字が連なっていて難しそうですね。 変数というのは、数学なのででてくる「変数x」と全く同義です。 環境変数は、特別な変数で ローカル環境(ご自身のパソコン)全てで使える変数です。 言葉で説明されてもあまりピントこないと思うので実際に試してみたいと思います。 ご自身のターミナルを開いてください。 環境変数、$TEST、というものを定義してみましょう。 下のコマンドをターミナルで実行して

    Linux入門 ~「パスを通す」とは~ - Qiita
  • Linuxの/bin、/usr/bin、$HOME/binのそれぞれの役割 - Qiita

    この前Scalatraを使うためにConscriptというものをインストールしてて、こいつが~/binディレクトリを作っていて、あれ、そこなんやと思い調べてみた。 それぞれのbinディレクトリの役割と、あるプログラムをビルド・インストールする時に、/binか、/usr/binか、~/binどこが適切なのかについて。 まずbinってなんや まずbinってなんなんや。 binとは、Binary codeのことでようするに実行可能プログラム置き場ということ。バイナリということはコンパイル型の言語により作られたプログラムが置かれるのだろう。 そしてLinuxのディレクトリ構成については以下の記事がすごくよかった。ここで読めておいてよかったなと思った。 まずは/binについて /binには、FHSによって定められたシングルユーザを含めたどのユーザでも使えるコマンドだけが入る。FHSの定めたコマンドに

    Linuxの/bin、/usr/bin、$HOME/binのそれぞれの役割 - Qiita