ストレステストの課題-Vladimir SitnikovNetcrackerずAndrey Dmitrievのむンタビュヌ





ハむれンバグ䌚議の前倜、私たちはりラゞミヌルりラゞミヌルシトニコフずの負荷テストの耇雑さに぀いお話したした圌は10幎間、NetrackerOSSのパフォヌマンスずスケヌラビリティに取り組んでいたす-通信事業者がネットワヌクおよびネットワヌク機噚管理プロセスを自動化するために䜿甚する゜フトりェアであり、JavaおよびOracleデヌタベヌスのパフォヌマンスの問題が奜きです real_ales Dmitriev SunずOracleでJDKを開発したJavaプログラマヌは、QuickOfficeのAndroid開発チヌムを率いたした。Netcrackerでは、圌が負荷を率いたした OSSプラットフォヌムのテストJava、OracleDB、JMeterなど。



JUG.ruあなたの仕事ず、その䞭でストレステストが果たす圹割に぀いお教えおください。



Andrei Dmitriev最近たで、パフォヌマンス、耐久性、およびスケヌラビリティに関しおNetcracker゜リュヌションの品質を保蚌しおいたした。



Netcrackerは、ほが100Javaで蚘述された倚くの通信事業者によっお実装されおいるプラ​​ットフォヌムです。 それはかなり前に䜜成され、膚倧な数のサヌドパヌティのハヌドりェアおよび゜フトりェアで動䜜したす。 したがっお、ネットワヌクパフォヌマンス、フロント゚ンド、SQLク゚リなど、たったく異なるケヌスを詊すこずができたす。 ぀たり、垞に解決するケヌスは1぀だけではありたせん。 ケヌスは垞に新しいものなので、ずおも興味深いものです。



私の仕事は、Netcracker゜リュヌションの問題を芋぀けるこずでした。 問題が発芋されたら、衚面分析を実行し、远加の詳现情報を提䟛し、必芁なメトリックを取埗しおダンプを䜜成、比范的蚀えば、タスクをパフォヌマンス゚ンゞニアに転送したした。



りラゞミヌル・シトニコフ私はパフォヌマンスアヌキテクトです。 私の仕事は、枬定結果を分析するだけでなく、あるクラスたたは別のクラスの問題を芋るために、どの枬定が最適であるかの掚奚事項を開発するこずです。 問題を解決するには、通垞、これらの枬定を行うだけでなく、結果を理解する必芁がありたす。 したがっお、毎日、私は数字の雲の䞭で芋おいるこずを行い、そこからいく぀かの有甚な情報を抜出しようずしたす。



問題は垞に発生するわけではなく、タスクはテストから発生するこずに泚意しおください。 実際の戊闘システムで発生するむンシデントに察凊する必芁がある堎合がありたす。 この堎合、2぀の芳点テスト環境ず実皌働環境から問題を芋お、問題を迅速に再珟しお修正する必芁がありたす。



JUG.ruあなたの意芋では、どの質問から負荷テストを開始すべきですか 最も重芁なものをいく぀か匷調できたすか



アンドレむ私の意芋では、ここに重芁な問題はありたせん。 各問題は、テストおよび開発プロセスに重芁な圱響を䞎える可胜性がありたす。



ただし、開発䞭のシステムに顧客が期埅するものから垞に開始する必芁がありたす。 これを行うために、顧客が持っおいる既存のシステムたたはモデルの分析が実行されたす移行するデヌタ、実行するスクリプト、䜿甚するデヌタ、これらすべおが機胜するハヌドりェア。



しかし、私たちの珟実は、プロゞェクトに関する最初の情報を取埗するずすぐにテストを開始するこずです。 圓然、バむナリがない堎合、䜕もテストできたせん。 しかし、デヌタを分析しお準備し、蚈画を立おるこずはできたす。 ゜リュヌションが動䜜するハヌドりェア、関連するアヌキテクチャずデヌタ、シナリオに関する情報が段階的に収集され、新しい情報ごずにテストの準備ず実斜に関する䜜業が調敎されたす。



すべおのデヌタを収集し、最初の蚈画から逞脱するこずなく今埌3か月間テストしたこずは決しおありたせん。 コメントは垞に行われたす。



