サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
www.ginnokagi.com
雨はふるふる 城ヶ島の磯に 利休鼠の雨がふる 雨は眞珠か 夜明の霧か それともわたしの忍び泣き 舟はゆくゆく 通り矢のはなを 濡れて帆あげたぬしの舟 ええ 舟は櫓でやる 櫓は唄でやる 唄は船頭さんの心意気 雨はふるふる 日はうす曇る 舟はゆくゆく 帆がかすむ 北原白秋「城ヶ島の雨」 カイシャのPCが、Windows7からWindows10へアップグレードされた。僕はいつもデフォルトブラウザを常用しているので、今回からはMicrosoft Edgeを使っている。 このMicrosoft Edge、WEBの基本認証のユーザーとパスワードを記憶してくれないんだよね。見事に空欄。困ったもんだ。毎回パスワード入れろってか?覚えておりませんがな。 WEBで調べてみると、Microsoft Edgeの設定項目としては表に出てこないが、そのための設定自体は残っているようだ。 "Basic authenti
三つの指輪は、空の下なるエルフの王に、 七つの指輪は、岩の館のドワーフの君に、 九つは、死すべき運命(さだめ)の人の子に、 一つは暗き御座の冥王のため、 影横たわるモルドールの国に。 一つの指輪は、すべてを統べ、 一つの指輪は、すべてを見つけ、 一つの指輪は、すべてを捕らえて、 暗闇の中につなぎとめる 影横たわるモルドールの国に。 指輪物語 我等が働き者、Tomcat。君は一体、どの程度まで多くのスレッドを作成してリクエストをさばく事が出来るんだい? まず最初にLinuxのスレッドライブラリについて軽く言及しておかねばなるまい。Linuxのスレッドライブラリには二種類ある。 まず、昨今のLinux(Kernel 2.6及びそれ以降)で用いられているNTPL(Native POSIX Thread Library)。これは1:1モデルのスレッドライブラリで、スレッドをプロセスとして実装してあ
三つの指輪は、空の下なるエルフの王に、 七つの指輪は、岩の館のドワーフの君に、 九つは、死すべき運命(さだめ)の人の子に、 一つは暗き御座の冥王のため、 影横たわるモルドールの国に。 一つの指輪は、すべてを統べ、 一つの指輪は、すべてを見つけ、 一つの指輪は、すべてを捕らえて、 暗闇の中につなぎとめる 影横たわるモルドールの国に。 指輪物語 オフロードって何?みたいなキーワードで僕のサイトにやってくる人が時々いる。僕のThinkPad X121eに入っている「研究社リーダーズ+プラスV2」というEPWING英和辞典によれば、オフロード(offload)の元の意味は「荷物を降ろすこと」だ。コンピュータのTCP/IPプロトコルスタックについていえば、各プロトコルスタック専属であるはずの処理またはその一部を、ハードウエアであるNIC(Network Interface Card)へ割り当てること
" data-layout="button_count" data-action="like" data-show-faces="true" data-share="true"> KVM(Kernel-based Virtual Machine)は昨今流行のOS仮想化技術の実装の一つで、Linuxカーネルそのものをハイパバイザにしてしまうものだ。(Xenの場合だと、Nemesisというハイパバイザが存在し、その上で特権モードのホストLinuxが稼動するという形をとっているらしい。VMware ESXみたいだね。)僕の知識ではこの程度の説明しか出来ないけれども、もしオタク的な知識が欲しい人はKVMを参照してほしい。(私はこのサイトを真面目に読んでません。エッヘン!!) 当サイトのWEBサーバーがFedora10のKVM仮想サーバーに移行した一週間後、電源系トラブル(UPSの出力が不足していた
軽井沢別荘にネットワークカメラを設置したにおいて、2万円もするIPカメラを設置して使っていた。Planexの CS-WMV04Nというものだが、これがまた良く壊れる。一年もするとカラーのイメージがおかしくなったので、赤外線機能を利用して白黒で見ていたのだが、今度は2年も経たずにある日突然、うんともすんとも言わなくなった。別荘に来たときに見てみると、電源異常らしく、インジケータが全消灯。電源ケーブルを差しなおしてもだめ。酷いもんだ。Planex、二度と買わねーぞ!(怒) もはやウン万円もするIPカメラを購入する気は失せた。1000円程度の安価なUSBタイプのWEBカメラを購入して別荘に常設してある温湿度自動測定用のLinuxに取り付けて使うことにした。このとき使用するツールがmotion。以前、当ブログでよくコメントをしてくださる迷い猫殿が使ってみたと言っていたのを記憶している。Ubuntu
vdbenchとは vdbenchは、Henk Vandenberghによるディスク負荷生成・パフォーマンス計測ツールである。Solaris/Linux/Windows等で利用可能なJavaプログラム(一部JNIを使用している)であり、OSキャッシュ(すなわち、バッファキャッシュとページキャッシュ)を経由したアクセスまたはOSキャッシュをバイパスしたディスクへの直接アクセスをサポートしている。 いわゆるシステムのパフォーマンス不足の原因はいくつもある。単にWEBサーバ(Apache)やAPサーバー(Tomcat)のOSリソース割り当て(特にファイルディスクリプタ)が不足しているだけなのかもしれないし、WEBサーバーのクライアント処理用スロット数が足りないだけなのかもしれない。WEBサーバーとAPサーバー間のコネクション数が少なすぎるだけなのかもしれないし、あるいはKeepAliveのHTT
Tomcat起動時にcatalina.sh中で明示的にJavaオプションを付けていればJavaヒープの設定値は明白だ。しかし、何もオプションを付けていない状態のJavaヒープ状態を調べようとしたら、jstatコマンドを用いて調べるしか手はない。jstatはJDKに付いているはずだよ。JREのみだと付いていないかもね。 jstatコマンドについてはjstat - Java 仮想マシン統計データ監視ツールにマニュアルがある。もしjstatがうまく動かないのであるならば、jstatコマンドがうまく動かないのだが を参照して動くようにしておいて欲しい。 前出のjstatのマニュアルを読むと、どうやら "-gccapacity" オプションをつけるとJavaヒープ設定値を出力できそうだ。jstat - Java 仮想マシン統計データ監視ツールの該当箇所を見ると、「世代」という言葉と「領域」という言葉
【Sun HotSpot VMのガベージコレクションとヒープ】 TomcatはApache Software Foundationが提供するフリーのサーブレットコンテナ実装です。要するにJava サーブレットが動くアプリケーションサーバー。デフォルトのTomcat設定では、サーブレットコンテナ(サーブレットの動作環境)はひとつのプロセスであり、マルチスレッドで効率良くHTTPリクエストを処理できます。サーブレットコンテナのJavaプロセスはメモリに常駐するので、Tomcatプロセスが存続する間消えることのないメモリ上にオブジェクトを保持できます。一度立ち上がれば、CGIよりもずっと処理が早い。 しかしながら、Javaの汚点は、その自動化されたメモリ管理にあります。Javaは、GC(ガベージコレクション)によって不要オブジェクトが使用していたヒープ(変数のスコープを越えて存在するオブジェクト
我等が働き者、Tomcat。君は一体、どの程度まで多くのスレッドを作成してリクエストをさばく事が出来るんだい? まず最初にLinuxのスレッドライブラリについて軽く言及しておかねばなるまい。Linuxのスレッドライブラリには二種類ある。 まず、昨今のLinux(Kernel 2.6及びそれ以降)で用いられているNTPL(Native POSIX Thread Library)。これは1:1モデルのスレッドライブラリで、スレッドをプロセスとして実装してある。SolarisなどではいわゆるLWP(Light Weight Process)をしてスレッドを実装してあるのだけれども、Linuxではスレッドもプロセスも同じtask_struct構造体として扱い、COE(Context Of Execution、実行コンテキスト)をそれぞれ用に割り当てて用いているようだ。各プロセスは独立した仮想メモリ
夜がだんだん深くなってくるらしい、 だが心の中には明るい光が輝いている。 おれは、考えたことを急いで仕上げよう。 ファウスト、ゲーテ「ファウスト」より オフロードって何?みたいなキーワードで僕のサイトにやってくる人が時々いる。僕のThinkPad X121eに入っている「研究社リーダーズ+プラスV2」というEPWING英和辞典によれば、オフロード(offload)の元の意味は「荷物を降ろすこと」だ。コンピュータのTCP/IPプロトコルスタックについていえば、各プロトコルスタック専属であるはずの処理またはその一部を、ハードウエアであるNIC(Network Interface Card)へ割り当てることであり、それによってTCP/IP周りのソフトウエア的な処理量が減るので、ネットワーク通信がより高速化されることを期待するものである。 パフォーマンス向上のためにこのような事をするのが最近
それは私にふさわしい地位だろうよ。 なにも心得ない方面で命令するとは。 ファウスト、ゲーテ「ファウスト」より root@server# ps -ef|grep java tomcat 7559 1 0 Mar17 ? 00:01:10 /usr/local/java/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -XX:+UseSerialGC -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xms1024m -Xmx1024m -XX:New
[root@server ~]# jstat -gcnew `/sbin/pidof java` 30772 not found [root@server ~]# [root@server ~]# ps -ef|grep java tomcat 30772 1 0 2011 ? 02:01:40 /usr/local/java/bin/java -Djava.endorsed.dirs=/path/to/tomcat/common/endorsed -classpath /usr/local/java/lib/tools.jar:/path/to/tomcat/bin/bootstrap.jar:/path/to/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/path/to/tomcat
Tomcatの最大使用可能スレッド数の見積 にて述べたとおり、Javaバージョンによって、Tomcat/javaが使用することが出来る(最大)スタックサイズが決まっている。しかし、スタックサイズ分だけ仮想メモリがいきなり全部割り当てられるわけでなく、実際はより小さな値が割り当てられていることが多い。スタックサイズを気にせずにスレッド数を決めても、多くの場合は逼迫した状態にはならないものだ。 では実際のところ、Tomcat/Javaはどの程度のスタックを割り当てて稼動しているのであろうか。 一つの例として、以下のようなTomcatを見てみる。 root@server# ps -ef|grep java tomcat 7559 1 0 Mar17 ? 00:07:38 /usr/local/java/bin/java -Djava.util.logging.ma
Tomcatもビジーになってくると、スレッドが効率的に利用されているのかが気になってくる。それにはスレッド状態を見てやればよい。 Linux kernel 2.6.Xでは、procfsを覗いてやると、各プロセス中のスレッド状態を取得することが出来る。Tomcatのスレッド状態をコマンド一発で取得できればうれしいね。ということでシェルスクリプトを作ってみた。 #! /bin/sh # # tomcatstat.sh : Obtain thread statuses of Tomcat # # Copyright(c) 2012 Ryuichi Kurishima # # This script is BSD licensed. # CNT_R=0 CNT_S=0 CNT_D=0 CNT_Z=0 CNT_T=0 CNT_W=0 CNT_ALL=0 CNT_UNKO
オフロードって何?みたいなキーワードで僕のサイトにやってくる人が時々いる。僕のThinkPad X121eに入っている「研究社リーダーズ+プラスV2」というEPWING英和辞典によれば、オフロード(offload)の元の意味は「荷物を降ろすこと」だ。コンピュータのTCP/IPプロトコルスタックについていえば、各プロトコルスタック専属であるはずの処理またはその一部を、ハードウエアであるNIC(Network Interface Card)へ割り当てることであり、それによってTCP/IP周りのソフトウエア的な処理量が減るので、ネットワーク通信がより高速化されることを期待するものである。 パフォーマンス向上のためにこのような事をするのが最近の流行なのだが、じつはこのオフロード処理がパフォーマンスを向上させるどころか、かえって悪化させる事案が散見される。特に仮想化したシステムとの相性は最悪で、VM
極めて素朴な疑問。Linux上で動くTomcatが今現在、実際に使用しているスレッド数はいくつであろうか? これはprocfsを使って簡単に調べることが出来るよ。まず、TomcatのPIDを調べる。 root@server# ps -ef|grep java tomcat 7559 1 0 Mar17 ? 00:01:10 /usr/local/java/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -XX:+UseSerialGC -verbose:gc -XX:+PrintGCTimeStamps -XX:
Java 1.6とSIGSEGVでは結局問題が解決せず、相変わらずSIGSEGVでTomcatのJavaが落ちる。落ちる時の様子をもう少し掘り下げてみる。使用しているJavaのバージョンは、Oracle Java 1.6.0 update 20 (64bit)となっている。(以下、Tomcatで使用しているユーザーをtomcatとする。) tomcat$ echo $JAVA_HOME /opt/java tomcat$ which java /opt/java/bin/java tomcat$ java -version java version "1.6.0_20" Java(TM) SE Runtime Environment (build 1.6.0_20-b03) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02,
O horror, O terror, O cringing fear, keep away from me! O my eyes, O my heart, it is true. It is the one I loved. O let me die once more, that consciousness may pass from me! It is her, whom I loved, she for whom I waited in joyful anticipation, hoping to find the light of my youth, hoping the overlay of later evils would be sloughed away by death, hoping to find the warm, throbbing liveliness I o
Javaが時々SIGSEGVで落ちるようになった。しかも、一度落ちると、結構な頻度ですぐに再発する。 【構成概要】 物理メモリ : 32GB スワップ : 50GB CPU数 : 16 OS : Redhat Enterprise Linux Server 5.5 (64bit) Java : 1.6.0 update 20 Tomcat : 6.0.26 最近の多コア系のサーバーでは、この32GBのメモリは「一様に」配置されているわけではない。CPUノードごとにローカルメモリが配置され、これらが、ある種のバス(他の呼び方があるかもしれない)で相互に接続され、CPUは自分のローカルメモリのアドレス空間外のメモリについては他ノードのCPUのローカルメモリ、つまり、もとのCPUからしてみればリモートメモリにアクセスするような作りになっている。 このような造りは、プログラムが特に何
他人にどう思われるかを心配している限り、あなたは他人のものだ。外からの承認を求める必要がなくなったとき初めて、あなたはあなた自身のものになる。 神との対話
Tomcatコンソールログは、既定では${CATALINA_BASE}/logs/catalina.outに出力される。しかし、Tomcatはこれを一切回転してくれない。ログサイズは増える一方であり、32bit Linuxでは2GBまでログサイズが膨れ上がった時点で、それ以降はTomcatが動作を停止してしまう。64bit Linuxでは、ディスク容量が許す限り、さらに膨大なサイズに膨れ上がる。 Tomcatコンソール出力(catalina.out)にはTomcatの動作状況を判定する重要な情報が含まれている。2GBのログをテキストエディタで覗いて見る気にはなるまい。ならば、シスログのように回転させてしまえばいい。 Tomcatを起動するスクリプト${CATALINA_BASE}/bin/startup.shの先頭に、以下のシェルコードを埋め込んでしまおう。 # # catalina.o
秋の霧が蒼く湖の上を流れる。 草はみな霜に覆われている、 天の名工が、ひすいの粉を 繊細な花にふりかけでもしたようだ。 銭起 Google Analyticsで集計されている検索キーワードを見ていると、「スタックスレッド」(stuck thread)というキーワードをたまに見かける。なるほど、お困りのようで。 「スタック・スレッド」(stuck thread)というのは、典型的には、Javaアプリケーションサーバー(WeblogicやTomcatなど)がサービスしているJavaスレッドで、リクエストを処理するための時間(タイム・スライスという)をCPUが割り当てなくなったもののことを言う。タイム・スライスを割り当てるスケジューリングに不具合が生じているわけだが、スレッドにタイム・スライスが割り当てられなくなるので、何も処理を進めることができず、スレッド飢餓状態(thread st
すべての尊き氏族、身分の高下を問わず、ヘイムダルの子らに聞いてもらいたい。 戦士らの父よ、あなたは私に思い出せるだけの古い昔の話を、 みごと語ってみせよと仰せられる。 歌謡エッダ「巫女の予言」 記事Tomcatコンソールログ(catalina.out)の回転にて、Tomcat起動時のタイムスタンプを用いて${CATALINA_BASE}/logs/catalina.outをローテートさせる方式を紹介した。Tomcatを比較的頻繁に(たとえば、毎週定期的に)再起動するならばこの方式もよい。 しかし、Tomcatを立ち上げっぱなしで停止することができないケースが多々ある。ロードバランサ(負荷分散装置)を使用しないで、単独でサービスしているサーバーなどのケースがこれにあたるが、このような場合は、Tomcat(Java)を停止させずにログ(catalina.out)を勝手にローテートしてく
30歳未満で左翼思想でない男は親愛の情に欠ける。 そして30歳を過ぎて保守思想でない男は知能に欠ける。 ジョージ・バーナード・ショー Apacheで実際にHTTPリクエストを処理するエンティティを「スロット」と呼ぶ。そして、スロットを集めたApacheのリクエスト処理の管理状態の記録をスコアボードと呼ぶ。スコアボードは、処理系にもよるが、大抵はOSの共有メモリを利用しており、リクエスト処理をするプロセス間で共有可能な記憶領域となっている。共有メモリが利用できない一部の旧式な処理系では、ファイルで管理するらしい。 スロットは、選択したApacheのMPM(マルチプロセッシングモジュール)によりプロセスであったり、スレッドであったりする。Unixのデフォルトはpreforkで、これはすべてのHTTPリクエスト処理を、あらかじめforkした(つまり、"prefork"した)子プロセスにて実
Tomcat起動直後に死亡! の記事で、"CompilerThread"が吐き出したjava.lang.OutOfMemoryErrorがJavaヒープ(Javaオブジェクト用のメモリ領域)ではなく、ネイティブヒープ(Cヒープ)によるものであろうと書いた。その時Linuxを再起動したのだけれども、やはりこのエラーは再発する。しかも二種類に増えた。Javaのバージョンは5.0 update 12。 server$ java -version java version "1.5.0_12" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04) Java HotSpot(TM) Server VM (build 1.5.0_12-b04, mixed mode) server$ server$ pwd
Xenの完全仮想化を利用してゲストをたくさん作って動かしていると、Xenサーバーが或る日突然機能停止する。電源ボタンを使って電源を一度落とし、再度電源を投入することになる。コンソールからの制御も全く受け付けなくなるからね。 ホストOS上のシスログ(/var/log/messages)を見ると、サーバーが完全にダウンする数時間前に、カーネルが仮想メモリ(スワップ)不足の悲鳴をあげているのが分かる。 ... Aug 2 07:25:54 omega kernel: 927 pagecache pages Aug 2 07:25:54 omega kernel: Swap cache: add 778561, delete 778496, find 162567/194519, race 0+30 Aug 2 07:25:54 omega kernel: Free swap = 0
Allied Telesisのルーターの初期パスワードは、"friend"である。新品ならば、このパスワードでログインして、自分の好みのパスワードに変更してしまえばよい。 しかし、すでに退職し、連絡も取れない前任者の設定したアライドのルーターを再設定するときには、どうすればよいのか?パスワードが不明なのでルーターにログインすることもできず、もちろん設定を初期化することもできない。仮に設定を初期化できたとしても、設定済みのパスワードはクリアされないが。 私は経験したことがないし、試してもいないのだけれども、Recovering a lost password on a Router or Rapierというドキュメントに、アライドルーターの不明なパスワードをクリアするための方法が書いてある。内容が英語なので、こちらに和訳をしておこう。 もしあなたが設定ファイルのパスワードを紛失したならば、以
次のページ
このページを最初にブックマークしてみませんか?
『Yaruo out of the ground』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く