タグ

ブックマーク / atmarkit.itmedia.co.jp (28)

  • 調査の難しい「OutOfMemoryError」事例、5選

    メモリ不足の問題の切り分け方の基 まずは、メモリ不足がJavaヒープとCヒープのどちらで発生したかを切り分けておこう。 Javaヒープ OutOfMemoryErrorがスローされ、JavaVMの実行が継続している場合には、Javaヒープが不足している可能性が高い。Javaヒープ不足かどうかを確定させるために、スローされたOutOfMemoryErrorのトレースを確認しよう。 java.lang.OutOfMemoryError: Java heap space <=======【*1】 at java.nio.CharBuffer.wrap(CharBuffer.java:350) <=======【*2】 at java.nio.CharBuffer.wrap(CharBuffer.java:373) at java.lang.StringCoding$StringDecoder.

    調査の難しい「OutOfMemoryError」事例、5選
    Yudoufu
    Yudoufu 2016/03/07
    OutOfMemoryErrorの対処、主にC heap側で起きた場合
  • @IT:Javaパフォーマンスチューニング 第3回

    記事は、HP-UX Developer Edgeに掲載された記事を株式会社アットマーク・アイティおよび記事の筆者が独自の判断のもとに加筆・修正したものです。 今回は、Javaにおけるヒープ・メモリ管理の詳細を説明します。JVMのヒープ・メモリの中で、新しいオブジェクトと古いオブジェクトがどのように配置されるかを理解することで、ヒープ・メモリが有効に利用されているか否かを判断することができます。また、JVMが出力するガベージ・コレクションのログを解析し、オプションの指定によってヒープ・メモリのサイズを適切にチューニングする方法を紹介します。 Java ヒープ・メモリの構造 Javaにおけるガベージ・コレクションのメカニズムを理解するには、まずヒープ・メモリの構造を知っておく必要があります。 図1は、JVM におけるヒープ・メモリの構造を示したものです。この図が示すように、ヒープ・メモリの

    @IT:Javaパフォーマンスチューニング 第3回
  • Androidアプリ開発でテストを始めるための基礎知識

    Androidアプリのテストに関する課題 Android端末の普及は世界規模で増加の一途をたどっています。2011年秋冬モデルが発表され、発売予定のものを含むと日で発売中のAndroidの携帯端末は100機種に迫ろうとしています。読者の皆さんの周囲を見渡しても、電車や街角でAndroidを採用したスマートフォンなど携帯端末を使用する人をよく見かけるのではないでしょうか。 そして、スマートフォンに留まらずタブレットやミュージックプレイヤー、電子ブックリーダー、POSレジ、テレビなど、さまざまなデバイスがAndroidを搭載し始めています。Androidの採用が増えるにつれ、Androidアプリの種類が増えるので、アプリの開発案件も増えることになります。実際、稿を読んでいる開発者の方の中にも、すでにAndroidアプリの開発に取り組んでいる方も多いのではないでしょうか。 筆者も普段の業務の

    Androidアプリ開発でテストを始めるための基礎知識
    Yudoufu
    Yudoufu 2014/10/17
  • 連載インデックス「Androidで動くJavaアプリ開発入門」 - @IT

    連載インデックス 「Androidで動くJavaアプリ開発入門」 初心者のための入門連載です。「Androidアプリとは何か」の基礎知識から開発環境の構築(Android Studio、SDK ToolsとEclipse ADT、NDK、エミュレーターなどのインストールや使い方)、Java言語で書くアプリ開発の基的なところから、最新版5の新機能までまとめて解説します。Activity、Intent、サービス、WebView、ゲーム開発、センサー、カメラ、位置情報/GPSBluetooth通信、NFC、Android Wearなど ※連載のアップデート版連載は「実業務でちゃんと使えるAndroidアプリ開発入門」として連載中です。 Javaでの常識が通用しないAndroidにおけるメモリ管理の注意点 実業務でちゃんと使えるAndroidアプリ開発入門(3) Androidアプリのメモリ

    Yudoufu
    Yudoufu 2014/10/17
  • システム起動時にUNEXPECTED INCONSISTENCYエラーが発生した場合は - @IT

    システム起動時に、以下のようなメッセージが表示されて起動しない場合がある。これは、ファイルシステムチェックで何らかの問題が発見されたことを意味する。ここでは、この現象が発生した場合の復旧方法について紹介する。 Checking filesystems /12: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e., without -a or -p options) *** An error occurred during the file system check. *** Dropping you to a shell; the system will reboot *** when you leave the shell. Give root password for maintenance (or type Control-D to 

    Yudoufu
    Yudoufu 2014/10/17
  • 2.TCPのオープンとクローズ処理 @IT:連載 基礎から学ぶWindowsネットワーク 第15回 信頼性のある通信を実現するTCPプロトコル(2)

    第15回 信頼性のある通信を実現するTCPプロトコル(2):基礎から学ぶWindowsネットワーク(3/3 ページ) さてそれでは、実際のTCP接続の詳細について見てみよう。TCP接続の概要についてはすでに前回述べているので繰り返さないが、簡単に復習しておくと、「データを送信したら、それに対する応答(ACK)を必ず確認する」ということである。一見複雑そうに見えるTCP通信の内容も、この原則さえ分かっていれば容易に理解できる。そしてこの原則は、コネクションのオープンやクローズ時にも徹底されているのが分かるだろう。 TCP接続のオープン UDPによる通信と違って、TCPでは実際の通信に先立って、いろいろな準備が必要である。この準備のことをオープンといい、逆に通信が終了するための処理のことをクローズという。 TCPによる通信ではシーケンス番号に基づいた送受信確認が大事な役割を担っているが、オープ

    2.TCPのオープンとクローズ処理 @IT:連載 基礎から学ぶWindowsネットワーク 第15回 信頼性のある通信を実現するTCPプロトコル(2)
    Yudoufu
    Yudoufu 2014/10/17
  • Canvas APIの基礎

    もともと、Appleが主にDashboardウィジェットの描画のためにWebKitに導入したCanvas API。サンプルコードと見比べながら、効率良く学習しよう Canvas APIの基礎 連載では、Webブラウザ上で利用できるグラフィック技術を分かりやすく紹介しています。今回はHTML5のcanvas要素で使える2次元描画コンテキスト、俗にいう「Canvas API」を取り上げます。 Canvas APIは、もともとAppleが主にDashboardウィジェットの描画のためにWebKitに導入したものです。それがFirefoxやOpera、Internet Explorer(9以降)に実装され、現在はW3Cによって標準化が進められています。JavaScriptのメソッドで直接図形を描画するのが特徴で、ビットマップ画像の加工や、ゲームのようなインタラクティブ性の高いアプリケーションに向

    Canvas APIの基礎
    Yudoufu
    Yudoufu 2014/10/17
  • システム・バックアップを基礎の基礎から

    各バックアッププログラムの基操作 バックアップを取るためのツールは多数存在します。ここではtar、dd、dumpという、タイプが異なる3つのツールを紹介します。 tar tarはアーカイブを作成するツールとして、広く普及しています。そのため、Windowsなどの異なるOSにデータを渡したい場合でも利用できます。 バックアップする場合は、どこまでをバックアップデータとするのかを考えましょう。例えば、/home/user1ディレクトリ以下のファイルをtarを利用してバックアップする場合、「user1」というディレクトリを含めるのか、そのディレクトリ内にあるファイルだけをバックアップするのかによって操作が変わります。 ●tarを利用したバックアップ user1ディレクトリ内のファイルのみをバックアップする場合は、以下のように実行します。

    システム・バックアップを基礎の基礎から
    Yudoufu
    Yudoufu 2014/10/17
  • SystemTapで真犯人を捕まえろ!

    SystemTapで真犯人を捕まえろ!:Linuxトラブルシューティング探偵団 番外編(3)(1/4 ページ) NTTグループの各社で鳴らした俺たちLinuxトラブルシューティング探偵団は、各社で培ったOSS関連技術を手に、NTT OSSセンタに集められた。普段は基的にNTTグループのみを相手に活動しているが、それだけで終わる俺たちじゃあない。 ソースコードさえあればどんなトラブルでも解決する命知らず、不可能を可能にし、多くのバグを粉砕する、俺たちLinuxトラブルシューティング探偵団! 助けを借りたいときは、いつでもいってくれ! OS:高田哲生 俺はリーダー、高田哲生。Linuxの達人。俺のようにソースコードレベルでOSを理解している人間でなければ、百戦錬磨のLinuxトラブルシューティング探偵団のリーダーは務まらん。 Web:福山義仁 俺は、福山義仁。Web技術の達人さ。Apache

    SystemTapで真犯人を捕まえろ!
    Yudoufu
    Yudoufu 2014/10/17
  • Linuxメモリ管理の最先端を探る(2/2) - @IT

    小崎 資広 2008/5/22 VM(仮想メモリ)の改善 昔からのLinuxユーザーの方は、カーネル2.4の時代に、一時期VM(仮想メモリ)が不安定で悩まされていたことを覚えている方もいるかもしれません。 現在のVMは、Andrea Arcangeliの作成した割とシンプルな設計なVMに、Rik van Rielの作成したページフレームからページテーブルエントリを逆引きするためのreverse mappingという機能を追加したものが基となっています。 これは、コードの複雑さと性能の間でバランスの取れた、なかなか評判のいいものだったのですが、カーネル2.6の登場から約5年がたち、だんだんアラが目立つようになってきました。 というのも、当時は一般的なパソコンのメモリ量は256M~512Mbytes程度で、サーバでも4Gbytesの壁を超えるようなマシンはまれでした。しかし、DRAMの急激な

    Yudoufu
    Yudoufu 2014/10/17
  • @IT:シェルを使わずにシステムをシャットダウンするには

    何らかの原因でシェルからの入力が一切行えなくなった場合は、PCのリセットボタンを押してリブートするしかない。しかし、ハードディスクがクラッシュする可能性もあるので、可能な限り安全な方法でリセットしたい。そのようなときには、マジックSysRqキーを使う。 マジックSysRqキーを使うには、/proc/sys/kernel/sysrqが「1」になっていなければならない。「0」になっている場合は、rootで、 としておく。 コンソールからの入力を一切受け付けないような事態に陥ったら、[Alt]+[SysRq]キーを押しながら、[s]→[u]→[b]キーの順にキーを押す。すると、システムが再起動する。電源オフするときは、[Alt]+[SysRq]キーを押しながら、[s]→[u]→[o]キーの順にキーを押す。 主なマジックSysRqキーは、以下のとおりだ。それ以外のキーについては、/usr/src/

    Yudoufu
    Yudoufu 2014/10/17
  • あなたの知らない>|と<>の使い方

    >や>>、>&といったひんぱんに使われるリダイレクトに対し、ほとんど使われることのないリダイレクトが>|と<>だ。実際には興味深い機能である、これら「知られざる」リダイレクトについて説明しよう。(編集部) あなたの知らないリダイレクト、>|と<> シェルが提供する機能はカーネルが提供している機能をダイレクトに利用するものが多い。つまり、シェルの記述がダイレクトにシステムコールに結び付くような機能が多いということだ。コマンドの実行、パイプ、リダイレクトなどは、そっくりそのままシステムコールに置き換わる。 リダイレクトであれば、ほとんどのケースで>ないしは>>で事足りるはずだ。2>&1という記述はこれで1つの機能に思えるが、これは>&というリダイレクトの典型的な使い方の1つであり、つまりはリダイレクトだ。 >、>>、>&はよく使われるリダイレクトといえる。しかし、sh(1)のマニュアルには次の

    あなたの知らない>|と<>の使い方
    Yudoufu
    Yudoufu 2014/10/17
  • libvirt探訪(基礎編)

    この連載では、オープンソースの仮想化ソフトウェア、Linux KVM(Kernel-based Virtual Machine)とそれを支える技術の最新開発動向を紹介していきます。(編集部) 今回は、仮想マシンや関連するリソースの運用管理を支援するライブラリ、libvirtについて探っていきましょう。 「libvirt」とは? libvirtはlib[rary] + virt[ualization]という名前のとおり、仮想マシン(Virtual Machine、以下VM)を仮想マシンモニタ(Virtual Machine Monitor、以下VMM)によらず管理可能にし、安定したC言語のAPIを提供するためのライブラリです。 libvirtはもともとXen(API)に対する安定したAPIを実現し、その上で各種管理ツールを実現するために開発されました。そのため、ソースコードの各所にXenに対

    libvirt探訪(基礎編)
  • 検索技術を使うなら知ってないと損する6つのこと~クックパッド、グリー、ぐるなび、CROOZは検索技術をどう使っているのか(2/2) - @IT

    グリーでログ分析システムの開発を行っている一井崇氏からは、「全文検索のちょっとちがった使い方(仮)」と題する発表があった。 グリーにおける数値指標管理では、基となるデータの総数が「1億キー×最大7年」という膨大な量に上り、さらに時間ごとに増え続けるアプリIDとの組み合わせなども考慮すると、すでに人間の手では管理しきれない状態にある。 同社ではMySQLベースのKVS(Key Value Store)によって、これらのデータを管理しているが、問題はkeyの数が膨大過ぎて必要なkeyを見つけるのが困難になっていることだという。 その解決のためにHadoopやMongoDBを導入するといった選択肢もあるが、同社が取った方法は「key stringを全文検索することで目的のkeyを探す」というものだった。一井氏によれば、グリーの数値指標管理システムの目的を整理すると、以下のようになるという。 や

  • 特集:無線LAN構築のABC 2. SSID設定のコツ - @IT

    特集 無線LAN構築のABC 2. SSID設定のコツ デジタルアドバンテージ 2002/07/31 SSIDの正しい設定法 アクセス・ポイントの設置場所が決まったら、アクセス・ポイントと無線LANクライアントの設定を行うことになる。まず、アクセス・ポイントと無線LANクライアントが利用するチャンネルを、前述のようにオーバーラップしないように設定する。 次に「SSID(Service Set ID)」を設定する。これは、アクセス・ポイントと無線LANクライアントの両方に同じ文字列を設定すればよい。なお、無線LANクライアント側は「ANY」や空欄にしておくと、すべてのSSIDで通信可能にするという設定になっている。これは、公衆無線LANアクセス・サービスを意識した仕様だが、逆にいえばSSIDを知らなくても「ANY」や空欄にしていればネットワークに接続できてしまうことになる。つまり、SSIDは

  • 連載記事 「知ってトクするシステムコール」

    システムコールについてどれくらいご存じですか? 連載:知ってトクするシステムコール(1)  難しいものと思われがちなシステムコール。しかし、学べばトクすることがいろいろあるんですよ

  • 連載記事 「スマートな紳士のためのシェルスクリプト」

    シェルスクリプトはエレガントでなければならない スマートな紳士のためのシェルスクリプト(1)  気軽に使えるシェルスクリプト。しかし、気軽に使っていてはダメだ。OSの仕組みまで理解すると、ひと味違うスクリプトが書ける

  • HTML5のvideo/audio+JavaScript APIテクニック

    HTML5の<video>や<audio>タグとJavaScript APIで、自由に動画や音声を楽しもう。カスタムのビデオプレイヤーだって作れる video/audio要素のAPIやイベントを利用する video/audio要素は、JavaScriptを用いた細かい制御を行えるのも特徴の1つです。 カスタムのビデオプレイヤーを作ることも容易ですし、動画からフレームを切り出してCanvasに投影し、グラフィックとして取り扱う、なんてテクニックもあります。 今回は、そうしたJavaScript APIの利用方法について見ていきましょう。なお、この記事は2011年5月25日版の仕様に基づいています。 video/audioに共通のメソッド、プロパティ video要素とaudio要素は、メソッドやプロパティの多くが共通です。そうしたメソッドやプロパティを表すのが以下の一覧です。 MediaErr

    HTML5のvideo/audio+JavaScript APIテクニック
  • Oracleパフォーマンス障害の克服(3)Bツリーインデックスに最高のパフォーマンスを―@IT

    Oracleデータベースの運用管理者は、突発的に直面するパフォーマンス障害にどうやって対処したらよいか。連載は、非常に複雑なOracleのアーキテクチャに頭を悩ます管理者に向け、短時間で問題を切り分け、対処法を見つけるノウハウを紹介する。対象とするバージョンはOracle8から9iまでを基とし、10gの情報は随時加えていく。(編集局) SQL処理(インデックス)にかかわる確認 前回「ロックをつぶせ!最初に疑うべき原因」では、SQLにかかわる問題の解決方法としてロックの確認方法を説明しました。データ更新には必ずオブジェクトの処理が行われていることを理解できたと思います。 SQL文をきっかけに更新されるOracleサーバ内のオブジェクトとして、今回はインデックスを取り上げます。SQL文発行時、直接データとのかかわりを意識しづらいオブジェクトなので、データの更新頻度やインデックスの作り方によ

    Oracleパフォーマンス障害の克服(3)Bツリーインデックスに最高のパフォーマンスを―@IT
  • @IT:連載:ネットワーク運用管理入門

    連載は「ネットワーク運用管理の基礎」について紹介していきます。読者の皆さんは、「ネットワーク運用管理」と聞くと、多分「あ、あんなことかな?」と、その実作業については何となく理解していることかと思います。この連載では、その「何となく」をもう少し体系立て、まとめることを目的とします。第1回目は、「そもそもネットワークの運用管理作業って何?」というところからの紹介です。 ネットワーク運用管理とは そもそも「運用」とは、「物の機能をうまく生かして用いること」ですので、システムの運用管理業務とはつまり、「対象であるシステムを、効率良く、円滑かつ安全に日々用いることができるようにすること」となります。ネットワーク運用管理にしても、対象をシステム全体からネットワーク部分に限定しただけで、基的な考え方は変わりません。 通常、システム管理からネットワーク運用管理だけが切り分けられ、単独の業務として執り行

    @IT:連載:ネットワーク運用管理入門