JP3590357B2 - Httpサーバ性能データ収集方法及びそのシステム - Google Patents

Httpサーバ性能データ収集方法及びそのシステム Download PDF

Info

Publication number
JP3590357B2
JP3590357B2 JP2001083209A JP2001083209A JP3590357B2 JP 3590357 B2 JP3590357 B2 JP 3590357B2 JP 2001083209 A JP2001083209 A JP 2001083209A JP 2001083209 A JP2001083209 A JP 2001083209A JP 3590357 B2 JP3590357 B2 JP 3590357B2
Authority
JP
Japan
Prior art keywords
time
time data
http server
processing
server software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2001083209A
Other languages
English (en)
Other versions
JP2002278805A (ja
Inventor
博樹 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2001083209A priority Critical patent/JP3590357B2/ja
Publication of JP2002278805A publication Critical patent/JP2002278805A/ja
Application granted granted Critical
Publication of JP3590357B2 publication Critical patent/JP3590357B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、WWW(World Wide Web)技術に関わり、特にHTTPサーバソフトウェアの性能データを収集する技術に関する。
【0002】
【従来の技術】
近年、インターネット上での電子商取引サービスや情報配信サービス等の各種の情報通信サービス、イントラネットでの社内システム等の分野を中心として、HTTP(HyperText Transfer Protocol)(例えば、HyperText Transfer Protocol,http://www.w3.org/Protocols/参照)に則ったHTTPリクエストを受けて処理を実行し、要求されたデータを含むHTTPリプライを返すHTTPサーバソフトウェア(以下、単にHTTPサーバ)を導入して、情報提供やビジネストランザクション処理を行うことが一般化している。
【0003】
図1はHTTPサーバにおける基本的な動作を示すもので、WebブラウザやJavaアプリケーション等のHTTPクライアントソフトウェア(以下、単にHTTPクライアント)1からHTTPリクエスト2を受けたHTTPサーバ3は、HTTPリクエストヘッダ解析、ユーザIDの検査、アクセス権確認、ハンドラ(CGIやServletの起動等)、ログ記録等の処理を順次実行し、要求されたデータを含むHTTPリプライ4をHTTPクライアント1へ返す。
【0004】
図1に示すように、HTTPリクエストヘッダ解析、ユーザIDの検査、アクセス権確認、ハンドラ、ログ記録等のそれぞれの処理は、HTTPサーバ3内の処理部(処理ソフトウェア)5−1,5−2,……5−nで実行される。ほとんどのHTTPサーバでは、1つもしくは2つ以上のHTTPクライアントから同時に複数のHTTPリクエストを受け付けた時、プロセスやスレッドの新規起動、スレッドプーリング等の方法を用いることで、それらの複数のHTTPリクエストに応じた同一あるいは異なる内容の処理を複数並行して実行することが可能である。
【0005】
HTTPサーバの中には、処理を実行する間に、該HTTPサーバ自体には含まれない、ソフトウェア開発者が作成した機能(関数)6−1,6−2,……6−nを少なくとも2回、ここではn回呼び出す(7−1,7−2,……7−n)仕組みを備えているものがある。
【0006】
例えば、Apache(Apache、Apache Software Foundation.,http://httd.apache.org参照)のHTTPサーバでは、ソフトウェア開発者が作成した機能を拡張モジュール等の形でHTTPサーバに予め登録しておくことにより、HTTPサーバがHTTPリクエストを受けた後にHTTPヘッダ解析、ユーザIDの検査、アクセス権確認、ハンドラ、ログ記録等の処理を順次実行する段階で、ソフトウェア開発者が作成した機能を呼び出して実行することが可能となっている。この各段階の処理で呼び出される機能は、同一でも、個々に異なっていても良い。
【0007】
このHTTPサーバが、ソフトウェア開発者が作成した機能を呼び出すことを実現する仕組みは、HTTPサーバが処理を実行する間に、ソフトウェア開発者の意図する任意の処理を実行させることを目的に設けられている。
【0008】
なお、通常、前述したHTTPクライアント1はユーザ端末等のクライアントコンピュータ上で動作し、HTTPサーバ3及び機能6−1〜6−nはネットワーク内のサーバコンピュータ上で動作するが、これに限定されるものではない。
【0009】
【発明が解決しようとする課題】
HTTPサーバがHTTPリクエストを受けて、例えばHTTPヘッダ解析、ユーザIDの検査、アクセス権確認、ハンドラ、ログ記録等の処理を順次実行する時に、それらのうちの任意の一つ以上の処理の実行に要した時間のデータを収集して蓄積することができれば、HTTPサーバの運用管理者は、HTTPサーバのクラスタリングやマシンの更改等の必要性を判断して、HTTPサーバが異常を来さないよう対処手段をとることができる。
【0010】
従って、HTTPサーバの運用管理者がHTTPサーバの実行する処理の部分の処理時間を知ることができるよう、その処理時間データを収集して蓄積する仕組みが望まれている。
【0011】
本発明の目的は、HTTPサーバがHTTPヘッダ解析、ユーザIDの検査、アクセス権確認、ハンドラ、ログ記録等の処理を順次実行する時に、それらの一つ以上の処理の処理時間を知ることができるよう、その処理時間データを収集して蓄積する機構を実現することにある。
【0012】
【課題を解決するための手段】
図2は本発明の実施の形態の一例を示すシステム構成図であって、本発明のシステムは、処理時間計算部11と、処理時間データ格納部12とからなる。なお、処理時間計算部11はHTTPサーバソフトウェア自体に含まれない、ソフトウェア開発者が作成した外部の機能として、例えばネットワーク内のサーバコンピュータ上に設けられ、また、処理時間データ格納部12もネットワーク内のサーバコンピュータ上に設けられるが、これに限定されるものではない。
【0013】
(1)処理時間計算部11
処理時間計算部11は、HTTPサーバ3がHTTPリクエスト2を受け、HTTPサーバ3内で処理部5−1〜5−nによりHTTPヘッダ解析、ユーザIDの検査、アクセス権確認、ハンドラ、ログ記録等の処理が順次実行される間に、外部の機能としてHTTPサーバ3から少なくとも2回、ここではn回呼び出される(7−1〜7−n)。
【0014】
処理時間計算部11は、HTTPサーバ3から呼び出される度に、当時点での時刻を取得する。処理時間計算部11がHTTPサーバ3から少なくとも2回呼び出された結果として取得された少なくとも2つの時刻データの中で、処理時間計算部11は、時刻的に隣接する2つの時刻の差をHTTPサーバ3での特定の処理に要した処理時間として算出する。また、算出された処理時間データは、処理時間データ格納部12に送られる。
【0015】
ここで、HTTPサーバ3が処理を複数並行して実行する場合、HTTPサーバ3から呼び出された処理時間計算部11が時刻を取得する時、その時刻がHTTPサーバ3が実行しているどの処理に関わるものなのかを識別できるようにする必要がある。このため、処理時間計算部11は、必要に応じて、HTTPサーバ3が実行する個々の処理を識別するための処理IDを生成し、取得した時刻データにその処理IDを対応付ける形で、自らの保持する処理ID−時刻対応テーブル13に保持する。
【0016】
(2)処理時間データ格納部
処理時間データ格納部12は、処理時間計算部11から、HTTPサーバ3での特定の処理に要した処理時間データを受信し、これを蓄積する。
【0017】
以上の構成により、[0011]で述べた目的を実現する。
【0018】
【発明の実施の形態】
図3及び図4は本発明の実施の形態の一例を示す処理のフローチャートである。以下、図2、図3及び図4を用いて本発明の実施の形態について説明する。
【0019】
HTTPサーバ3を動作させるにあたり、まず、HTTPサーバ3があるHTTPリクエスト2を受けて処理を実行する時にソフトウェア開発者が作成した機能を少なくとも2回呼び出すよう、予めHTTPサーバ3を設定しておく。その後、HTTPクライアント1からのHTTPリクエスト2を受信して処理できるようにHTTPサーバ3を起動しておく。
【0020】
HTTPサーバ3がHTTPリクエスト2を受けた(s1)後、HTTPサーバ3に含まれる処理部5−1〜5−nは各々、HTTPヘッダ解析、ユーザIDの検査、アクセス権確認、ハンドラ、ログ記録等のいずれかの処理を実行する。また、個々の処理部5−1〜5−nはその実行の間に、処理時間計算部11を外部の機能として呼び出す(7−1〜7−n)(s2)。
【0021】
処理時間計算部11がHTTPサーバ3から呼び出された時、処理時間計算部11は、まず、その時点での時刻データ(時刻データA)を取得する(s3)。
【0022】
次に、処理時間計算部11は、HTTPサーバ3からの呼び出し時に渡された入力引数あるいは入出力引数に時刻データもしくは処理IDデータが含まれているかどうかを確認する(s4,s5)。この入力引数あるいは入出力引数に時刻データもしくは処理IDが含まれているかどうかにより、処理時間計算部11は、以下の(a)(b)(c)のいずれかを実行する。
【0023】
(a)入力引数あるいは入出力引数に時刻データも処理IDデータも含まれていない場合
処理時間計算部11は、自身がHTTPサーバ3の実行する個々の処理を識別するために処理IDデータを用いるかどうか(s6)により、以下の(a−1)(a−2)のいずれかを実行する。
【0024】
(a−1)処理IDデータを用いない場合
HTTPサーバ3から呼び出された時の出力変数あるいは入出力変数に時刻データAを書き込み、出力変数あるいは入出力変数に含めた形で時刻データAをHTTPサーバ3へ渡す(s7)。
【0025】
(a−2)処理IDデータを用いる場合
HTTPサーバ3が実行する個々の処理を識別するための処理IDを生成し、時刻データAとその処理IDの対応付けのデータを処理ID−時刻対応テーブル13に記録する(s8)。さらに、必要に応じて、HTTPサーバ3から呼び出された時の出力変数あるいは入出力変数にその処理IDを書き込み、出力変数あるいは入出力変数に含めた形でその処理IDをHTTP3サーバへ渡す(s8)。
【0026】
(b)入力引数あるいは入出力引数に処理IDデータが含まれている場合(処理IDデータを用いる場合)
処理時間計算部11は、処理ID−時刻対応テーブル13から、入力引数あるいは入出力引数に含まれる処理IDデータに対応する時刻データ(時刻データB)を調べ出し、時刻データAと時刻データBの時刻差を、それをHTTPサーバ3での特定の処理に要した処理時間のデータとして算出する。その後、処理時間計算部11は、処理時間データ格納部12を呼び出して(14)その算出した処理時間データを処理時間データ格納部12へ送り(s9)、処理時間データ格納部12では受け取った処理時間データを蓄積する(s10)。
【0027】
この時、処理時間計算部11は、処理ID−時刻対応テーブル13に記録されている時刻データBとその処理IDの対応付けのデータを消去し、新たに、時刻データAとその処理IDを対応付けのデータを処理ID−時刻対応テーブル13に記録する。さらに、処理時間計算部11は、必要に応じて、HTTPサーバ3から呼び出された時の出力変数あるいは入出力変数にその処理IDを書き込み、出力変数あるいは入出力変数に含めた形でその処理IDをHTTPサーバ3へ渡す(s9)。
【0028】
(c)その入力引数あるいは入出力引数に時刻データが含まれている場合(処理IDデータを用いない場合)
処理時間計算部11は、入力引数あるいは入出力引数に含まれる時刻データ(時刻データC)を調べ出し、時刻データAと時刻データCの時刻差を、それをHTTPサーバ3での特定の処理に要した処理時間のデータとして算出する。その後、処理時間計算部11は、処理時間データ格納部12を呼び出して(14)その算出された処理時間データを処理時間データ格納部12へ送り(s11)、処理時間データ格納部12では受け取った処理時間データを蓄積する(s12)。
【0029】
その後、処理時間計算部11は、HTTPサーバ3から呼び出された時の出力変数あるいは入出力変数に時刻データAを書き込み、出力変数あるいは入出力変数に含めた形で時刻データAをHTTPサーバ3へ渡す(s13)。
【0030】
以上、処理時間計算部11がHTTPサーバ3から呼び出される度に、上記s2〜s13の処理を実行する。
【0031】
【発明の効果】
以上説明したように、本発明によれば、HTTPサーバが1つもしくは2つ以上のHTTPクライアントから同時に複数のHTTPリクエストを受け付け、それらの個々のHTTPリクエストに対応して、HTTPヘッダ解析、ユーザIDの検査、アクセス権確認、ハンドラ、ログ記録等の処理を順次実行する時に、それら個々の処理毎の処理時間データを収集して蓄積することが可能となる。
【図面の簡単な説明】
【図1】HTTPサーバにおける基本的な動作を示す構成図
【図2】本発明の実施の形態の一例を示すシステム構成図
【図3】本発明の実施の形態の一例を示す処理のフローチャート
【図4】本発明の実施の形態の一例を示す処理のフローチャート
【符号の説明】
1:HTTPクライアント、2:HTTPリクエスト、3:HTTPサーバ、4:HTTPリプライ、5−1〜5−n:処理部、6−1〜6−n:ソフトウェア開発者が作成した機能、7−1〜7−n:外部の機能の呼び出し、11:処理時間計算部、12:処理時間データ格納部、13:処理ID−時刻対応テーブル、14:処理時間データを渡すための呼び出し。

Claims (2)

  1. HTTPクライアントソフトウェアからHTTPに則ったリクエストを受けて処理を実行し、要求されたデータを含むリプライをHTTPクライアントソフトウェアに返すHTTPサーバソフトウェアであって、前記処理を実行する間に該HTTPサーバソフトウェア自体に含まれない、ソフトウェア開発者が作成した外部の機能を少なくとも2回呼び出す仕組みを備えたHTTPサーバソフトウェアの性能データを収集する方法であって、
    前記外部の機能を実現するために、HTTPサーバソフトウェアから呼び出される度にその時点の時刻のデータを取得し、該取得した複数の時刻データ中、時刻的に隣接した2つの時刻データの差を算出する処理時間計算部と、前記時刻データの差をHTTPサーバソフトウェアでの特定の処理に要した処理時間データとして蓄積する処理時間データ格納部とが設けられたHTTPサーバ性能データ収集システムにおける、前記処理時間計算部は、
    HTTPサーバソフトウェアから呼び出された時に渡された入力引数あるいは入出力引数に処理ID及び時刻データのいずれも含まれていなければ、その出力変数あるいは入出力変数にその時点の時刻データもしくはその時点の時刻データに対応付けてテーブルに記録した処理IDを含めてHTTPサーバソフトウェアへ渡し、
    また、前記処理時間計算部は、HTTPサーバソフトウェアから呼び出された時に渡された入力引数あるいは入出力引数に処理IDが含まれていれば、当該処理IDに対応する時刻データを前記テーブルから調べ出し、該時刻データとその時点の時刻データとの差を前記HTTPサーバソフトウェアでの特定の処理に要した処理時間データとし、テーブルから前記処理IDとこれに対応付けられた時刻データのデータを消去するとともにその時点の時刻データを前記処理IDに対応付けてテーブルに記録し、さらに当該処理IDを出力変数あるいは入出力変数に含めてHTTPサーバソフトウェアへ渡し、
    また、前記処理時間計算部は、HTTPサーバソフトウェアから呼び出された時に渡された入力引数あるいは入出力引数に時刻データが含まれていれば、当該時刻データとその時点の時刻データとの差を前記HTTPサーバソフトウェアでの特定の処理に要した処理時間データとし、さらにその時点の時刻データを出力変数あるいは入出力変数に含めてHTTPサーバソフトウェアへ渡す
    ことを特徴とするHTTPサーバ性能データ収集方法。
  2. HTTPクライアントソフトウェアからHTTPに則ったリクエストを受けて処理を実行し、要求されたデータを含むリプライをHTTPクライアントソフトウェアに返すHTTPサーバソフトウェアであって、前記処理を実行する間に該HTTPサーバソフトウェア自体に含まれない、ソフトウェア開発者が作成した外部の機能を少なくとも2回呼び出す仕組みを備えたHTTPサーバソフトウェアの性能データを収集するシステムにおいて、
    前記外部の機能を実現するために、HTTPサーバソフトウェアから呼び出される度にその時点の時刻のデータを取得し、該取得した複数の時刻データ中、時刻的に隣接した2つの時刻データの差を算出する処理時間計算部を設けるとともに、
    前記時刻データの差をHTTPサーバソフトウェアでの特定の処理に要した処理時間データとして蓄積する処理時間データ格納部を設け、
    前記処理時間計算部は、
    HTTPサーバソフトウェアから呼び出された時に渡された入力引数あるいは入出力引数に処理ID及び時刻データのいずれも含まれていなければ、その出力変数あるいは入出力変数にその時点の時刻データもしくはその時点の時刻データに対応付けてテーブルに記録した処理IDを含めてHTTPサーバソフトウェアへ渡し、
    また、HTTPサーバソフトウェアから呼び出された時に渡された入力引数あるいは入出力引数に処理IDが含まれていれば、当該処理IDに対応する時刻データを前記テーブルから調べ出し、該時刻データとその時点の時刻データとの差を前記HTTPサーバソフトウェアでの特定の処理に要した処理時間データとし、テーブルから前記処理IDとこれに対応付けられた時刻データのデータを消去するとともにその時点の時刻データを前記処理IDに対応付けてテーブルに記録し、さらに当該処理IDを出力変数あるいは入出力変数に含めてHTTPサーバソフトウェアへ渡し、
    また、HTTPサーバソフトウェアから呼び出された時に渡された入力引数あるいは入出力引数に時刻データが含まれていれば、当該時刻データとその時点の時刻データとの差を前記HTTPサーバソフトウェアでの特定の処理に要した処理時間データとし、さらにその時点の時刻データを出力変数あるいは入出力変数に含めてHTTPサーバソフトウェアへ渡すように構成されている
    ことを特徴とするHTTPサーバ性能データ収集システム。
JP2001083209A 2001-03-22 2001-03-22 Httpサーバ性能データ収集方法及びそのシステム Expired - Lifetime JP3590357B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001083209A JP3590357B2 (ja) 2001-03-22 2001-03-22 Httpサーバ性能データ収集方法及びそのシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001083209A JP3590357B2 (ja) 2001-03-22 2001-03-22 Httpサーバ性能データ収集方法及びそのシステム

Publications (2)

Publication Number Publication Date
JP2002278805A JP2002278805A (ja) 2002-09-27
JP3590357B2 true JP3590357B2 (ja) 2004-11-17

Family

ID=18939056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001083209A Expired - Lifetime JP3590357B2 (ja) 2001-03-22 2001-03-22 Httpサーバ性能データ収集方法及びそのシステム

Country Status (1)

Country Link
JP (1) JP3590357B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5673391B2 (ja) * 2011-06-28 2015-02-18 富士通株式会社 情報処理装置、ログ処理方法、及びプログラム

Also Published As

Publication number Publication date
JP2002278805A (ja) 2002-09-27

Similar Documents

Publication Publication Date Title
US10999384B2 (en) Method and system for identifying website visitors
US7873594B2 (en) System analysis program, system analysis method, and system analysis apparatus
JP4900982B2 (ja) サーバ・クラスタにおいてフェイルオーバを管理するための方法、フェイルオーバ・サーバ及びコンピュータ・プログラム
US7136881B2 (en) Method and system for processing directory events
US20050021736A1 (en) Method and system for monitoring performance of distributed applications
US6910077B2 (en) System and method for identifying cloaked web servers
JP5035068B2 (ja) サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法
US20080281870A1 (en) Method, Apparatus, and System for Capturing Data Exchanged Between a Server and a User
US20070294224A1 (en) Tracking discrete elements of distributed transactions
JP2005539298A (ja) サーバを遠隔かつ動的に構成する方法およびシステム
JP2010128877A (ja) ウェブシステムおよび処理記録収集方法
JP2008507010A (ja) ステートレス通信プロトコルにおけるサーバ状態推測
US8141151B2 (en) Non-intrusive monitoring of services in a service-oriented architecture
US20110258315A1 (en) Network analysis system and method utilizing collected metadata
CN112035317A (zh) 一种微服务链路监控方法、装置、设备及介质
WO2007108000A2 (en) Method and system for distributing processing of computerized tasks
JP2010541030A (ja) サービスレベル目標を有するコンピュータネットワークリソースの監視
US7289989B2 (en) Pattern based web services
US20110246541A1 (en) Data management apparatus and method
JP2008203939A (ja) ログ管理装置、ログ管理方法、プログラム、及び記録媒体
EP1850282A1 (en) Method and system for generating and employing a web services client extensions model
JP3590357B2 (ja) Httpサーバ性能データ収集方法及びそのシステム
US7346647B2 (en) System and method for interfacing with existing system management products or software solutions
CN116150513A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CA2474735C (en) Method, apparatus, and system for capturing, processing, and/or playing selected data exchanged between a server and a user

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20031203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040702

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040817

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040819

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3590357

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080827

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080827

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090827

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090827

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100827

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100827

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110827

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120827

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130827

Year of fee payment: 9

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term