タグ

linuxに関するmackey13のブックマーク (115)

  • うるう秒のあとにMySQLなどのCPU使用率が高騰する件について - SH2の日記

    2012年7月1日のうるう秒のあとに、MySQLJavaなどのCPU使用率が高騰する事象が報告されています。 CPU %user %nice %system %iowait %steal %idle 08時30分01秒 all 0.02 0.00 0.02 0.04 0.00 99.91 08時40分01秒 all 0.02 0.00 0.02 0.08 0.00 99.88 08時50分01秒 all 0.02 0.00 0.02 0.03 0.00 99.92 09時00分01秒 all 0.11 0.00 0.13 0.04 0.00 99.72 09時10分01秒 all 23.02 0.00 29.09 0.11 0.00 47.78 09時20分01秒 all 23.11 0.00 29.08 0.06 0.00 47.75 09時30分01秒 all 22.85 0.00

    うるう秒のあとにMySQLなどのCPU使用率が高騰する件について - SH2の日記
  • シェルスクリプトで環境変数を設定する

    LD_LIBRARY_PATHなど、いちいち設定するのが面倒な環境変数を、 シェルスクリプトに記述できたら便利です。 [env_set.sh] # 環境変数の設定 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/hoge さっそく、このシェルスクリプトを実行してみます。 $ ./env_set.sh $ echo $LD_LIBRARY_PATH $ …?。恐らく、シェルスクリプトで設定した内容は、反映されていないはずです。 通常、シェルの中で設定された環境変数は、そのシェルを抜けると消去されるためです。 シェルスクリプト内で設定した環境変数を、呼び出し元のシェルにも反映するためには、 次のようにしてシェルスクリプトを実行すればOKです。 $ source ./env_set.sh $ echo $LD_LIBRARY_PATH

  • Linuxのメモリ上のキャッシュを解放する - 元RX-7乗りの適当な日々

    いつも思いだすのに時間がかかるというか、ググるのでメモ。 例えば、ベンチマークとかをとっていて、残ったキャッシュを奇麗さっぱりに消したい時とかに使う。 Linuxのメモリで保持しているキャッシュをクリアするには、以下を実行する。 # sync # echo 3 > /proc/sys/vm/drop_caches 値の意味としては、、、 1: ページキャッシュを解放 2: dentry、inode を解放 3: ページキャッシュ、dentry、inode を解放 以下を参考に。 /proc/sys/vm/drop_caches (Linux 2.6.16 以降) このファイルに書き込みを行うことで、クリーンなキャッシュ、dentry、 inode をメモリ上から外し、そのメモリを解放する。 ページキャッシュを解放するには、 echo 1 > /proc/sys/vm/drop_caches

    Linuxのメモリ上のキャッシュを解放する - 元RX-7乗りの適当な日々
  • netstatコマンドでポートを利用しているプロセスを調べる

    netstat -tanp プロセスを起動しようとした際に,「address already in use.」といったエラーが発生してプロセスが起動できない場面があります。これは,起動しようとしたプロセスが利用するポート番号を,別のプロセスが既に利用しているために発生するケースが大半です。この様な場合には,netstatコマンドを使うことで,どのプロセスがどのポート番号を利用しているのかを確認できます(図)。

    netstatコマンドでポートを利用しているプロセスを調べる
  • 誰得コマンド&オプション35連発

    5. devlove% echo $NAME devlove% SATO Yozo devlove% echo $TWITTER_ID devlove% @yoozoosato devlove% echo $MAIL devlove% yoozoosato@gmail.com 0 zsh ! 2012/03/26

    誰得コマンド&オプション35連発
    mackey13
    mackey13 2012/03/27
    基本としておさえておきたいコマンドもある。
  • ローカルディスクの容量が無いけどtarアーカイブを作りたい時に - 256bitの殺人メニュー

    このディスクの/usr/local以下バックアップしたいんだけど、もうローカルディスクの容量が無い。 てか、ローカルディスクの容量が無いから移したいんだよ!って言う卵が先か鶏が先か理論の時の話。 tarアーカイブを直接標準出力してnetcatでリモートホストで保存する方法。 こういうのも書いといたほうが誰かの役に立つであろうとメモ書き! netcatとは ファイルの内容を標準出力させたり、パイプ経由してファイル書きだしたりするのに使うcatコマンドがありますが、それをTCP,UDP経由で行えるようにするコマンドがnetcat(nc)です。 netcat 待ち受け側(リモートホスト) $ nc -l 12345 > /tmp/send.tgzで12345ポートで待ち受け。 ここに送信されてきたデータを/tmp/send.tgzへリダイレクトする。 netcat 送信側(ローカルホスト) $

    ローカルディスクの容量が無いけどtarアーカイブを作りたい時に - 256bitの殺人メニュー
  • Bug #221351 “TSC Clocksource can cause hangs and time jumps” : Bugs : linux package : Ubuntu

  • memologue - UNIX上でのC++ソフトウェア設計の定石 (2)

    鉄則2: シグナルハンドラで行ってよい処理を知ろう sigaction関数で登録したシグナルハンドラで行ってよい処理は非常に限定されている 次の3つの処理だけが許されている 自動変数の操作 “volatile sig_atomic_t” 型の大域変数の操作 「非同期シグナルセーフ」関数の呼び出し これ以外の処理を記述しないこと! 説明: シグナル受信時に何らかの処理を行うためには、シグナルハンドラと呼ばれる関数を用意し、それをsigaction関数でシグナル名と紐付けておけばOKです。しかし、シグナルハンドラ内で行ってよい処理は、上記の通り非常に限定されています。これを把握しないまま奔放なコードを書くと次のような現象が起き得ます: 問題1: プログラムがデッドロックする危険がある タイミングに依存する、再現困難なバグの原因となる デッドロックの発生が典型例だが、それ以外にも関数の戻り値不正

    memologue - UNIX上でのC++ソフトウェア設計の定石 (2)
  • 関数:system: UNIX/Linuxの部屋

    system はライブラリ関数である。system の内部では fork して子プロセスを作成し、親プロセスは sh -c cat *.txt のように exec する。親プロセスは wait で子プロセスの終了を待つ。だから、sh でできることは system でも可能なわけ。 ただし、system ではコマンドの出力を取り込んだり、標準入力にデータを与えることはできない。そういう場合は popen を使うか、自前で pipe・fork・dup2・exec すればよい。

  • ゾンビプロセスを作成しない - Linuxの備忘録とか・・・(目次へ)

    親プロセスがwaitで子の終了ステータスを取得しない間、子プロセスはゾンビ状態となります。しかし処理によっては、いつ終了するか分からない子プロセスのために、親プロセスは毎回wait状態で待つわけにいかない場合もあります。そこで子の終了をシグナルで親プロセスに知らせるという手法があります。struct sigaction saに子プロセスからの終了シグナルをハンドルすることで実現しています。 親プロセスが子プロセスのそのシグナルを無視するか、ハンドラーにSIG_IGNを設定することで、子プロセスをゾンビ状態にしないことができ、子プロセスが呼び出したexit関数内からタスク構造体を解放することができるようです。 ・補足 waitで待つ場合、子のタスク構造体は親が呼び出したwait内から解放されます。 ゾンビ作成サンプル #include <sys/types.h> #include <unis

  • VMwareの時刻あわせ 2008年冬版 - SH2の日記

    VMwareではWindowsホスト上のLinuxゲストの時計が大きくずれるという問題が昔からあって、調べるといろいろ回避策が見つかります。しかし古い情報が多くなってきており、今となってはあまり適切でない方法になってしまっているものもあります。 そこで、2008年冬時点での時刻あわせ手法についてまとめておきます。環境は以下のとおりです。 VMware Server 1.0.8 物理マシン:Core Duo T2300 (1.66GHz) EIST有効 ホストOS:Windows XP Professional SP3 32bit ゲストOS:CentOS 5.2 32bit、仮想CPU数 2 目次です。 Windows XPのSNTPサーバを構成する VMware Serverの設定ファイルを修正する カーネル再構築は必要ない CentOS 5.2のカーネルパラメータを変更する adjti

    VMwareの時刻あわせ 2008年冬版 - SH2の日記
  • http://linux.mini13i.com/?kernel%2F%A5%B7%A5%B9%A5%C6%A5%E0%A5%D1%A5%E9%A5%E1%A5%BF

  • RedHat チューニング

    ディスクに書き込む必要があるバッファの最大数 大きくすると、ディスクの書き込みを遅らせます 小さくすると、頻繁にディスクの書き込みを行います

  • @IT:/procによるLinuxチューニング [後編](2/4)

    /procによるLinuxチューニング [後編] ~ /proc/sysの主要パラメータ群総解説 ~ 遠田 耕平 2002/12/17 /proc/sys/fsディレクトリ /proc/sys/fsには、ファイルシステム関連のチューニングパラメータが集められています。 file-max システム中のオープンファイル管理データの最大数を指定できます。 file-nr file-nr内のパラメータはそれぞれ、オープンされているファイル数、空きファイル管理データの数、システム中のオープンファイル管理データの最大数(file-maxと同じ)を示します。 ファイルのクローズ時には、使っていたファイル管理データを即座に解放するのではなく、いったん(次の機会に使えるように)取り置きます。この取り置かれている管理データの数が、2番目の数値となります。 inode-state、inode-nr inode-

  • hdparm でハードディスクを高速化する

    hdparm でハードディスクを高速化する 2006.04.08 Linux もしハードディスクが PIOモードで動いていたらDMAモードに変更するだけで、14倍の速度アップ! ■ハードディスクの読み出し速度を測定する まずは、HDDの読み出し速度を測る。 # hdparm -Tt /dev/hda /dev/hda: Timing cached reads: 1856 MB in 2.00 seconds = 929.07 MB/sec Timing buffered disk reads: 10 MB in 3.48 seconds = 2.87 MB/sec -Tスイッチは、キャッシュシステム、つまりメモリ、CPU、バッファキャッシュをテストするという意味。 -tスイッチは、キャッシュ上に無いデータを読み出して、ハードディスクのパフォーマンスをテストする。 読み出し速度が2.87MB

    hdparm でハードディスクを高速化する
  • 減り続けるメモリ残量! 果たしてその原因は!?

    Mem行のfree(MemFreeと呼ぶことにします)は「空きメモリ量」ではなく、何の用途にも使っていない物理メモリ量と考えてください。「MemFreeが少ない→空き物理メモリ量が少ない→利用可能な物理メモリ量が足りない」という発想を防ぐためです。この場合、単純に物理メモリを追加しても、いつかはMemFreeが少ない状況に落ちていくため、解決にはなりません。 システム全体のメモリ利用量の監視は、freeのみを判断基準とするのではなく、もっと総合的に「利用可能な物理メモリ量」を計算する必要があります。 システムが利用可能なメモリ量を計算するには、Linuxのページキャッシュの扱いを理解する必要があります。LinuxはHDDなどのストレージに保存してあるデータの読み出し/書き出し時に確保したメモリをページキャッシュという形で保持します。 CPU はストレージのデータを直接読むことはできません。

    減り続けるメモリ残量! 果たしてその原因は!?
  • clocksource tsc unstable

  • Bug #355155 “Clocksource tsc unstable leads to lockups” : Bugs : linux package : Ubuntu

  • 2007-02-09

    最近直接使わないので、(マニュアルを斜めに読んだだけではわかりにくい部分について)憶えているうちにメモ。 セマフォ: semgetで作成。第1引数の"key"は、ftokでファイル名(パス)から作成するのじゃ、とか書いてあることがあるが、気にせずIPC_PRIVATE定数を渡している。こうすると、新しいセマフォを作ってくれる。(ftokを使うのは、完全に独立して動作するプロセス間で、同じセマフォを使いたい時などに使うのであろう。) 返値がセマフォのidになる。このidのスコープはシステム全体で、異なるプロセスでも同じidのセマフォは同じセマフォを指す。したがって、全く無関係のプロセスが、同じidを使うとそのセマフォにアクセスできてしまう。セキュリティ的には、ファイルと同様のパーミッションをsemgetの第3引数に指定できるので、他人のプロセスがいたずらすることは防げる。 現在のセマフォの状

    2007-02-09
  • blog-category-9.html

    ども機嫌悪いです。ポックンです。 syslog-ngとはsyslogの新世代(New Generation)という位置付けのsyslog管理ツールです。 詳しいインストール/設定方法はここでは割愛します。 さてsyslog-ng運用中のsyslogサーバのsyslogを眺めていると以下のようなログが10分おきにドンブラコ してきました。 ちなみにsyslog-ngのバージョンは3.0っす。 syslog-ng[xxxx]: Log statistics; processed='distination(xxx)=0', processed='distination(yyy)=0',・・・ なんすか?これ? はい、これはsyslog-ngの状態出力で意味としてはdistinationで定義されたログ出力先に転送した内容を ファイル出力する前にバッファ出力することに失敗した回数を教えてくれていま

    blog-category-9.html