JP4591310B2 - 流量制御方法 - Google Patents

流量制御方法 Download PDF

Info

Publication number
JP4591310B2
JP4591310B2 JP2005315623A JP2005315623A JP4591310B2 JP 4591310 B2 JP4591310 B2 JP 4591310B2 JP 2005315623 A JP2005315623 A JP 2005315623A JP 2005315623 A JP2005315623 A JP 2005315623A JP 4591310 B2 JP4591310 B2 JP 4591310B2
Authority
JP
Japan
Prior art keywords
thread
threads
cpu
memory
usage rate
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 - Fee Related
Application number
JP2005315623A
Other languages
English (en)
Other versions
JP2007122527A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005315623A priority Critical patent/JP4591310B2/ja
Publication of JP2007122527A publication Critical patent/JP2007122527A/ja
Application granted granted Critical
Publication of JP4591310B2 publication Critical patent/JP4591310B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、コンピュータシステムにおいて、処理すべき情報処理量を制御する流量制御を行う技術に関する。この中でも特に、複数のコンピュータシステムが連携して所定の処理を実行するものに関する。
コンピュータシステムの情報処理量の制御である流量制御を行う場合、リソース使用率とプロセス/スレッド保留時間を考慮することが行われていた。また、流量制御を行うために、一旦入出力キューに滞留した要求の優先度を、要求元の計算機の状態の変化に応じて変更可能とするものとして、特許文献1がある。特許文献1によれば、入出力キューから要求を取り出す際、要求中に付加された優先度情報だけでなく、要求元で管理している優先度情報も考慮して、処理すべき優先度を判断している。
特開2004−220083号公報
しかし、特許文献1のように、優先度を考慮した制御を実行しても、リソース使用率とプロセス/スレッド保留時間を適切に設計しない場合、システムのスローダウンやシステム処理能力限界まで有効に使えないとの問題が生じてしまう。
しかしながら、複数のシステムと制御対象のシステムが連携している場合、連携先システムの状況(保留時間等)が変動する可能性があり、適切な制御を行うことは困難であった。
そこで、本発明では、定期的に稼動状況の把握を行い、流量制御を再設計して、この結果を反映させるものである。本発明には、CPU使用率/メモリ使用率およびプロセス/スレッド保留時間を検知し,検知された内容に基づいて最適な流量設計を行うことおよび/または設計値への反映を行うことが含まれる。より、詳細には、本発明には以下の態様が含まれる。
連携先システムと連携して所定の情報処理を実行するシステムに対する流量制御方法において、当該システムで理論上起動可能な理論スレッド数を算出し、算出された前記理論スレッド数を記憶し、前記理論スレッド数および前記連携先システムでのシステムリソース使用状況から適切な適切スレッド数を算出し、前記最適スレッド数と予め算出した設計上の起動スレッド数を比較し、前記比較の結果に応じて、当該システムに対するスレッド数を変化させるよう制御する。
さらに、本発明には、以下の態様も含まれる。前記制御は、前記比較の結果、前記最適スレッド数が、前記起動スレッド数に達していない場合、当該システムに対するスレッド数を増加させるよう制御する。また、さらに、前記制御は、前記比較の結果、前記最適スレッド数が、前記起動スレッド数を超えている場合、当該システムに対するスレッド数を減少させるよう制御することを特徴とする流量制御方法。
本発明によれば、連携先システムの動作状況により対応した形で流量制御が可能になる。
以下、本発明の実施の形態を詳細に説明する。
図1は、本発明の全体の処理の流れを表すブロック図であり、図2〜図5は、実際に自動流量制御を行う為の個々の機能のフローチャートであり、図6〜図11は、自動流量制御を行う為に個々の機能で入出力されるデータテーブルであり、図12は自動流量制御を行う装置全体の処理の流れを表した装置図である。
まず、図1の本発明の全体の処理の流れを表すブロック図を説明する。
図1では、大きく4つの機能から構成されており、具体的には、シミュレーション結果格納テーブル算出処理1 100とシミュレーション結果格納テーブル算出処理2 110とリソース監視処理120とスレッド制御処理130から構成される。
シミュレーション結果格納テーブル算出処理1 100は、スレッド基本情報テーブル310とスレッド使用状況管理テーブル330を入力し、理論上起動可能なスレッド数を算出し、算出したスレッド数等をシミュレーション結果格納テーブル1 340に出力する処理である。
シミュレーション結果格納テーブル算出処理2 110は、CPU使用状況管理テーブル300とスレッド基本情報テーブル310とheap使用状況管理テーブル320とスレッド使用状況管理テーブル330とシミュレーション結果格納テーブル1 340を入力し、最新のシステムリソース使用状況(CPU使用率、heap使用率)を考慮して、適切な起動スレッド数を算出し、算出したスレッド数をシミュレーション結果格納テーブル2 350に出力する処理である。
リソース監視処理120は、スレッド基本情報テーブル310とシミュレーション結果格納テーブル2 350を入力し、適切な起動スレッド数と設計上の起動スレッド数を比較して、適切な起動スレッド数と異なる場合にスレッド制御処理130を呼び出した後、起動スレッド数を画面表示部401に出力する処理である。
スレッド制御処理130は、リソース監視処理120から起動され、設計上の起動スレッド数と比較して、適切な起動スレッド数に達していない場合は適切なスレッド数までスレッドを増加し、適切な起動スレッド数を超過している場合は適切なスレッド数までスレッドを減少する処理である。
次に、図1で示される4つの機能の詳細を説明する。
シミュレーション結果格納テーブル算出処理1 100は図2で示されるフローチャートに基づいて処理され、最初にスレッド基本情報テーブル310とスレッド使用状況管理テーブル330を読込む(ステップ200、ステップ201)。
ここで、スレッド基本情報テーブル310は、図7に示すデータテーブルであり、設計上の限界多重度312と平均保留時間311とCPU単価313とMEM単価314がスレッド毎に予め設定されている。スレッド使用状況管理テーブル330は、図9に示すデータテーブルであり、一定時刻毎のスレッドの平均保留時間(過去5分の平均値331、過去10分の平均値332、過去1時間の平均値333及び現在値334)とbusyとなっている(実際に使用されている)スレッド数(過去5分の平均値335、過去10分の平均値336、過去1時間の平均値337及び現在値338)がスレッド毎に記録されていく。
次に、図9に示すスレッド使用状況管理テーブル330の過去5分の平均保留時間331と図7に示すスレッド基本情報テーブル310の平均保留時間311の比率を算出する(ステップ202)。
具体的には、Th−Aスレッドはそれぞれ、1000ms(1:04現在の値)と500msであり、比率は2となる。
補足として、スレッド使用状況管理テーブル330で参照する平均保留時間は、過去10分の平均保留時間332や過去1時間の平均保留時間333あるいはその時点での平均保留時間334でも良い。または、任意の平均保留時間を設定してそれを参照しても良い。
次に、スレッド基本情報テーブル310の限界多重度312とステップ202で算出した値を乗じ、理論上起動可能なスレッド数を求めて、シミュレーション結果格納テーブル1 340の最大使用量341に格納する(ステップ203)。
具体的には、Th−Aスレッドの限界多重度と比率はそれぞれ、10と2であり、理論上起動可能なスレッド数は20となる。
次に、過去5分の平均保留時間331と最大使用量341とスレッド基本情報テーブル310のCPU単価313からCPU使用量を求めて、シミュレーション結果格納テーブル1 340のCPU使用率342に格納する(ステップ204)。
具体的には、Th−Aスレッドの過去5分の平均保留時間と最大使用量とCPU単価はそれぞれ、1000ms、20、30msであり、CPU使用率は60%となる。
次に、最大使用量341とスレッド基本情報テーブル310のMEM単価314と搭載MEM量からheap使用量を求めて、シミュレーション結果格納テーブル1 340のheap使用率343に格納し(ステップ205)、処理を終了する。
具体的には、Th−Aスレッドの最大使用量とMEM単価と搭載MEM量はそれぞれ、20、1000KB、1GB(本明細書では特に明記してないが、ここでは1GBと仮置きする)であり、heap使用率は2%となる。
続いて、シミュレーション結果格納テーブル算出処理2 110は図3で示されるフローチャートに基づいて処理され、最初にCPU使用状況管理テーブル300とスレッド基本情報テーブル310とheap使用状況管理テーブル320とスレッド使用状況管理テーブル330とシミュレーション結果格納テーブル1 340を読込む(ステップ220〜ステップ224)。
ここで、CPU使用状況管理テーブル300は、図6に示すデータテーブルであり、一定時刻毎のCPU使用率が記録されていく(過去5分の平均使用率301、過去10分の平均使用率302、過去1時間の平均使用率303及び現在の使用率304)。heap使用状況管理テーブル320は、図8に示すデータテーブルであり、一定時刻毎のheap使用率321が記録されていく。シミュレーション結果格納テーブル1 340は、図10に示すデータテーブルであり、理論上起動可能なスレッド数(最大使用量341)と消費するCPU使用率(CPU使用率342)と消費するheap使用率(heap使用率343)がスレッド毎に格納され、更に各スレッドの合計CPU使用率344と合計heap使用率345を格納する。
次に、限界多重度312と最大使用量341を比較し(ステップ225)、最大使用量341が限界多重度312と等しい又は大きければ、最大使用量341をシミュレーション結果格納テーブル2 350の最適使用量351に格納し(ステップ226)、処理を終了する。
限界多重度312より小さければ、過去5分のCPU使用率305からスレッド消費分を除いた分(過去5分の平均スレッド数335が消費したCPU使用率)とシミュレーション結果格納テーブル1 340の合計CPU使用率344を足した結果が許容CPU使用率の範囲内となるか比較し(ステップ227)、許容CPU使用率の範囲内であれば、次にheap使用率321とシミュレーション結果格納テーブル1 340の合計heap使用率345を足した結果が許容MEM使用率の範囲内となるか比較し(ステップ228)、許容MEM使用率の範囲内であれば、最大使用量341をシミュレーション結果格納テーブル2 350の最適使用量351に格納し(ステップ226)、処理を終了する。
許容CPU使用率又は許容MEM使用率の範囲内とならない場合は、各スレッドの最大使用量を−1してCPU使用率342とheap使用率343を再計算し(ステップ229)、ステップ227からの処理を繰り返す。
具体的には、Th−Aスレッドの限界多重度と最大使用量はそれぞれ、10、20である為、ステップ227へ進む。ステップ227の過去5分のCPU使用率からスレッド消費分を除いた分と合計CPU使用率344を足した結果と許容CPU使用率はそれぞれ、0%、75%、70%(本明細書では特に明記してないが、ここでは70%と仮置きする)である為、ステップ229へ進む。ステップ229では、各スレッドの最大使用量を−1するが、ここでは便宜上Th−Aスレッドのみ−1することにする。すると、スレッドを−2すれば許容CPU使用率と許容MEM使用率の範囲内となる。よって、ステップ226では、最適使用量が18となる。
補足として、CPU使用状況管理テーブル300で参照する平均CPU使用率は、過去10分の平均使用率302や過去1時間の平均使用率303あるいは現在の使用率304でも良い。または、任意の平均保留時間を設定してそれを参照しても良い。
続いて、リソース監視処理120は図4で示されるフローチャートに基づいて処理され、最初にスレッド基本情報テーブル310とシミュレーション結果格納テーブル2 350を読込む(ステップ240、ステップ241)。
ここで、シミュレーション結果格納テーブル2 350は、図11に示すデータテーブルであり、最新のシステムリソース使用状況(CPU使用率、heap使用率)を考慮した適切な起動スレッド数(最適使用量351)をスレッド毎に格納する。
次に、限界多重度312と最適使用量351を比較し(ステップ242)、一致しなければスレッド制御処理130を起動し(ステップ243)、現在のスレッド数を画面に表示して(ステップ244)、処理を終了する。
具体的には、Th−Aスレッドの限界多重度と最適使用量はそれぞれ、10、18である為、スレッド制御処理を起動する。
最後に、スレッド制御処理130は図5で示されるフローチャートに基づいて処理され、限界多重度312と最適使用量351を比較し(ステップ260)、限界多重度312が最適使用量351より小さい場合は、最適使用量351までスレッドを増加し(ステップ261)、処理を終了する。限界多重度312が最適使用量351より大きい場合は、最適使用量351までスレッドを減少し(ステップ262)、処理を終了する。
具体的には、Th−Aスレッドの限界多重度と最適使用量はそれぞれ、10、18である為、ステップ261へ進み、スレッドを8増加し、最終的なスレッド数は画面表示部401に表示する。
本発明の全体の処理の流れを表すブロック図である。 本発明の一実施例における自動流量制御を行う為の個々の機能のフローチャート(その1)である。 本発明の一実施例における自動流量制御を行う為の個々の機能のフローチャート(その2)である。 本発明の一実施例における自動流量制御を行う為の個々の機能のフローチャート(その3)である。 本発明の一実施例における自動流量制御を行う為の個々の機能のフローチャート(その4)である。 本発明の一実施例における自動流量制御を行う為に個々の機能で入出力されるデータテーブル(その1)である。 本発明の一実施例における自動流量制御を行う為に個々の機能で入出力されるデータテーブル(その2)である。 本発明の一実施例における自動流量制御を行う為に個々の機能で入出力されるデータテーブル(その3)である。 本発明の一実施例における自動流量制御を行う為に個々の機能で入出力されるデータテーブル(その4)である。 本発明の一実施例における自動流量制御を行う為に個々の機能で入出力されるデータテーブル(その5)である。 本発明の一実施例における自動流量制御を行う為に個々の機能で入出力されるデータテーブル(その5)である。 本発明の一実施例における自動流量制御を行う装置全体の処理の流れを表した装置図である。
符号の説明
100…シミュレーション結果格納テーブル1算出処理、110…シミュレーション結果格納テーブル2算出処理、120…リソース監視処理、130…スレッド制御処理

