タグ

Linuxに関するdevelopmasoのブックマーク (12)

  • Linuxサーバーの最適化: vmstatとiostatを活用した性能分析と対処法 - Qiita

    Linuxサーバーの最適化: vmstatとiostatを活用した性能分析と対処法 0.目的 インフラ開発者として、必須な性能分析を身につけることを目的としています。 カーネルパラメータをチューニングをする際に性能分析を前提とし、分析結果からチューニングしていきますが、具体的な指標というものが少ないので参考になれば幸いです。 基的なvmstatの使い方については、ちょっとググればいくらでも出てくるので割愛します。 「Linuxカーネルパラメータのチューニング&設計」でロードアベレージが高い状態にある場合、次のアクションとしてCPU使用率の確認が必要となりますので、vmstatの結果分析および対処法について深堀していきます。 よって、vmstatの結果分析と対処法を理解すると性能試験を実施した際のその対処法とカーネルパラメータによるチューニングする対象が理解できるかと思います。 1.パフォ

    Linuxサーバーの最適化: vmstatとiostatを活用した性能分析と対処法 - Qiita
  • Linuxの基礎用語を完全理解するためにエンジニアが作成した「10のミニプロジェクト」とは?

    by Adam Harvey Linuxを利用していると「シェル」や「grep」「プロセス」といった言葉を目にします。エンジニアのCarl Riis氏はそんなLinuxの基礎用語の意味や仕組みをさまざまなウェブサイトから学習し、「10のミニプロジェクト」を作成することでスキルを向上させたとして、その詳細を公開しています。 Getting better at Linux with 10 mini-projects - carltheperson https://carltheperson.com/posts/10-things-linux GitHub - carltheperson/10-things-linux: Getting better at Linux with 10 mini-projects. https://github.com/carltheperson/10-thing

    Linuxの基礎用語を完全理解するためにエンジニアが作成した「10のミニプロジェクト」とは?
  • Linux procfs 徹底入門

    これは Linux Advent Calendar 2019の 15 日目の記事です。procfs について勉強したことをまとめます。 検証環境CentOS 8 を利用する。 ]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) ]# uname -a Linux localhost.localdomain 4.18.0-80.el8.x86_64 #1 SMP Tue Jun 4 09:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux procfs とは疑似ファイルシステムのひとつ。 ディスク上に実体は存在せず、メモリから情報を取得する。 カーネルだけが知っている情報 (例えばシステム全体のロードアベレージ/CPU負荷/メモリ利用状況や、プロセスごとの情報)が取得できる。

    Linux procfs 徹底入門
  • Linux ファイルシステム 徹底入門

    引用 プログラマが知っておくべき、メモリ/ディスク/ネットワークの速度まとめ メモリとストレージデバイスではかなりの性能差があることがわかる。そのため、ディスクへの I/O を減らすことが重要になる。これを実現するために、 Linux ではディスクから取得した情報をメモリに余裕がある限りキャッシュするようになっている。メモリに余裕がある限り、キャッシュをじゃぶじゃぶと使い、メモリに余裕がなくなってきたタイミングで回収される。ページ回収の仕組みは今回は扱わないため、詳細を知りたい方は 4.8 スワップアウトとページの破棄 を参考にすること。 openまず、構造体の関係性を図示する。 参考 Linux 仮想ファイルシステム・スイッチの徹底調査 inodeinode は各ファイルやディレクトリの実体を管理する構造体。 参考 linux/include/linux/fs.h 大まかに、次のような情

    Linux ファイルシステム 徹底入門
  • Linuxカーネル開発者を目指す人のための無料オンラインコースが提供開始

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Linuxカーネル開発者を目指す人のための無料オンラインコースが提供開始
  • たのしく学ぶLinuxカーネル開発(第一回): `rm -rf /`実行時にカーネルパニックさせる - Qiita

    はじめに Linuxカーネル開発を学ぶためにhello worldモジュールからはじめて少しづつ強化する記事を過去にいくつか書きました。これはちゃんとやれば身に付くことは身に付くのですが、非常に地味なので、よほどカーネルに興味を持っている人以外には退屈でしょう。そこで、目的をもって特定の機能をカーネルならではの方法で実現する記事を書けば面白いのでは…となったのでここに初回を書くことにしました。 対象読者はCライクなプログラミング言語での開発経験がある人です。Cのポインタがわかればなおよし。もしできればOSカーネルについての基的な知識も欲しいです。 背景 UNIXが誕生してから現在に至るまでrm -rf /によって全ファイルをぶっ飛ばす事件が後をたちません。GNUのcoreutilsに入っているrmではルートディレクトリ("/")への操作を特別扱いして容易に悲劇を起こさなくするpreser

    たのしく学ぶLinuxカーネル開発(第一回): `rm -rf /`実行時にカーネルパニックさせる - Qiita
  • 自作OSとかLinuxカーネルについて役立った本 - Qiita

    はじめに なんらかの理由によってOSやOSカーネルに興味を持つ人は多々います。しかし、その次のステップとしてどんなを読めばいいんだろうと思っている人はこれまたいっぱいいます。そこで、長年Linuxカーネルにかかわってきた筆者がこれまでに読んでよかったと思うものについてここの列挙しました。紹介するのはだけであって、記事は省いています。もう一点、筆者が書いたものは省いています。 OSそのものに興味を持った人は、その後に興味の方向が次のような二つに分かれることが多いと筆者は考えています。 オレオレOSを作りたい 既存のOSを改造したい この仮説をもとに、それぞれについて筆者がかつて真面目に読んだの中から「自作OS」および「Linuxカーネル」というキーワードでよかったものを挙げておきます。Linux以外の既存OSについては語れるほどの知識はないので書いてません。 筆者について の良し悪し

    自作OSとかLinuxカーネルについて役立った本 - Qiita
  • 『なるほどUnixプロセス』を読む前にちょっとだけナルホドとなる記事

    はじめに この記事では、UnixのプロセスのことやUnix環境のことについてチョットワカッタ気持ちになっていただくことを目的に、RubyをつかってUnixプロセスについて触れていきます。読み終わったあと、チョットワカッタカモという気持ちになっていただけたり、著者が訳者として関わっている『なるほどUNIXプロセス』を手に取ってもらえたりすると幸いです。 なお、この記事の内容は、オープンソースカンファレンス2015 Hokkaido での jus 研究会で行った発表内容をまとめ、原稿におこしたものになります。 それでは、さっそく題に入っていきましょう。 コマンドを実行する ふだん、みなさんは作業中にターミナルからたくさんのコマンドを実行しているはずです。まずは、この「ターミナルからコマンドを実行する」ことについて見ていきましょう。 コマンドとプロセス Unixでは、あらゆるコマンド、プログラ

  • 低レイヤーを学ぶための技術書をまとめてみる - Qiita

    半年前から低レイヤーに関する勉強をしている。 その中で読んだ技術書の感想、そしておすすめの読む順番をここにまとめてみる。 OS 30日でできる! OS自作入門 おすすめ度:80(満点100) 一言:自作OSの初心者向け 自作OSでまず初めに候補に挙がるのがこの。2006年に出版されたではあるが、OSの根幹を理解するにはとても良い。最初からアセンブリでメモリ操作をがっつり書くため、アセンブリの経験やレジスタ周りの知識が無いと挫折してしまうかも知れない。そこを乗り越えれば楽しくOSを実装していける。 コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方 おすすめ度:95 一言:一からOSを作って学べる格的な指南書 論理回路と呼ばれるレベルからメモリやCPUを作っていき、アセンブリ言語やアセンブラの開発、そして独自言語とそのコンパイラ、OSまで開発する。CPUなど各要点の考え方

    低レイヤーを学ぶための技術書をまとめてみる - Qiita
  • RustでLinux用シングルバイナリを作るまで

    Table of Contents はじめに 経緯 二週間前にRustでツールを作り始めた記事を書きました。 文にもある通り、シングルバイナリを作成できどこでも実行できると思ったのが理由の1つです。 しかし世の中はそう甘くありませんでした。 何が起きたかは次章で説明します。 筆者の環境 WindowsホストOSとして、VMで16.04.5 LTS (Xenial Xerus)を使っています。 Rustのコンパイルも上記VMのUbuntu上で行っています。 筆者のスペック 先の記事にある通り、C系やローレイヤーの知識に疎いです。 そのおかげで随分と苦戦しました。 対象ツール 今回対象としたのは以下のツールです。 Miroirをお使いでなければ利用価値は全く無いと思いますので参考程度に.. 普通にビルドしてはどこでも実行できない 有識者の方なら当たり前の話なのですが、私の中ではシングルバイ

    RustでLinux用シングルバイナリを作るまで
  • Ubuntu 16.04LTSにNVIDIAドライバ(nvidia-390)とCUDA 9.1を入れた時のメモ - swytelの日記

    cuda-toolkitを入れる前に立ちはだかる壁,その名もNVIDIAドライバのインストール. 過去に,いろいろな方法で入れ直したりと,試行錯誤した記憶があったので,調べつつ進めました. CUDA Toolkit 9.1 Download | NVIDIA Developer によると Before installing the CUDA Toolkit on Linux, please ensure that you have the latest NVIDIA driver R390 installed. The latest NVIDIA R390 driver is available at: www.nvidia.com/drivers とあります.しかし www.nvidia.com/drivers にアクセスして入手した.runファイルは,うまくいかないと評判です (私も試

    Ubuntu 16.04LTSにNVIDIAドライバ(nvidia-390)とCUDA 9.1を入れた時のメモ - swytelの日記
  • シリアル通信をおこなうプログラムを作成するには?

    Armadillo上で動作する、シリアル通信をおこなうLinuxアプリケーションをC言語で作成する場合を考えます。 1. Linux一般でのシリアルプログラミングについて Linuxでは、シリアルインターフェースは一般に/dev/ttyS*というデバイスファイルとして扱われます。(*は任意の文字列を表します。/dev/ttyS*という表記は、例えば/dev/ttyS0、/dev/ttyS10を意味します。) Linuxでシリアル通信をおこなうプログラムを書くには、概念的には以下のような手順になります。 #include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h> #include <fcntl.h> #include <termios.h> #include <unistd.h> #define SERIAL_POR

    シリアル通信をおこなうプログラムを作成するには?
  • 1