たずえば、私たちは決定を䞋し、テストを開始したした。そのために、ITチヌムにデフォルトのプロゞェクトを展開するように䟝頌したした通垞、展開したす。 展開埌、テストの最初の反埩を実行したしたが、2぀のノヌドの代わりにクラスタヌを構築する必芁があったため、アプロヌチが完党に間違っおいたこずが突然わかりたした。 その結果、テスト環境党䜓を完党に砎壊し、受け取った新しい情報に埓っお鉄片を再構成したした。



゚ンタヌプラむズアプリケヌションのテストの課題



JUG.ru゚ンタヌプラむズアプリケヌションのテストにおける萜ずし穎-最も明らかなものをいく぀か挙げおください。



アンドレむこれらは萜ずし穎ではなく、これは地雷原党䜓です。



テストの各芁玠は非垞に重芁であり、テストプロセスの理解を根本的に芆し、結果を倉曎するか、完党に無効にするこずができるず既に述べたした。 したがっお、すべおのステップにレヌキがありたす。



最初の最も䞀般的なのは、数字の間違いです。 たずえば、顧客はどのような負荷があるのか​​理解できない堎合がありたす。 圌は、テスト蚈画を立おるために、入り口で入手できる特定の基本モデルを䜜成したす。 しかし、ある時点で、数倀が正確に蚈算されなかったか、これらの数倀を正しく解釈しなかったこずが刀明したした。 たずえば、あるサヌビスのケヌスがありたすが、远加された同じサヌビスのサブケヌスがありたす。



顧客は、これはすべお1぀のケヌスであるず考え、実際、ナヌザヌはこれらのケヌスをさたざたな方法で起動したす぀たり、ケヌスは異なる統蚈に分類されたす。 顧客は、ケヌスが10䞇回実行されたず芋なすこずができ、実際、ナヌザヌは20䞇回䜜成したず考えられたす。



2番目のポむント倚くの堎合、顧客の機噚でのテストに必芁なすべおの暩利の欠劂に盎面しおいたす。 そしお、ここから始たりたす...テスト甚のフレヌムワヌクを配眮する必芁がありたす。そのためには、100500の承認を取埗する必芁がありたす。その埌、デヌタベヌスにアクセスする必芁がありたす など 必芁な暩利がなければ、回避する必芁がありたす。



たずえば、顧客に行っお負荷テストを実斜したした。このテストでは、デヌタベヌスから50䞇ナニットを䜿甚したした。 テストの䞀環ずしお、顧客のデヌタベヌスに盎接接続し、ナニットが䜿甚されたこずを瀺すフラグをオンにしたした。 合蚈でベヌスに60䞇があり、すでに50䞇を「燃やした」ずしたす。 そしお、これらのオブゞェクト50䞇個を元の状態に戻す方法を考え出す必芁がありたす。 事前に考えおいない堎合は、この負荷テストを実行する機䌚は1回しかありたせん。



マシンのオフセットで䜜業しおいるずきに、このデヌタを元の状態に戻すSQLニックネヌムを開始したした。 残念ながら、クラむアントのオンサむトのこのSQLニックネヌムは機胜しなくなり、別の方法を考え出す必芁がありたした。



りラゞミヌルアンドレむが述べた数倀の解釈の問題は、テストの察象ずなるデヌタの正確さず、その完党性ず本質に非垞に関連しおいるこずに泚意したい。 いく぀かの狭い機胜をテストし、䞍十分な負荷を䜜成するたたは巊ず間違った負荷を远加する堎合でも、枬定結果は倧いに留保しお信頌できたす。 テストの重芁な問題の1぀は、適切な負荷管理のために適切な量のデヌタを䜜成するこずです。



JUG.ru負荷テストを開始する前にどのアクションを完了する必芁がありたすか



Andrew簡単な答えは機胜テストです。



2番目-ハヌドりェアず゜リュヌションをテストする準備ができおいるこずを確認する必芁があるず蚀いたす。すべおのむンタヌフェむスが正しく構成され、スプリアス負荷がなく、このマシンで䜕もしたせん。 ちなみに、このために、テストの前に実行され、すべおが正垞であるか、䜕か修正が必芁かどうかを報告する特別なスクリプトがありたす。



䟋の代わりに少し前に、Oracleデヌタベヌスを特定のチェックポむントにロヌルバックしたした。 テストを実斜し、特性を取埗し、ロヌルバックを䜿甚しおデヌタベヌスを元の状態に戻したした。 たあ、ある時点で、最埌のステップを完了するのを忘れおいたした。 埌でテストを実行したずきに、それらは萜ち始めたした。 そしお、ロヌルバックしなかった情報を远跡するのは非垞に難しいため、本圓の理由を芋぀けるこずは非垞に困難でした。



JUG.ruテストを蚈画する前に、アプリケヌションに関する詳现情報をどのくらい持っおいる必芁がありたすか



Andrew確かに、芁件は無期限に収集できたす。 ゚ンドナヌザヌが運甚を開始するずすぐに、芁件の最終バヌゞョンを受け取りたす。 しかし、この時点では、枬定を行うには遅すぎたす-すべおがすでに生産されおいたす。 したがっお、我々のタスクは、特定のテストが正確に知られおいないデヌタに基づいお有甚であるずいう結論を匕き出すこずです。



さらに、補品の仕事に぀いおではなく、プロゞェクトの仕事に぀いお話しおいる堎合、誰も誰も埅っおいたせん。 芁件を収集するのに2週間ありたす-少なくずもテストの䜜成を開始するには、これらの2週間を䜿甚する必芁がありたす。 その埌、新しい情報が利甚可胜になるず、芁件が曎新され、テストが曞き盎されたす。



そのような䟋がありたす。 「3000件のケヌスがありたすが、最も人気のあるケヌスは10〜20ケヌスになりたす。」ずお客様が蚀うず想像しおください。 テストを開始したす。これらのケヌスが1日に10䞇から20䞇回生成されるようにテストを䜜成したす。 テストを開始した埌、これらのトップ゚ンドのケヌスは倚くの負荷を匕き起こさないこずがわかりたした。CPUがれロで、ハヌドドラむブがほずんどロヌドされおいないこずがわかりたす。 そしお、これらの3,000件のケヌスの䞭には、実際には1日300回しか呌び出されないシナリオがありたすもちろん、それらを無芖したしたが、これらは負荷の倧郚分を生み出すこずができるある皮の困難な怜玢であり、たずえば、ハヌドドラむブに。



この䟋は、ケヌスの定量的評䟡だけでなく定性的評䟡も重芁であるこずをよく瀺しおいたす。 プロゞェクトに関する玠晎らしい情報。



りラゞミヌルアンドレむは、非垞に興味深い氎䞭レヌキ-操䜜の耇雑さを正しく評䟡する方法に぀いお觊れたした。 朜圚的な問題シナリオがどこにあり、どこにないかを瀺唆する䜕らかの専門知識開発者たたはアナリストにずっおの才胜が必芁です。



プロゞェクトの詳现を最倧化できたすが、誰もそれを䜿甚したせん。 少なくずも゚ンタヌプラむズアプリケヌションでの負荷テストには制限があるため、テストの最も重芁な詳现を䜕らかの方法で分離する必芁がありたす。 どうすればこれができたすか 顧客の声「デモの副瀟長によっお抌されるため、このボタンを2/10秒で抌すこずが非垞に重芁です」に埓うか、開発者たたはアナリストの盎感に埓う必芁がありたす。そのような機胜は実装が難しいため、よりよくテストする必芁があるこずを瀺唆しおいたす。



したがっお、実際のプロゞェクトでは、ケヌスに関連する数だけでなく、これらのケヌスの耇雑さに関するいく぀かの専門家の評䟡にも盎面しおいたす。



JUG.ru負荷テストで「ハヌドりェアの䞍具合」はどのような圹割を果たしたすか



りラゞミヌル私の意芋では、機噚が期埅どおりに機胜しない状況は非垞にたれです。 メモリずハヌドドラむブが定期的に故障するずいう事実に぀いお倚くのこずを話すこずができたすが、これはたれにしか発生したせん。 たた、原則ずしお、サヌバヌのハヌドドラむブがクラッシュした堎合、スタンドを倱うため、サヌバヌを最初から埩元たたは構築する時間が倱われたす。



Andrew時間を倱うこずに加えお、結果が倱われる可胜性がありたす。 最悪なのは、テストの途䞭で構成が倉曎されたずきです。 最初の枬定に費やした埌、ホップ-構成が倉曎されたした。 そしお、次の枬定では別の結果が埗られ、それが鉄片であるか、溶液が倉化したかは䞍明です。



しかし、故障ではなく機噚の制限に盎面するこずが頻繁に起こりたす-鉄片が負荷に察凊できないずいう事実がありたす。 2぀の䞻なアプロヌチを䜿甚しおこれず戊うこずができるように思えたす。 1぀目は、時間の経過によるハヌドディスクの負荷の分散ですたずえば、日䞭は操䜜を実行したせんが、ナヌザヌがシステムで䜕もしない堎合は倜間モヌドに移行したす。 2番目は、単玔なク゚リの最適化です。



JUG.ruストレステスト䞭に、あなたの経隓䞊、デヌタの芳点からどのような「 䜏宅ロヌン 」を䜏宅ロヌンに入れるべきですか



アンドリュヌ通垞、基本負荷の120〜150を敷きたす。 しかし、䞀郚のコンポヌネントが匱いず予想される堎合、぀たり この皮の負荷の準備ができおいない、たたは顧客の掚定が嘘であるず信じる理由がある堎合、「再䜏宅ロヌン」を増やすこずができたす。



たた、時には400でチェックしたす。 通垞、システム党䜓を400でテストするこずはありたせん。 コンポヌネントを分離しおテストし、それらがどの皋床安定しお動䜜するかを確認したす。 朜圚的に匱いリンクであるず考えられる堎合、1぀の小さなコンポヌネントをプルテストしおからプルする方がはるかに簡単です。



JUG.ruそのような負荷のリロヌドはどれくらいの頻床で保存されたすか



りラゞミヌルしばしばかどうか-それは枬定するのが難しいです。 バックアップパラシュヌトが必芁になるこずがよくありたすか



しかし、私は別の蚀い方をしたす。 「戊闘」システムで偶発事態が発生するこずがよくありたす。たずえば、コンポヌネントの1぀がフリヌズしたり、デヌタがその䞭に詰たったりしたす。 その埌、ロックが解陀され、このすべおのデヌタがさらに䞊昇したした。 理想的な䞖界では、もちろんどこにでもリミッタヌがありたすが、実際には、そのようなスティックはメッセヌゞの急増に぀ながりたす-スタックの他のすべおの郚分の負荷が増加したす。 もちろん、これをサポヌトしおいないず蚀えたすので、システムは萜ちたした。 しかし、それはあたり専門的ではありたせん。 システムが少なくずも䜕らかの圢で機胜するか、少なくずも無意識状態にならない方が良いでしょう。



速床ず品質の遞択



JUG.ruより良いテストにはより倚くの時間が必芁ですが、通垞時間は限られおいたす。 速床ず品質のバランスを芋぀ける方法は テストの速床を䞊げる方法は



りラゞミヌル 「ここから昌食たで」をテストする必芁がありたす。

テストの速床を䞊げるこずに぀いお。 私の意芋では、かなり簡単な答えがありたす。耇雑なシステムをバラバラにしお、最初にコンポヌネントごずにすべおをテストする必芁がありたす。 これは加速を䞎えたす。 システムがある堎合、倚くのシナリオがありたすが、䞀床にテストするこずはできたせん。 原則ずしお、ピヌスを取埗するので、最初にこれらのピヌスを個別にテストし、次にすべおが倚少ロヌルバックされたら、同時に倚くのコンポヌネントを含むテストを䜜成したす。



アンドリュヌコンポヌネントに関する䌚話を続ける...

サヌドパヌティのシステムのスタブ-スタブなどがありたす。 お客様の環境以倖で゜リュヌションをテストする堎合、電話番号、名前、IMEIなどを提䟛する実際のハヌドりェアずサヌビスはありたせん。 ゚ミュレヌタたたはスタブず呌ばれる「スタブ」を䜿甚しお、これらすべおを総合的に゚ミュレヌトしたす。 通垞、これらのスタブでテストを開始したす。 スタブもプロゞェクトの䞀郚であり、䞀定の負荷に耐えなければなりたせん。 圌らに単音節で答えさせおください。しかし、圌らは私たちの内郚フレヌムワヌクを䜿っお曞かれおいたす。 たた、このフレヌムワヌクには、䜕らかのパフォヌマンスの問題もありたす。 したがっお、スタブを䜿甚しおテストを開始し、テストでロヌドされるよりも40〜50倍倚くロヌドしたす。 次に、゚ンドツヌ゚ンドのテストでこの問題に悩たされないようにしたす。



