ibarimanのブックマーク (819)

  • Java 仮想マシン (JVM) のチューニング

    ibariman
    ibariman 2015/07/16
  • 64ビットプラットフォームで絶対お勧めのLuceneのMMapDirectory (Uwe氏のブログより) | 関口宏司のLuceneブログ

    一定期間更新がないため広告を表示しています

    64ビットプラットフォームで絶対お勧めのLuceneのMMapDirectory (Uwe氏のブログより) | 関口宏司のLuceneブログ
    ibariman
    ibariman 2015/07/16
  • wall-climb » Javaヒープサイズと仮想メモリ使用量

    Tomcatに限らず、Javaコマンドで? 行するサーバアプリケーションを実行するホストでは、Javaヒープサイズ、Permanent領域サイズを調整するのが定石となっています。しかし、実際に値を設? 後、OS上でこれらの値の使用状? を確? するのは地 しだけコツがいると思います。 例えぜ Javaの起動オプションぜ Javaヒープサイ゜ (Xmx, Xms)を2048MB、Permanentサイ゜ (PermSize, MaxPermSize)を384MBに設定したとします。しかし、Linux上ではメモリ使用状? を監? するコマンドであるfree、vmstat、sar -rなどを実行しても2432MBの利用状? を確? することが出来ません。これぜ Javaコマンドで指定したJavaヒープサイズ、Permanentサイズが確? しているのが物理メモリではなぜ 、プロセス? の仮想メモ

    ibariman
    ibariman 2015/07/16
  • 第4回 メモリー管理のキー技術「仮想メモリー」を知る

    大手コンピュータ・メーカー勤務。入社以来10数年をソフトウェア開発の現場で過ごし,その後ソフトウェア品質部へ異動。現場への技術支援や品質教育開発などを主に行っている。「APIで学ぶWindows徹底理解」(日経BP社)などを執筆。 今を去ること十数年前,PC(パソコン)のOSの主流がDOSだったころ,アプリケーションが利用できるメモリーは,高々500Kバイトしかなかった。プログラマは,少ないメモリーをいかに有効利用するかに腐心したものだし,mallocなどのメモリー割り当て関数が,メモリー不足のためにエラーを返すのも珍しいことではなかった。OSがWindowsLinuxなどに変わり,メモリーの大容量化や低価格化が進んだ今,少なくとも一般的なアプリケーション開発に関する限り,メモリーが確保できるかどうかを心配する開発者はほとんどいないのではないだろうか。 しかし,それでもメモリーは有限であ

    第4回 メモリー管理のキー技術「仮想メモリー」を知る
    ibariman
    ibariman 2015/07/15
    “る仕組みが,Windowsにおけるメモリー管理のキーである「仮想メモリー」だ。これは,プロセスがアクセスするメモリー空間を,物理メモリー空間と”
  • Hotspot VMの基本構造を理解する

    J2EEがミッションクリティカルな分野に適用されるようになり、Javaのパフォーマンスチューニングの重要性はさらに高まっています。パフォーマンスチューニングにはさまざまなパラメータがありますが、中でもJava VMに関連するチューニングの効果は大きいといわれています。稿は、Java VMに関連するチューニング手法を学ぶための前提知識を提供することを目的にしています(編集部)。 Java VMに関連するチューニングを行い、J2EEアプリケーションのパフォーマンスを上げるためには、Java VMについて詳しく知る必要があります。稿は2回に渡ってJava VMの基構造と動作原理を詳細に解説しますが、内容を理解するためにはプログラムがコンピュータ上で動作する基原理とJava VMの基用語を知っている必要があります。Java VMの基用語に関しては、「実行スピードに挑戦するJavaアーキ

    Hotspot VMの基本構造を理解する
    ibariman
    ibariman 2015/07/15
  • システムのクラッシュ

    ibariman
    ibariman 2015/07/15
  • 第5回 カーネル・メモリー管理

    前回は,プロセスが利用するメモリーをLinuxがどのように管理するかを説明しました。Linuxでは,ページングという仕組みに基づいた仮想記憶機構を利用して,プロセスごとに実際のメモリー空間とは別の仮想メモリー空間を準備します。この仮想メモリー空間は,プロセス・スケジューラによって実行が切り替わるたびに切り替えられます。このような仕組みを採ることで,複数のプロセスで競合を起こさず,できるだけ効率的にメモリーを使えます。 ところで,メモリーを利用するのはプロセスだけではありません。カーネル自身もメモリーを使いますが,その利用方法はプロセスの場合とは異なっています。また,物理メモリー・アドレスと仮想メモリー・アドレスの変換を行うのはプロセッサ(MMU)の仕事ですが,実際にその変換表(ページ・テーブル)を用意するのはカーネルの役割です。空き物理ページのうちどのページを割り当てるのか判断するのもカー

    第5回 カーネル・メモリー管理
    ibariman
    ibariman 2015/07/15
  • HugePage は free コマンドで見ると used に計上される(2) - ablog

    HugePages は free コマンドで見ると used に計上される - ablog の続き。 Huge Page はユーザープロセスから使われる前はOSカーネル内に確保され、used に計上されるが、ユーザプロセスが使用すると cahched に計上されるぽい。 検証結果 # ulimit -l unlimited # ulimit -l unlimited # sysctl -w vm.nr_hugepages=200 vm.nr_hugepages = 200 # sysctl vm.nr_hugepages vm.nr_hugepages = 200 # gdb hugepage-shm GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6) Copyright (C) 2010 Free Software Foundation

    HugePage は free コマンドで見ると used に計上される(2) - ablog
    ibariman
    ibariman 2015/07/15
  • Linux ハードディスクをマウント(mount)する

    増設したハードディスクへfdiskでパーティションを作成し、そのパーティション上へmkfsでファイルシステムを作成しました。最後にマウント(mount)する事でやっとそのハードディスクを利用する事ができます。 Last Update : 2013年08月15日 Linux ハードディスクをマウント(mount)する 項目 mountとは mountコマンドの書式 mountする OSを再起動した後もmountさせる 1. mountとは Linuxのディレクトリ構造は、「/(ルートディレクトリ)」とよばれる一番上のディレクトリからはじまるツリー状の構造になっていますが、増設したハードディスクの様な記憶装置を、このツリー構造のあるポイントへ登録する事をマウントといいます。 また、「あるポイント」の事をマウントポイントといいます。 2. mountコマンドの書式 mountコマンドの書式 mo

    ibariman
    ibariman 2015/07/15
  • vnc設定 - memo帳

    gnome-session[1779]: devkit-power-gobject-WARNING: Couldn't connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: 接続を拒否されました

    ibariman
    ibariman 2015/07/15
  • CentOSがいうこときかなくなった - tail -f ぼへろぐ

    というか、GUIモードで起動したものの、 マウス操作もキーボード操作も受け付けなくなってしまいましたのよ。 デバイスを受け付けるサービスをoffしてしまった模様。 では、CUIでたちあげればなんとかなるか? とか思って、やってみたことになります。 強制的にシングルユーザーモードで起動します。 起動するときに「F8」を打。 カーネルのバージョン選択画面がでてくるので、 そこで「e」で編集にうつります。 遷移した画面で、カーネルを選択し、「e」で編集 そしてプロンプトの末尾に「single」を追加してリブート そうすると、rootでアクセスできました。 目的はCUIにして起動することでしたので、 vim /etc/inittab デフォルトランレベルを3に変更して、起動しなおしました。 # デフォルトランレベル(ランレベル3を指定) id:3:initdefault: ランレベル 1 : Wi

    CentOSがいうこときかなくなった - tail -f ぼへろぐ
    ibariman
    ibariman 2015/07/15
  • Man page of EXPECT

    Section: User Commands (1) Updated: 29 December 1994 Index JM Home Page roff page 名前 expect - 対話的なプログラムとのやりとりを自動化するプログラム, バージョン 5 書式 expect [ -dDinN ] [ -c cmds ] [ -[f|b] ] cmdfile ] [ args ] イントロダクション Expect は、スクリプトの指示に従って、対話的なプログラムと"会話"するプログラムである。 以下のスクリプトに示すように、 Expect には、対話プログラムからの期待されうる入力とそれに対する正しい応答を 教えておく。インタプリタは分岐処理と高度な制御構造を提供し、 対話プログラムへの指示を行なう。 さらに、必要な時にスクリプトから制御を奪って直接人間が指示を行ない、 その後、制御をス

    ibariman
    ibariman 2015/07/15
  • SELinuxをCentOS 7 で有効化・無効化 (disabled, enforcing, permissive, setenforce) 停止の確認、設定

    SELinux (エスイーリナックス) とは何か SELinuxは、Security Enhanced Linuxの略で、文字通り、Linuxセキュリティを向上させるための仕組みです。 おおよその仕組みは以下の通りです。 Linuxに限らず、多くのオペレーティングシステムでは管理者と呼ばれるユーザーでログインするとすべてのアクセスが可能となります。 このことは、逆に見れば、管理者を乗っ取られれば、すべてのアクセスを許してしまうことを意味します。 Linux(UNIX)の場合、管理者はrootと呼ばれます。 SELinuxでは、このrootにセキュリティが一極集中することを避けて、rootにすべてのアクセス権限を許すのではなくて、HTTPやFTPといったプロセスごとにアクセス権限を設けることができます。 CentOSを初め多くのLinuxのディストリビューションではSELinuxはデフォル

    SELinuxをCentOS 7 で有効化・無効化 (disabled, enforcing, permissive, setenforce) 停止の確認、設定
    ibariman
    ibariman 2015/07/14
  • systemdによるCentOS 7の管理

    ドロップインによるユニットのカスタマイズ systemdには、サービスの起動・停止の制御や依存関係、起動順序の制御だけでなく、プロセス管理の挙動に関するパラメータを詳細に設定することが可能となっています。例えば、Apache Webサーバーで有名なhttpdサービスのパラメータは以下で確認することが可能です。 # systemctl show --all httpd 様々なパラメータが設定可能であることがわかります。しかし、特定のパラメータについて明示的に設定を行う場合には、ユーザー独自の設定ファイルに特定のパラメータのみを記述しておくとアプリケーションやサービスの運用管理が煩雑化しにくくなります。ここでは、httpdサービスにパラメータを個別に指定して管理する方法を紹介します。まず、systemdでは、ユーザー独自のパラメータを指定するためのディレクトリを作成します。httpd.serv

    systemdによるCentOS 7の管理
    ibariman
    ibariman 2015/07/14
  • @IT:Oracle管理者のためのSQLリファレンス [DB停止]

    Oracle管理者のためのSQLリファレンス ■データベースの停止(SQL*Plus版) SQL*Plusを使ってOracleデータベースのインスタンスを停止するには、SYSDBAあるいはSYSOPERシステム権限でOracleデータベースに接続し、SHUTDOWNコマンドを発行します。データベースの停止には、「NORMAL」「IMMEDIATE」「TRANSACTIONAL」「ABORT」という4つの停止モードがあり、状況に合わせて使い分けます。(SQLの表記ルールは、こちらから参照できます)

    ibariman
    ibariman 2015/07/13
  • プロセス構成 - Oracle備忘録

    Oracle Clientアプリケーションからの接続要求を受付け、サーバプロセスに受け渡すプロセスです。

    ibariman
    ibariman 2015/07/13
  • 初期化パラメータ PROCESSES の設定について | オラエーリックスマンの呟き

    初期化パラメータ PROCESSES (最大ユーザープロセス数)の設定 Oracle Databaseに同時に接続できるOSプロセスの最大数は、PROCESSES初期化パラメータによって決定します。また、PROCESSESは、SESSIONS(最大セッション数)とTRANSACTIONS(同時トランザクション最大数)にも影響するパラメータです。SESSIONSとTRANSACTIONSはPROCESSESの値から決められているので、その影響も考慮しておく必要があります。 PROCESSES → 同時接続できるOSプロセス最大数 SESSIONS → セッション最大数 PROCESSES*1.1+5 TRANSACTIONS →同時トランザクション最大数 SESSIONS*1.1 PROCESSES変更 PROCESSESの値を500に変更する手順です。 sqlplusを起動します。 [or

    ibariman
    ibariman 2015/07/13
  • Oracleの同時接続数と最大接続数を確認する - 小さい頃はエラ呼吸

    はじめに この記事ではOracleに接続しているセッションの数を調べる方法について書いています。 Oracleの基 ~データベース入門から設計/運用の初歩までposted with amazlet at 19.09.29渡部 亮太 相川 潔 日比野 峻佑 岡野 平八郎 宮川 大地 技術評論社 売り上げランキング: 65,273 Amazon.co.jpで詳細を見る 同時接続しているセッション数を調べる sysユーザで以下のクエリを実行します。 connect sys/oracle as sysdba select * from v$license; SESSIONS_CURRENTが現在の同時ユーザーセッション数で、SESSIONS_HIGHWATERがデータベースを起動してからの最大同時ユーザーセッション数です。 上記の例では現在5つのセッションが接続中であり、データベースの起動からこ

    ibariman
    ibariman 2015/07/13
  • 第7回 HotSpot JVMではどのようにオブジェクトが移動するのか | gihyo.jp

    1回目のマイナーGCまでの流れを把握する 前回は、HotSpot JVM(以下HotSpot)のヒープ構造を解説しました。今回は、HotSpot JVMの4つのヒープ領域がどのように使用されていくのかを見ていきましょう。 まず、アプリケーションがオブジェクトを作成すると、HotSpotはそのオブジェクトにEden領域を割り当てます。 図1 オブジェクトが生成されるとEden領域が割り当てられる アプリケーションが処理を実行していくと、オブジェクトがどんどん作成されていきます。その結果、Eden領域が次々と使用されていきます。 Eden領域がいっぱいになり、空き領域がなくなると、HotSpotはNew領域を対象にGCを行います。このGCは「マイナーGC」と呼ばれ、世代別GCで言う「若い世代のGC」になります。 このように、Eden領域で短命なオブジェクトを回収することで、ヒープを再利用できる

    第7回 HotSpot JVMではどのようにオブジェクトが移動するのか | gihyo.jp
    ibariman
    ibariman 2015/07/13
  • 機械学習とか全くわからないけどKaggleに初挑戦してみた - ぴよぴよ.py

    今日は#pyhack & Kaggleに初参加してみました。 Kaggleとは? Kaggleは企業や研究者がデータを投稿し、世界中の統計家やデータ分析家がその最適モデルを競い合う、予測モデリング及び分析手法関連プラットフォーム及びその運営会社である。 bywikipedia とりあえず今日の目標は、機械学習とか全くわからないけど、とりあえず何か提出してみよう、という感じです。 挑戦するのはDigit Recognizerという、手書きの数字の画像から数字を判別するチュートリアルコンテストです。 データは実際には画像ではなくて、28*28の0~255の数字で用意されています。 まずは適当にやってみる 誰かの記事なんかに沿ってやってくのは難しいしよくわからないし、ワクワクしないので、とりあえず最初に自分で考えたしょぼい方法でどこまでできるかやってみます。 機械学習(教師あり)は一切知識がない

    機械学習とか全くわからないけどKaggleに初挑戦してみた - ぴよぴよ.py
    ibariman
    ibariman 2015/07/11