タグ

linuxに関するMonMonMonのブックマーク (234)

  • 6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst

    NetflixのシニアパフォーマンスアーキテクトであるBrendan Gregg氏による、Linuxサーバにログインして60秒でまず調べることのまとめ。 パフォーマンス問題でLinuxサーバーにログインしたとして、最初の1分で何を調べますか? Netflixには、多数のEC2 Linuxからなるクラウドがあり、そのパフォーマンスを監視したり調査したりするための数々のパフォーマンス分析ツールがあります。その中には、クラウド全体にわたる監視を行うAtlasや、オンデマンドにインスタンスの分析を行うVectorがあります。これらのツールは多くの問題を解決する手助けをしてくれますが、各インスタンスにログインし、標準的なLinuxパフォーマンスツールを実行する必要がある場合もあります。 この記事では、すぐ使えるはずの標準的Linuxツールを使いコマンドラインにおいて、最適化されたパフォーマンス調査を

    6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst
  • dstatで簡単にリソース不足を確認するメモ – kumonchu.com

    メモリ不足やCPU使用率の上昇など、サーバのリソース不足が発生した時に、dstatで原因プロセスを確認できることがあります。 今回は、小ネタですが、メモリやCPU、ディスクI/Oなどの確認方法をメモとして記録しておきます。 メモリの使用状況を確認する ページングやSWAP、仮想メモリなど、一番メモリを使っているプロセスを確認します。 下記の例では、php-fpmがメモリを一番消費していました。 $ dstat -t -gs --mem --vm --ipc --top-mem ----system---- ---paging-- ----swap--- ------memory-usage----- -----virtual-memory---- --sysv-ipc- --most-expensive- date/time | in out | used free| used buff

    dstatで簡単にリソース不足を確認するメモ – kumonchu.com
  • うっかり起動してしまった時間のかかるプロセスをtmux上に付け替えたい - Qiita

    うっかり生のシェル上で時間がかかるプログラムを起動してしまって困ったこと、ありませんか。 こういう時に使えるコマンドに、reptyrがあります。 インストール Debianなら

    うっかり起動してしまった時間のかかるプロセスをtmux上に付け替えたい - Qiita
  • Linux Insides : カーネル起動プロセス part1 | POSTD

    ブートローダからカーネルまで これまでの私の ブログ投稿 を読まれた方はご存じかと思いますが、しばらく前から低水準言語を使うようになりました。Linux用x8664アセンブリ言語プログラミングについても書いています。また、同時にLinuxのソースコードにも触れるようになりました。下層がどのように機能しているのか、コンピュータでプログラムがどのように実行されるのか、どのようにメモリに配置されるのか、カーネルがどのように処理や記憶をするのか、下層でネットワークスタックがどのように動くのかなどなど、多くのことを理解しようと意欲が湧いています。これをきっかけに、 **x8664** 版Linuxカーネルについてシリーズを書いてみようと思いました。 私はプロのカーネルプログラマではないことと、仕事でもカーネルのコードを書いていないことをご了承ください。個人的な趣味です。私は下層で何が起きているのかと

    Linux Insides : カーネル起動プロセス part1 | POSTD
  • Linux 上のC++ アプリをVisual Studio でリモートデバッグ - troushoo

    概要 Visual Studio GDB 拡張機能を利用すると、Linux 上のC++ のアプリをVisual Studio からリモートデバッグすることができます。 内容 Visual Studio でLinux 上のC++ アプリをリモートデバッグする方法を、以下の4つのセクションに分けて順に紹介します。 Visual Studio のバージョンは、Visual Studio 2015 Community かそれ以上が必要です。 1. Visual Studio GDB 拡張機能のインストール 2. Linux への証明書を使ったSSH 接続のための準備 3. Linux にコンパイラ、デバッガーをインストール 4. Visual Studio でLinux 上のC++ アプリをリモートデバッグ 1. Visual Studio GDB 拡張機能のインストール 1.1. Visual

    Linux 上のC++ アプリをVisual Studio でリモートデバッグ - troushoo
  • Linux共有ライブラリの簡単なまとめ - wagavulin's blog

    Linuxで共有ライブラリ(*.so)を作るようになったのでちょっと勉強してみた。今までは使うだけだったので、以下のようなことは知っていた。 作るときはgccの-sharedオプションを使う。 使うときはgccの"-lライブラリ名"でリンクするライブラリを指定する。 リンク時のライブラリ探索パスは-Lオプションで指定する。 実行時のライブラリ探索パスは/etc/ld.so.confに書いてあるディレクトリ。環境変数LD_LIBRARY_PATHでも指定可能。 ライブラリを作るときは、.cから.oを作るときに-fPICをつけるといいらしい。 新しくライブラリを入れたときはldconfigするといいらしい。 逆に今まであまり知らなかったこと。 ほとんどのライブラリはlibhoge.so, libhoge.so.1, libhoge.so.1.1のように3つくらいのファイルがあり、libhoge

    Linux共有ライブラリの簡単なまとめ - wagavulin's blog
  • 『[Linux] ファイルを暗号化する方法あれこれ』

    Windows上では様々なソフトウェアを通してファイルの暗号化ができますが、Linux上でも様々なコマンドを通して同様にファイルを暗号化しておくことが出来ます。 パスワードが書かれているなど、重要なファイルをサーバー上に置いておき、それに鍵をかけておきたい場合、今回のような暗号化の方法が役に立つと思います。 こちらはWindowsでもおなじみ方法ですね。 Linux上でも同様にファイルにパスワードをかけ、パスワードがわからないと内容を読み取れないということを設定することが出来ます。 ちなみに、パスワードをかけることができるのはzipコマンドで、gzip(GNU ZIP)そのものでは出来ません。 $ zip -e secret.txt.zip secret.txt Enter password: Verify password: adding: secret.txt (stored 0%)

    『[Linux] ファイルを暗号化する方法あれこれ』
  • メモリアライメントを意識した動的確保を行う際は posix_memalign が良いぽい - kawa0810 のブログ

    posix_memalign() が良い理由 ブログでは今まで _mm_malloc() を使用してメモリアライメントを揃えていましたが,posix_memalign() を使用したほうが良いぽいです.理由は _mm_malloc() が Intel CPU 環境でのみ動作するのに対し,posix_memalign() は標準化されているためメインストリームな環境であれば概ね動作するためです.また,posix_memalign() で確保したメモリは free() で解放することができ,_mm_free() が混在しなくなるためコードの保守性の向上が考えられます. posix_memalign の使用方法 簡単な使用方法のみ掲載します. ・インクルードするファイル #include <stdlib.h> ・posix_memalign() の使用方法 int posix_memalign

    メモリアライメントを意識した動的確保を行う際は posix_memalign が良いぽい - kawa0810 のブログ
  • ELF実行ファイルのメモリ配置はどのように決まるのか - ももいろテクノロジー

    Linux x64環境において、ELF実行ファイル、共有ライブラリ、スタック領域、ヒープ領域のアドレスがどのように決まるのかについてのメモ。 環境 Ubuntu 12.04 LTS 64bit版 $ uname -a Linux vm-ubuntu64 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.4 LTS Release: 12.04 Codename: precise $ gcc --version gcc (Ubuntu/Linaro 4

    ELF実行ファイルのメモリ配置はどのように決まるのか - ももいろテクノロジー
  • fork()は失敗するんだぜ、覚えときな

    fork() can fail: this is important あー、fork()のことね。プロセスがもっとプロセス作るためのやつな。いや、他にもプロセス作る方法はあるけどな。ま、面白い話がもうひとつあるから聞かせてやるよ。 forkは失敗するんだぜ。分かってるか? マジで分かってるか? マジだぜ。forkは失敗するもんだ。mallocと同じさ。失敗することもある。そんなに頻繁にってわけじゃないけどさ、でも失敗したら、無視できっこないぜ。ちっとは脳みそ働かせなきゃならん。 forkが0を返したら、そいつは子プロセスで、親なら正数を返すってことは、みんな知ってるよな。その値は子のpidだ。こいつを保存しといて、あとで使うってわけだ。 失敗を確認しない場合どうなるか知ってるか? そうだよ。お前多分、"-1"(forkのエラー通知)をpidとして扱ってるんだろ。 さて、問題の始まりだ。

  • Linuxに関わる人が一度は読むべきStackOverflowまとめ - Qiita

    なぜStackOverflowか Upvote/Downvoteの仕組みにより、自然とベストプラクティスが蓄積されている 世界中のプログラマの目に晒されているため質が高い 答えが幾つか出されているため視野が広がる・一つの手法に固執することがない 英語の勉強にもなる StackOverflowのおすすめの見方 質問はまずしっかり理解する それに対する答えを比較してみて、なぜそう動くのかを考える コメント欄はFont Size的には小さいが、かなり濃いコメントが書かれていることが多いので暇なら目を通す 10. Looping through the content of a file in Bash? ファイルの内容をループで取得するためのベストプラクティス。 (2015/10/23 : 節修正しました。@heliac2000 さん、@kawazさん、ありがとうございました。詳しくは記事コ

    Linuxに関わる人が一度は読むべきStackOverflowまとめ - Qiita
  • 【RHEL】linuxメモリのfreeとmeminfoの関係を図解し利用率の計算方法を説明してみる - のぴぴのメモ

    はじめに linuxのメモリ利用容量(空き容量)の考え方 linuxのメモリ利用容量/空き容量の計算方法 ■RHEL7 【freeコマンドとmeminfoの図解】 【計算方法】 freeコマンド表示例 /proc/meminfo表示例 ■RHEL6 【freeコマンドとmeminfoの図解】 【計算方法】 freeコマンド表示例 /proc/meminfo表示例 ■RHEL5以前 【freeコマンドとmeminfoの図解】 【計算方法】 freeコマンド表示例 /proc/meminfo表示例 蛇足 その1:無名ページとファイルページ その2:図解の内容のツッコミ その3:RHEL6の計算 その4:Inactiveを空き領域とすることは間違い。 はじめに linuxサーバを利用する上で何時も頭を悩ますものの一つが、メモリ利用状況の評価(メモリ利用率)ではないでしょうか。私も悩みます。そこで

    【RHEL】linuxメモリのfreeとmeminfoの関係を図解し利用率の計算方法を説明してみる - のぴぴのメモ
  • シェルスクリプトの平文パスワードをセキュアにする方法 - 余白の書きなぐり

    追記: (2015/8/3) 大量のはてブが付いたので 続き を書きました。 sshを使用している人は文字列を手軽に暗号化・復号化できるという話。 このテクニックを使えば色々セキュアになるのでおすすめ。 今回はシェルスクリプト中の平文パスワードをセキュアに代替する。 平文パスワードはやめよう シェルスクリプト中でパスワードが必要になったとき、 とりあえず平文で書いてしまいがち。 #!/bin/sh PASSWORD="hoge" これをセキュアにしたい。 面倒くさいのは嫌なので、なるべく手持ちのツールで暗号化、復号化したい。 ssh用の rsa 秘密鍵と、openssl(大抵の環境に入っている)を使って改善しよう。 秘密鍵の準備 パスワードを暗号化するにあたって、秘密鍵を使用する. sshを常用している場合は ~/.ssh/id_rsa という秘密鍵が存在するだろう。 もし秘密鍵が無ければ

    シェルスクリプトの平文パスワードをセキュアにする方法 - 余白の書きなぐり
  • 大きなテキストファイルを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
  • xargsコマンドで覚えておきたい使い方・組み合わせ7個(+1個) | 俺的備忘録 〜なんかいろいろ〜

    LinuxやUNIXで、コマンドちょっと組み合わせて利用する際、非常に役に立つxargsコマンド。 今回は、このxargsコマンドで覚えておきたい使い方・組み合わせについて紹介する。 1.基的な使い方 まず、そもそもこのコマンドはどういう使い方をするのか。 基的には、以下のようにパイプでつなぐことで前のコマンド(コマンド1)で取得した値(標準出力)を利用してxargsで指定した別のコマンド(コマンド2)に引数として渡して実行させる事ができるコマンドだ。 コマンド1 | xargs コマンド2 [root@test-centos7 ~]# find /work -type f /work/test2.txt /work/test.txt /work/aaaaa.txt /work/bbbbb.txt /work/ccccc.txt /work/ddddd.txt /work/sample

  • プログラマーでない人のための「共有ライブラリ」講座

    初版作成:2003/01/11 2015年時点での参考資料追記:2015/06/29 目次 前書き 題 後書き或いは感想 2015年時点での参考・推薦資料 前書き 2015年時点での、より正確で分かりやすい参考書籍の紹介を追記しましたので、そちらもぜひご確認ください。 LinuxやUNIXを扱っていると「共有ライブラリ(shared library)」「ライブラリ(library)」という言葉をしばしば耳に します。特に、最新版を使おうとソースコードから見よう見まねでビルド、コンパイルとやらをおそるおそる行っては見たものの 見事に失敗したときや、或いは上手く動かないときのログファイル中で現れることもあります。 プログラマーであれば、例え初めてLinuxに触ったとしても何となく語感だけでぼんやりと原因が想像できます。 しかしごく普通の ---つまりプログラミングなどに興味関心も無かった--

  • どのUNIXコマンドでも使える正規表現 - Qiita

    特定コマンドの正規表現で使えるメタ文字が何だかわからない! 正規表現自体は知っているけど、それが今から使おうとしているコマンドで使えるものなのかわからずに困っている人も多いと思うのでまとめてみた。 たった3つの正規表現メタ文字セットだけ知ればいい コマンドによって、対応している正規表現メタ文字の範囲には違いがある。しかし、最低限知っておけばよいのは2種類+1サブセットの3つだけだ。 BRE(基正規表現)メタ文字セット ERE(拡張正規表現)メタ文字セット AWKのサブセット もちろん、これ以外にもGNU拡張正規表現メタ文字セットやPerl拡張正規表現メタ文字セット、JavaScript拡張正規表現メタ文字セットなどいくつかあるのだが、「どのUNIXでも(=POSIXで)使える」という特長を持たせたいのであれば、それらは覚えても意味がないので上記の3つさえおさえておけばよい。(例えPOSI

    どのUNIXコマンドでも使える正規表現 - Qiita
  • Linux歴15年の俺がおすすめソフトを紹介する : IT速報

    Google Chrome】 色々使い回したあげく結局Chromeに落ち着いた 各種同期とネイティブの様に扱えるChromeアプリ、更に開発へ便利なデベロッパーツールと非常に便利 Chromiumでは独自に追加することとなる多くのプラグインパッケージなども標準装備し意識することなく最新の環境を用いることが出来るのが良い ChromeアプリのGoogleKeepとGoogleハングアウトが無ければ仕事が出来ないレベル Google Chrome https://www.google.com/chrome/browser/desktop/index.html

    Linux歴15年の俺がおすすめソフトを紹介する : IT速報
  • 受信しているはずのUDPパケットをアプリケーション側では受け取れない(Redhat6) - Jの衝動書き日記

    仕事でハマった事例があったので、メモを残しておく。 問題詳細 解析 原因 解決方法 メモ 問題詳細 以下のような事象が発生した。 負荷分散サーバ(LB)上で動作するアプリケーション(AP1)は受信したUDPパケットを負荷分散先(S1)に送信する。だが、 S1上で動作するアプリケーション(AP2)はそのパケットを受け取れなかった。 S1上でパケットキャプチャした結果、LBから送信されたパケットはS1上で受信できるのは確認できた。しかし、AP2ではそれを受け取れない。 一方、AP1で中継させずにLBから直接UDPパケットをS1に対して送信すると、AP2はこれを受け取れる。 図にすると以下のような感じになる。 解析 S1上には複数のIFが存在し、そのうちの一つのIF(bond3)に設定されたIPアドレスに向けてAP1はパケットを送信している。一方AP2は、S1上のすべてのIFに対してUDPポー

    受信しているはずのUDPパケットをアプリケーション側では受け取れない(Redhat6) - Jの衝動書き日記
  • 初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita

    ここ最近、沢山シェルスクリプトを書くようになりました。 元々あまりシェルスクリプトを書いたこと無かったので、色々と勉強しつつ書いてるのですが、 他のプログラミング言語とはちょっと違って独特なクセというか、発見の度におぉー!ってなることが沢山あって楽しいです。 そんなわけで、最近学んだり参考にした中で特に感動したシェルの上手い書き方をまとめてみます。 きっとまだ知らないこととかもっと上手くやる方法なんかが沢山見つかりそうなので、 もっといいやり方あるよ!って方はコメントください 何もしない : (コロン)コマンド シェルを書いていた時に非常に欲しかったコマンドがこれ!何もしない! : というコマンド(?)を利用すると、**何もせずに終了ステータス0(つまり正常終了)**を返します。 これが様々な事に使える万能コマンドで、これによって面倒なエラー処理を簡潔にできたり、 入力や出力のリダイレクト

    初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita