Upgrade to Pro — share decks privately, control downloads, hide ads and more …

性能テストのいろは

Avatar for Osamu Ishikawa Osamu Ishikawa
March 08, 2015
77

 性能テストのいろは

天下一なんちゃらのアレ

Avatar for Osamu Ishikawa

Osamu Ishikawa

March 08, 2015

Transcript

  1. γεςϜϦιʔε • ᮢ஋௒͑౳ͷো֐Λى͜͞ͳ͍͜ͱΛ֬ೝ͢Δɻ • ؔ࿈͢Δαʔόʔ͢΂ͯͰऔಘ͢Δ΂͖ • CPU, ϝϞϦ, ωοτϫʔΫଳҬ, JavaͳΒεϨου΍ώʔϓ

    • *statͰऔಘͰ͖Δ(Windows͸λεΫϚωʔδϟʁ) • Ϧιʔεऔಘͷπʔϧ΋͋Δ • Graphite, Jennifer, Oracle Mission Control(JMX), AWSͳΒCould Watch
  2. γφϦΦ࡞੒ • ੑೳཁ݅Λݩʹ࠷ଟͱͳΔಉ࣌ΞΫηε਺΍ػೳ͝ͱͷར༻ൺ཰ͳͲΛߟྀͯ͠਺ύλʔϯ࡞੒ • ૝ఆෛՙ / ݶքෛՙ ͷ྆ํΛݟͨ΄͏͕Α͍ • ϦΫΤετ΍Ωϟογϡͷಈ͖ͳͲۃྗϒϥ΢βͷڍಈʹ߹ΘͤΔ

    • ςετ࣮ࢪʹύϥϝʔλνϡʔχϯά͢Δ͜ͱ΋ɾɾɾ • ΫϥΠΞϯτଆͰඞཁʹͳΔϦιʔεΛ֬ೝ͓ͯ͘͠ 1000req/sec ͷࢼݧ͕ඞཁͰ1୆͋ͨΓͷ͔͚ΒΕΔෛՙ͕50req/secͷ৔߹ 1000 / 50 = 20 ୆ͷΫϥΠΞϯτ͕ඞཁʹͳΔɻ • ඞͣϨεϙϯεΞαʔγϣϯΛ͢Δ͜ͱ • ΤϥʔϨεϙϯεʹؾ͕ͭ͘͜ͱ͕Ͱ͖ͳ͍
  3. Gatling • AkkaϕʔεͷඇಉظIOΛ࢖ͬͨε τϨεπʔϧ +.FUFSͷఔ౓ͷ$16ෛՙ • ScalaDSLͰγφϦΦΛهड़͢Δɻ • HTMLܗࣜͷݟ΍͍͢Ϩϙʔτग़ ྗػೳ

    class MySimulation extends Simulation { val conf = http.baseUrl("http://localhost") val scn = scenario("Test Senario") .exec(http("index").get("/")) .during(10 minutes) { exec( http("json").get("/json") .check(jsonPath("$.id").saveAs("id")) ) } setUp(scn.inject(atOnceUsers(5))) .protocols(conf) }