Claims (3)

  1. 連携先システムと連携して所定の情報処理を実行するシステムにおける流量制御方法において、
    当該システムが、
    複数のスレッドの種類毎に、前記システムが動作中に一定時刻毎のbusy状態にある平均スレッド数と当該スレッドの処理時間である第一の平均保留時間を格納するスレッド使用状況管理テーブルを記憶し、
    複数のスレッドの種類毎に、前記システムの限界起動スレッド数と、前記限界起動スレッド数を処理するのにかかる第二の平均保留時間と、1スレッドあたりの処理に使用されるCPUの処理時間であるCPU単位時間と1スレッドあたりの処理に使用されるメモリの容量であるメモリ単位容量からなるスレッドの基本情報を含むスレッド基本情報管理テーブルを記憶し、
    スレッドの処理とそれ以外の処理とを含む処理全体での、前記システムが動作中に使用されるCPU使用率を検知して、CPU使用状況管理テーブルを記憶し、
    スレッド処理とそれ以外の処理とを含む処理全体での、前記システムが動作中に使用されるメモリ使用容量を検知して、メモリ使用状況管理テーブルを記憶し、
    複数のスレッドの種類毎に、前記第一の平均保留時間を前記第二の平均保留時間で割った値に前記限界起動スレッド数を掛けたものを理論上最大限に起動可能な理論スレッド数としてそれぞれ算出し、算出された前記理論スレッド数を記憶し、
    複数のスレッドの種類毎に、それぞれの前記理論スレッド数で前記システムが動作した場合のスレッドCPU使用率を、前記CPU単位時間の前記第一の平均保留時間に対するパーセンテージと前記それぞれの理論スレッド数の積でそれぞれ算出し、
    複数のスレッドの種類毎に、前記それぞれの理論スレッド数で前記システムが動作した場合のスレッドメモリ使用率を、前記メモリ単位容量の前記システムの持つメモリ総量に対するパーセンテージと前記それぞれの理論スレッド数の積でそれぞれ算出し、
    複数のスレッドの種類毎に算出された前記スレッドCPU使用率の総和と、前記CPU使用率から、複数のスレッドの種類毎の前記平均スレッド数と前記CPU単位時間の前記第一の平均保留時間に対するパーセンテージとの積である実行CPU使用率の総和を引いたものとを足し合わせたCPU実行スレッド値を算出し、
    複数のスレッドの種類毎に算出された前記スレッドメモリ使用率の総和と、前記メモリ使用率から、複数のスレッドの種類毎の前記平均スレッド数と前記メモリ単位容量の前記システムの持つメモリ総量に対するパーセンテージとの積である実行メモリ使用率の総和を引いたものとを足し合わせたメモリ実行スレッド値を算出し、
    前記CPU実行スレッド値が予めユーザによって決められた許容CPU使用率より大きいかもしくは、前記メモリ実行スレッド値が予めユーザによって決められた許容メモリ使用率より大きい場合、複数のスレッドの種類毎の前記理論スレッド数をそれぞれ一つ減らした理論スレッド数を用いて前記CPU実行スレッド値と前記メモリ実行スレッド値を算出し、
    前記CPU実行スレッド値が前記許容CPU使用率より小さくかつ、前記メモリ実行スレッド値が前記許容メモリ使用率より小さくなるまで計算を繰り返し、その場合の理論スレッド数を最適スレッド数として記憶し、
    前記最適スレッド数と前記限界起動スレッド数を比較し、
    前記比較の結果に応じて、当該システム上の現状の起動スレッド数を変化させるよう制御することを特徴とする流量制御方法。
  2. 請求項1に記載の流量制御方法において、
    前記制御は、前記比較の結果、前記最適スレッド数が、前記限界起動スレッド数に達していない場合、当該システム上の現状の起動スレッド数を減少させるよう制御することを特徴とする流量制御方法。
  3. 請求項1または2のいずれかに記載の流量制御方法において、
    前記制御は、前記比較の結果、前記最適スレッド数が、前記限界起動スレッド数を超えている場合、当該システム上の現状の起動スレッド数を増加させるよう制御することを特徴とする流量制御方法。
JP2005315623A 2005-10-31 2005-10-31 流量制御方法 Expired - Fee Related JP4591310B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005315623A JP4591310B2 (ja) 2005-10-31 2005-10-31 流量制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005315623A JP4591310B2 (ja) 2005-10-31 2005-10-31 流量制御方法

Publications (2)

Publication Number Publication Date
JP2007122527A JP2007122527A (ja) 2007-05-17
JP4591310B2 true JP4591310B2 (ja) 2010-12-01

Family

ID=38146290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005315623A Expired - Fee Related JP4591310B2 (ja) 2005-10-31 2005-10-31 流量制御方法

Country Status (1)

Country Link
JP (1) JP4591310B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5455111B2 (ja) * 2009-03-26 2014-03-26 日本ユニシス株式会社 流量制御装置および流量制御方法
JP6070078B2 (ja) * 2012-11-01 2017-02-01 日本電気株式会社 ハイブリッド並列処理システム、ハイブリッド並列処理方法およびコンピュータプログラム
CN110018781B (zh) * 2018-01-09 2022-06-21 阿里巴巴集团控股有限公司 磁盘流控方法、装置以及电子设备
US10725817B2 (en) * 2018-11-09 2020-07-28 International Business Machines Corporation Reducing spin count in work-stealing for copying garbage collection based on average object references
JP7353836B2 (ja) * 2019-07-16 2023-10-02 キヤノン株式会社 情報処理装置、方法およびプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000299712A (ja) * 1999-04-12 2000-10-24 Mitsubishi Electric Corp データ配信システム、送信制御機器および受信制御機器
JP2002318698A (ja) * 2001-04-23 2002-10-31 Hitachi Ltd プロセス制御装置および制御方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62290244A (ja) * 1986-06-10 1987-12-17 Canon Inc 通信制御装置
JP2508589B2 (ja) * 1993-05-25 1996-06-19 日本電気株式会社 サ―バ運用方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000299712A (ja) * 1999-04-12 2000-10-24 Mitsubishi Electric Corp データ配信システム、送信制御機器および受信制御機器
JP2002318698A (ja) * 2001-04-23 2002-10-31 Hitachi Ltd プロセス制御装置および制御方法