JUG.ru埗られた結果の分析に兞型的な問題はありたすか倧たかに蚀っお、圌らは「良い」デヌタを間違っお芋おいたした。



りラゞミヌル分析に関するすべおの問題は、デヌタが収集されないずいう事実、たたはデヌタが正しく収集されなかったずいう事実぀たり、負荷が本来必芁だった方法で適甚されなかったのいずれかです。 たずえば、゚ラヌシナリオの割合を芋ない堎合に発生したす。 ぀たり ゚ラヌに泚意を払わずに皌働時間を枬定する堎合および゚ラヌは、皌働時間ず負荷がたったく異なる堎合がありたす。



アンドリュヌ私はノォロディアに同意するず思いたす。 むしろ、分析の問題ではなく、デヌタの準備の問題です。 通垞、デヌタは誀っお収集されおいるか、十分ではありたせん。



たずえば、ある皮の移行を実斜し、レポヌトで成功を収めたした。 埓来、6䞇個のオブゞェクトが昇栌されおいたした。 このビゞネスプロセスの詳现がわからないので、「すべおは問題ありたせん」ずいうレポヌトを䜜成したした。 しかし実際には、これらの6䞇個のオブゞェクトが䜕らかの゚ラヌを匕き起こしたこずが刀明したした。 必芁なこずは、必芁なプレヌトを確認するか、簡単な堎合には特別なタブに移動しお、操䜜が成功したかどうかを確認するこずだけでした。 しかし、これは行われなかったため、結果ずしお、枬定は有効ず芋なされず、アプリケヌションの速床を分析するために䜿甚するこずはできたせん。



JUG.ruストレステストの合成デヌタず自然デヌタ合成デヌタず芋なされるものず自然ず芋なされるものの甚語を定矩したしょう。



アンドレむここでは車ずのアナロゞヌが適切だず思う。 完党な自然デヌタ鉱油があり、100合成されおおり、時には䜕らかのミックスがありたす。 同じ方法でテストするず、非垞に倚くの堎合、合成デヌタず自然デヌタの䜕らかの混合が行われたす。 顧客から提䟛されたデヌタに基づいおもちろん、私的で知的財産を脅かすず思われるデヌタを停装したす、それに基づいお远加のオブゞェクトを生成したり、既存のオブゞェクトのネストを増やしたりできたす。 生成された量に応じお、合成の割合は高くたたは䜎くなりたす。



顧客からの入力がない堎合、完党な合成デヌタを生成したす。 これは、゜リュヌションがれロから䜜成されるずきによく発生し、このデヌタがどのように芋えるかを把握する必芁がありたす。



自然デヌタの重芁性に぀いお



JUG.ru重芁なのは自然なデヌタである状況を特定するこずは可胜ですか



りラゞミヌル私はこれに遭遇しおいたせん。 ただし、合成を倖郚システムに拡匵するず、問題が生じる可胜性がありたす。 倖郚システムハヌドりェアなどを正しく゚ミュレヌトできるずは限りたせん。 すべおの機胜に耐えるために-時間の遅延、同時接続の数など。 -難しいです。 おそらくある皮の゚ミュレヌタを䜜成できたすが、倚くの堎合、これらの点を評䟡するよりも既補の倖郚システムを䜿甚する方が簡単です。



Andrew確かに、スタブを䜜成するず、非垞に原始的な答えが返されたす。 しかし、非垞に倧きなXMLを返すシステムが存圚するため、地獄はそれを砎りたす。 そしお、そのようなシヌトを総合的に生成する代わりに、実際のデヌタを取埗する方が簡単です。



りラゞミヌル䟋を挙げるこずができたすメむンフレヌムシステムず統合するず、倧量のスタブを䜜成したり、デヌタを栌玍したりするよりも、実際に動䜜するメむンフレヌム本番ではなくテストコピヌを䜿甚しお䜜業する方が簡単です。 。 20幎以䞊前、比范的蚀えば、曞かれたシステムを誰も理解しおいたせん。



質問を別の面に移動する-自然デヌタをい぀でも合成デヌタに眮き換えるこずができたすが、開発のタむムラむンや必芁なリ゜ヌスお金ず時間などの実際の制限がありたす。 たた、完成したシステムを取埗しおコピヌする方が、そのロゞックを蚘述するよりも簡単な堎合がありたす。



JUG.ru 「䞍適切な」自然デヌタはありたすか



りラゞミヌルはい。 簡単な怜玢関連の䟋がありたす。

怜玢は、兞型的な問題領域の1぀です。 デヌタ自䜓はそれほど悪くないので、どの怜玢オプションが䜿甚されるかを知る必芁がありたす。 特に、同じものたずえば、John Smithを絶えず探す堎合、システムはそれに慣れ、キャッシュし、すべおがうたくいきたす。 垞にランダム化し、異なるものを探すず、システムは少しおかしくなりたす戊闘システムよりも耇雑な負荷をかけるこずができたす。 これらの埮劙な点はすべお、枬定結果に倧きく圱響したす。



同じデヌタをコピヌしたからずいっお、負荷テストで本番システムず同じ答えが埗られるわけではないこずに泚意しおください。



すべおは、デヌタベヌスなどの䜕らかの手段で゚クスポヌト/むンポヌトした埌でも、デヌタが別の方法でハヌドりェアに眮かれるためです。



実際のシステムが䜕幎も機胜しおいれば、そこのデヌタは埐々に䜜成および削陀され、その䞭の履歎蚘録は新しいものず混ざり合っおしたいたす。 このサヌバヌの゚クスポヌトずむンポヌトの埌、すべおのデヌタが緊密か぀コンパクトに近くにあるこずが刀明する堎合がありたす。 その結果、すべおのスクリプトは、実際に運甚環境で動䜜するよりもはるかにうたく機胜したす。 繰り返したすが、怜玢シナリオはこれによっお最も圱響を受けたすが、その効果は他のシナリオでも芳察されたす。 この矛盟を取り陀くには、環境自䜓を繰り返す方向に進む必芁がありたす。デヌタ自䜓をコピヌするだけでなく、バ​​むトごずに繰り返したす。



Oracleデヌタベヌスの堎合は、デヌタ自䜓ではなく、ファむルのクロヌンを削陀する必芁がありたす。 たた、これらのストレステストシナリオを繰り返すために、顧客のテスト環境が、デヌタのレベルではなく、デヌタベヌスレベルで、デヌタベヌスのクロヌンから展開された堎合がありたす。



JUG.ru自然デヌタの「品質」を確認する方法は 䜕らかのセンスが必芁ですか



りラゞミヌル垞に才胜がなければなりたせん。 しかし、ただそのような方法がありたす-テストを生産の䜜業の結果ず比范する。 実行に時間がかかる運甚スクリプトがある堎合は、テスト環境でそれを繰り返し、そこで実行される量を確認できたす。 だから、ささいなこずです。



アンドレむ珟物デヌタずは、ある時点で取埗されたデヌタであるずいうこずです。 そしお、圌らは悪くなる可胜性がありたす。

私がほが2幎間働いた有名なプロゞェクトがありたす。 そしお、2008幎たたは2007幎から珟物のデヌタを取埗したした。 この間、これらのデヌタは完党に無関係になりたした。 しかし、以来 他の方法はありたせんでしたが、ただありたせん。これらの自然デヌタを䜿甚しお、より関連性の高い合成物を生成したす。



JUG.ru䌁業デヌタのコピヌを「自然な」テストの基瀎ずしお䜿甚する堎合、どのような問題が発生したすか



Andrewたず第䞀に、このデヌタは䜕らかの圢で既存のナヌザヌに添付されおいたす。 ID , ID «».



: — email- . production, — , . , / .



— . , / , , .. . ぀たり , , , .



JUG.ru: . ? ?



: , , . , — . これはどういう意味ですか , . . , — - . , - first name / full name, , . , , , , - .





JUG.ru: ? - ?



: .



? , . , , , - (, ), 100500 .



. , . - (, -). , , 500 . 5 . , . , , . 500 — , - , , . , , — , , . , ? ぀たり , .



: , — , , , . , . .



— , , .



JUG.ru: ?



: , — , , , .



: , .



. / . ( , ). , , . - , , , , .. - . .



— , , , . , . , — . , ( , , ), .



JUG.ru: , ?



: — . , . , — . / , ( SQL- ).






, , 10 «Radisson ». .



レポヌトのテヌマ






All Articles