タグ

linuxに関するhondallicaのブックマーク (38)

  • Linuxのlogrotateを手動実行させる | 俺的備忘録 〜なんかいろいろ〜

    Linuxlogrotateを手動実行する場合、ただ実行コマンド("/usr/sbin/logrotate /etc/logrotate.conf")を実行しただけではログローテーションは行われない。 手動でのローテーションを行う場合は、以下のファイルに記述されている各ログの日付を過去日付にしてあげる必要がある。 Debian/Ubuntuの場合 「/var/lib/logrotate/status」というファイルに各ログで最後にログローテーションした日付が記述されている。 test@ubuntu-server:~$ cat /var/lib/logrotate/status logrotate state -- version 2 "/var/log/syslog" 2015-7-24-6:25:2 "/var/log/dpkg.log" 2015-7-1-6:25:2 "/var/l

  • Linuxサーバの反応が遅い(重い)場合の原因の調査手順

    概要 Linuxサーバの反応が遅い場合の調査手順のメモ。 実行する場合は自己責任でお願いします。 原因として考慮すべき事項 サーバが遅い場合には様々な原因がありますが、以下を考慮します。 CPU負荷 メモリ不足 ディスクI/O負荷 ネットワークI/O負荷 まず、どれが原因か調査する必要があります。 top コマンド 最初は「top」コマンドを利用します。 top - xx:xx:xx up 0 min, 1 user, load average: 1.44, 0.51, 0.18 Tasks: 87 total, 1 running, 86 sleeping, 0 stopped, 0 zombie Cpu(s): 0.7%us, 0.3%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 2057692k total, 291

  • システムコールを経由する生のLinuxスレッド | POSTD

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

    システムコールを経由する生のLinuxスレッド | POSTD
  • LinuxのSSD設定 - Qiita

    概要 SSDで寿命とかパフォーマンスを改善するために設定しておいた方が良い点のまとめです。 よくある系のネタですが、久しぶりにSSD設定見なおしたら勘違いしてた点がいくつかあったので備忘を兼ねて残します。目次見て「こんなの常識だよね」って思った方はスルーしてくださいm(_ _)m 基 firmwareを最新化する kernel/osはなるべく新しいものを使う 新しいファイルシステムを使う(多分今のところext4が一番良さそう) swapしないようメモリを沢山積む TRIMを使う TRIMとは SSD上のデータは削除しても削除マークが付くだけで削除されません。 この状態のブロックにデータを書き込む場合、一度完全に消去してから書き込みます。 TRIMコマンドはOS上のファイルが不要になったことをSSDに伝えて明示的にデータの消去を行うコマンドです。 メリット TRIMを使わない場合、以前デー

    LinuxのSSD設定 - Qiita
  • gitの10周年を記念したLinus Torvalsへのインタビューの翻訳

    10 Years of Git: An Interview with Git Creator Linus Torvalds | Linux.com gitの10週年を記念して、リーナス・トーバルズがインタビューに答えている。以下はその翻訳である。 なぜGitを作ったのか? トーバルズ:俺はソース管理ツールなんて作りたくなかったし、コンピューターの業界において最も興味がないものだと見なしていた(データベースは別だが)。それにソース管理ツールなんてどれも嫌いだった。しかし、BitKeeperがやってきてからというもの、ソース管理に対する見方が変わったね。BitKeeperは大抵のことを正しく行っていた。レポジトリのローカルコピーがあることと、分散マージはでかかった。分散ソース管理の何がいいかというと、ソース管理ツールの問題を吹っ飛ばせることだ。「誰が変更を行えるか」といった政治問題があるが、B

  • Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ

    記事の公開後の2016年7月にはてなにおけるチューニング事例を紹介した。 はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck HAProxy や nginx などのソフトウェアロードバランサやリバースプロキシ、memcached などの KVS のような高パケットレートになりやすいネットワークアプリケーションにおいて、単一の CPU コアに負荷が偏り、マルチコアスケールしないことがあります。 今回は、このようなネットワークアプリケーションにおいて CPU 負荷がマルチコアスケールしない理由と、マルチコアスケールさせるための Linux カーネルのネットワークスタックのチューニング手法として RFS (Receive Flow Steering) を

    Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ
  • LinuxでL4のロードバランサを簡単に作る手順 - Qiita

    ロードバランサは高いので、Linuxで比較的簡単にL4の負荷分散を行えるLVSは使いドコロが色々あり結構便利。 久々に作った時のメモがわりとして、今回は、LVSの構築手順と簡単なテスト結果を順に書いてみた。 構成 ちょっと特殊な要件があり、負荷分散行うLVSも実際にレスポンス返すアプリも同じ筐体で動かしたいという前提で作った。 ※最初の投稿だと、同一筐体で動かした時にBACKUP STATEのLVSがARP応答する設定になっていたので、加筆! LVS単体サーバとしても下記の手順で同じように作れる サーバはaa,bbの2台(vagrant上の仮想マシンとした) 同じ役割を持つサーバaa,bbをLVSを使って負荷分散したい LVS自身も冗長構成にして、aa,bbにやらせたい リクエスト元は、同一セグメントなのでDSR(Direct Server Return)を使う ※NATは、戻す時に直接L

    LinuxでL4のロードバランサを簡単に作る手順 - Qiita
  • RHEL6のマルチキューで効率的なネットワークの付加分散

    すばやく簡単に注文します 注文を表示して配送状況を追跡します 製品リストの作成とアクセス 「Company Administration(会社情報の管理)」では、お使いのDell EMCのサイトや製品、製品レベルでのコンタクト先に関する情報を管理できます。

  • Linuxのディスク管理

    ここでは、Linuxでハードディスクを利用するための手順を説明します。 Last Update : 2013年08月07日 ハードディスクを利用するための手順 Linuxでハードディスクを利用するためには以下の手順をふみます。 パーティションの作成(fdisk コマンド) ファイルシステムの作成(mkfs コマンド) マウント(mount コマンド) それぞれの言葉の意味から説明していきます。 パーティションとは パーティションとは、ハードディスク内で分割された個々の論理的な領域のことをいいます。 ハードディスクは、内部の領域を論理的に複数の領域(パーティション)に区切る事ができ、それぞれをひとつのハードディスクとして利用する事ができます。 パーティションを区切り、データ専用、システム専用のパーティションのように目的別にわけておけば、バックアップやシステムアップデートが楽であったり、データ

  • yum でインストールした rpm がどの repository のものか調べる - tkuchikiの日記

    インストール済みの rpm がどの repository のものかは、yumdb コマンドで調べられます。 YumDB - yum - Trac に詳しく書いてありますが、 $ yum install -y yum-utils して、yumdb コマンドを入れたあとに、 $ yum search from_repo REPO_NAME で以下のような結果を得られます。 $ yumdb search from_repo epel Plugin "replace" can't be imported Loaded plugins: fastestmirror, remove-with-leaves GeoIP-1.4.8-1.el6.x86_64 from_repo = epel GeoIP-devel-1.4.8-1.el6.x86_64 from_repo = epel PyYAML-3.

    yum でインストールした rpm がどの repository のものか調べる - tkuchikiの日記
  • ウェブリブログ:サービスは終了しました。

    「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧

    ウェブリブログ:サービスは終了しました。
  • ssコマンドはバグと地雷の塊なのでnetstatの代わりにならない - ろば電子が詰まつてゐる

    既に有名な話ですが、CentOS 7およびRed Hat Enterprise Linux 7からはifconfigコマンドやnetstatコマンドが非推奨となり、デフォルトインストールすらされなくなりました。代替として、ifconfigコマンドはipコマンド、netstatコマンドはssコマンドが用意されています。 というわけでさっそくssコマンドを試していたのですが、明らかに動きがおかしなところがあり、少し調べてみました。 そして、「netstatコマンドの代替と思って安易にssコマンドを使うと、これは痛い目に遭うな……」ということが分かったので、不幸になる人を少なくするためにこのエントリを書きました。 概要 結論から先に言うと、CentOS 7/ RHEL 7のssコマンドには「UDPの開放ポートがTCPと報告される」というひどいバグがあり、使うべきではありません。 また、ssコマン

    ssコマンドはバグと地雷の塊なのでnetstatの代わりにならない - ろば電子が詰まつてゐる
  • Linuxのハードウェアに関する詳細情報を取得する『Inxi』コマンド | 俺的備忘録 〜なんかいろいろ〜

    今回は、Linuxが搭載されているハードウェアのパーツごと、例えばサウンドボードやマザーボード、ハードディスク等のベンダーや型番といった詳細情報を取得出来るコマンド『Inxi』を紹介する。 1.インストール まずはインストールから。 以下のコマンドを実行しインストールを行う。 Debian/Ubuntu sudo apt-get install inxi RHEL系 sudo yum install inxi --enablerepo=epel 2.コマンドの実行 さて、それでは実際にコマンドを実行してみよう。まずはオプションを付けず、デフォルトの内容を表示してみる。 以下の内容は、実際に自宅で用いてるマシンのデータを表示している。 $ inxi CPU~Quad core Intel Core2 Quad Q9550 (-MCP-) clocked at 2833 Mhz Kernel~

  • 新しいNTPクライアント&サーバ、chrony - Qiita

    はじめに CentOS 7で"最小限のインストール"以外を選んだ場合にインストールされるchronyはntpdに代わり標準となったNTPクライアント兼サーバである。 とはいえ、CentOS 7でも相変わらずntpdは使用できるし、ntpdateの代わりではないのでntpdateコマンドを打ちたければntpdateを使用する。 以下、初期稿ではchronyの、ntpdとの違いを中心に記述する。注目点があればそれも書くが、まともに追っていくと深いので、後で気になる点が増えたら追記する形を取る。 あと、この記事でネタにするのはchronyであってcronieではないので悪しからず。 chronyのインストールと起動 CentOS 7ではOSインストール時にインストールされていなければyum install chronyでインストールすることができる(CentOS 6でも6.8からOS標準のリポジ

    新しいNTPクライアント&サーバ、chrony - Qiita
  • Ctrl+Cとkill -SIGINTの違いからLinuxプロセスグループを理解する | ギークを目指して

    しばらくLinuxネタが続く・・。 近いうちに最近出たJava8ネタを書いてみようと思います。が、もう少しLinuxネタにお付き合いください。 前回はsshdを対象に親プロセスをkillした場合の動作を確認した。 killされたプロセスの子プロセスは孤児プロセスとなり、カーネルによって自動的にinitプロセスの子として扱われる事を説明した。(この動作を「リペアレンティング」と呼ぶ) 今回はこの続き。 Linuxで作業していてCtrl+Cしてプロセスを終了した場合、フォアグラウンドのプロセスやその子プロセスも一緒に終了する。 ということは、子プロセスは孤児として扱われず、リペアレンティングされていないことになる。 今回の記事ではこの振る舞いの違い(リペアレンティングされるか否か)に着目し、kill -SIGINTコマンドとCtrl+Cの違いについて考えていく。 そもそもkillコマンドやCt

    Ctrl+Cとkill -SIGINTの違いからLinuxプロセスグループを理解する | ギークを目指して
  • 第1回 管理ツールがNetworkManagerに一元化

    Red Hat Enterprise Linux 7(RHEL 7)では、ネットワーク設定や管理に利用するツールが「NetworkManager」に一元化された。これまで利用されてきたツールの「Network Administration Tool」(system-config-network)は廃盤、つまり非搭載になった。 ここで、Network Administration Toolとは、RHEL 2.1~同 6までの間にネットワーク管理に利用されてきた「system-config-network」(RHEL 2.1や同 3では「redhat-config-network」)で始まる名前のソフトウエア群のことである。RHEL 6の時点ではネットワーク管理にNetworkManagerを利用する設定がデフォルトだったが、RHEL 7ではNetworkManagerに改められた。 Netw

    第1回 管理ツールがNetworkManagerに一元化
  • サーバの負荷や使用率などを見るコマンドの一覧 - [Linux [Red Hat/CentOSなど]/サーバー] ぺんたん info

    サーバの負荷などの監視に使うコマンドいろいろ [参考記事] ログをリアルタイムに表示させて監視する方法 [参考記事] PHPでロードアベレージを表示させる方法 [参考記事] Cacti RRDToolを利用したサーバ監視ツール ロードアベレージ(CPU負荷状態) w または uptime ディスク使用率 df メモリ使用状況 free 起動中のタスク ps aux ロードアベレージ、メモリ使用状況、タスク(負荷順) top ディスクI/O iostat リアルタイムで見るには watch iostat iostatを利用するにはsysstatのインストールが必要です。 yum install sysstat その他いろいろ sar -u 3 10 sarとはSystem Admin Reporterの略です。 CPUやネットワーク、メモリ、ディスクなどの情報を見ることができます。 ログは日

  • 無料で読めるlinuxのテキスト

    ウェブ上で無料で読めるお気に入りのlinux関連書籍をリストアップしてみました。 今後もいいものに出会えたら更新する予定です。 日語で書かれたlinux Linux標準教科書(Ver2.0.0) LPI-JAPANによる初心者向けテキスト。簡潔にまとまっていて文章も読みやすい。 フォーマット : PDF EPUB iPADアプリ Androidアプリ http://www.lpi.or.jp/linuxtext/text.shtml Linux道場 同じくLPI-JAPANによるlinux入門。 フォーマット : html http://www.lpi.or.jp/lpic_all/linux/ Linuxマスター.JP(リナックスマスター.JP) 各内容が細かくページ分けされていてる。充実した内容の解説集。 Linux Tipsを眺めるだけでも役に立つ。 フォーマット : html

    無料で読めるlinuxのテキスト
  • Systemdコマンド早見表(CentOS 7対応)

    CentOS 7ではsystemdが導入されているので、サービスの管理が従来と大きく変わっています。詳しい解説はsystemd徹底入門のスライドを参照するとして、ここでは「前のコマンドはsystemdでどう入力するの?」というのだけ、簡単にまとめてみました。 サービス名にはsshdを指定していますが、もちろん任意のサービスが指定できます。 サービスの起動、終了など 操作SysV InitSystemd 起動/etc/init.d/sshd startsystemctl start sshd 終了/etc/init.d/sshd stopsystemctl stop sshd 強制終了PID探してkill -9systemctl kill -s 9 sshd 再起動/etc/init.d/sshd restartsystemctl restart sshd 設定反映/etc/init.d/s

  • Dockerコンテナに入るなら SSH より nsinit が良さそう - Gosuke Miyashita

    追記 はてブでつっこみもらいました が、実行するカレントディレクトリは /var/lib/docker/execdriver/native/$id を使うのが正しいようです。(情報読み違えてた。)こちらには container.json があるので、ソースツリーからコピーしてくる必要ないですね。 また、コンテナ ID 取得は、docker ps -q --no-trunc の方が良い、とも教えていただきました。 つっこみにしたがって、最後の方の説明とシェル関数書き換えました。 つっこみありがとうございます! tl; dr タイトルまま 経緯 Docker でつくったコンテナの中に入って状態を確認するために、コンテナ内で sshd を立ち上げてアクセスする、ってなことを以前やってたんですが、コンテナ内で sshd を立ち上げる、というやり方がいまいちだし、そもそもコンテナの仕組みから考えれば