Also Published As

Publication number Publication date
JP2007122527A (ja) 2007-05-17

Similar Documents

Publication Publication Date Title
CN113238838B (zh) 一种任务调度方法、装置及计算机可读存储介质
JP4847408B2 (ja) プロセッサシステムにおける動的電力管理の方法および装置
JP4591310B2 (ja) 流量制御方法
US8209552B2 (en) Method and device for controlling multicore processor
CN101482804B (zh) 具有多图形控制器的数据处理单元和使用其处理数据的方法
US20070169125A1 (en) Task scheduling policy for limited memory systems
CN110196766B (zh) 任务调度和处理方法及装置、存储介质和处理器
US8418188B2 (en) Task execution controller and recording medium on which task execution control program is recorded
US10089266B2 (en) Power saving feature for storage subsystems
EP2551767B1 (en) Method and device for adjusting clock interrupt cycle
EP3376381A1 (en) Resource management method and system, and computer storage medium
CN101625650B (zh) 具有包括多个内核的处理器的计算机系统及其控制方法
JP3828112B2 (ja) 処理の実行を制御するスケジューリング方法およびシステム
JP2004118833A (ja) メモリ・コントローラの最適化方法
CN114490123A (zh) 一种任务处理方法、装置及电子设备和存储介质
CN105183398B (zh) 一种存储设备、电子设备及数据处理方法
JP5958395B2 (ja) コンピュータシステム
JP6796478B2 (ja) メモリ制御装置
CN113608885B (zh) 一种客户端请求处理方法、装置、设备及存储介质
CN116680051B (zh) 任务调度方法、装置、设备及存储介质
CN113515186A (zh) 一种计算机电源管理方法、系统
CN113742047A (zh) 基于资源消耗预测的批量任务调度方法及装置
WO2006016283A2 (en) Task scheduling using context switch overhead table
CN115237563A (zh) 基于消息队列的作业调度方法及系统
CN115495211A (zh) 锁等待队列排序的方法、装置以及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100728

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: 20100817

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100830

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

Free format text: PAYMENT UNTIL: 20130924

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130924

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees