Будни тестирования Cassandr-ы

  • Upload
    sqalab

  • View
    533

  • Download
    2

Embed Size (px)

DESCRIPTION

Доклад Михаила Епихина, SQA Days-13, 26-27 апреля 2013, www.sqadays.com

Citation preview

  • 1. cCassandra

2. Cassandra? ? 3. 4Use Case Read & Write 4. 5Use Case Read & Write Size & Types Text / Binary 5. 6Use Case Read & Write Size & Types Text / Binary Replication Factor & Consistency Level 6. 7 YCSB 7. 8 YCSB cassandra-stress 8. 9 YCSB cassandra-stress Iago 9. 10 YCSB cassandra-stress Iago Apache JMeter 10. 11 YCSB cassandra-stress Iago Apache JMeter + Netflix plugins 11. 12 YCSB cassandra-stress Iago Apache JMeter + Netflix pluginsJAVA 12. 13Apache JMeter + Netflix plugins scenario-based hit-based 13. 14Apache JMeter + Netflix plugins scenario-based hit-based 14. 15Apache JMeter + Netflix plugins scenario-based hit-based 15. 16Apache JMeter + Netflix plugins scenario-based hit-based yandex-tank 16. CPU E5-2660 x 2RAM 128GbHDD (7200rpm) x 4NET 1Gbit/s 17. 18Use Case Write 1M files text 1kb data Snappy Consistency Level 3 Replication Factor 3 18. 19 19. 20 >6000 RPS 20. 21fail :( 200 RPS 21. 22HDD RAID10 >200 IOPS 22. 23${__FileToString()} 23. 24/dev/shm & tmpfs 24. 25HDD tmpfs 25. 26HDD tmpfs16000RPS 26. 27 (tmpfs)${__FileToString(/tmp/shm/test)} 27. 28 ${__FileToString} 28. 29 ${__FileToString}~16000RPS 29. 30 !${__ReadNCache()}Concurrent LRU Cachehttps://github.com/sch1z0phren1a/jmeter-readncache 30. 31 (java heap)${__ReadNCache(/tmp/shm/test)} 31. 32tmpfs vs java heap 32. 33tmpfs vs java heap216KRPS 33. 34tmpfs java heap 34. 35tmpfs java heap35000 RPS 35. 36tmpfs java heap35000 RPS 36. 37 ? 37. 38 38. 39 39. 40 40. 41 ? 41. 42 ?jstack -l $(pgrep java) 42. 43Thread 2391: (state = BLOCKED)- java.io.PrintWriter.println(java.lang.String) @bci=6,line=738 (Compiled frame)-org.apache.jmeter.reporters.ResultCollector.sampleOccurred(org.apache.jmeter.samplers.SampleEvent) @bci=83, line=510(Compiled frame) 43. 44 44. 45writer = new PrintWriter(new OutputStreamWriter(newBufferedOutputStream(new FileOutputStream(filename,trimmed)),SaveService.getFileEncoding("UTF-8")), true);ResultCollector.sampleOccurred 45. 46writer = new PrintWriter(new OutputStreamWriter(newBufferedOutputStream(new FileOutputStream(filename,trimmed)),SaveService.getFileEncoding("UTF-8")), true);ResultCollector.sampleOccurred 46. 47! autoFlush? true false? 47. 48 ? 48. 49 ?98 vs 280 KRPS 49. 50!Apache JMeter 2.10 50. 51PrintWriterSampler Thread PrintWriter 51. 52PrintWriterSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler Thread PrintWriterSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler Thread 52. 53PrintWriterSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler Thread PrintWriterSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler Thread 53. 54LF QueueSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler Thread LF QueueSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler Thread 54. 55LF QueueSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler Thread LF QueueSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler Thread 55. 56LF QueueSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler Thread LF QueueSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadSampler ThreadLogging Thread 56. 57 ! WritebackPrintWriter! 57. 58 ! WritebackPrintWriter!98 vs 216 vs 370 KRPS 58. 59Download WritebackPrintWriterhttp://yadi.sk/d/98Rd05Sh4LA27 59. 60autoFlush=true WritebackPrintWriter 60. 61autoFlush=true WritebackPrintWriter45000 RPS 61. 62 ! 62. 63 ! 63. 64 !~40000 RPS 64. 65 !~40000 RPS 65. 66 (Hardware/Software) 66. 67 (Hardware/Software) 67. 68 (Hardware/Software) 68. 69 (Hardware/Software) 69. +7 (915) 344 05 [email protected] 70.