[ 
https://issues.apache.org/jira/browse/SAMZA-548?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chris Riccomini updated SAMZA-548:
----------------------------------
    Attachment: SAMZA-548-0.patch

Attaching patch. RB at:

https://reviews.apache.org/r/30781/

* Added stat-yarn-job.sh script to check the current status of a Samza job.
* Cleaned up negate-numbers.properties to eliminate useless config.
* Added a kafka-read-write-performance job config that uses TestPerformanceTask 
to test read/write performance.
* Updated NegateNumbers to be more configurable (custom output path, and 
maxMessages)
* Updated deployment.py to move job start/stop from deployment into individual 
tests.
* Added an await() method to the Samza job deployer, which waits for a job to 
finish.
* Added a performance_tests test suite.
* Moved Kafka helper methods into a util.py file that both perf and smoke tests 
can share.

The new read/write test loads 1 million 200 byte messages into Kafka. The job 
then starts, reads all 1 million, and writes them out to a new topic. No 
serialization is handled in this test. The topics are both one partition, and 
the job is a single container with one StreamTask in it. I ran some cursory 
tests, and found:

* compression=none, linger.ms=0, acks=1, 166k msgs/sec, 33 MB/sec
* compression=none, linger.ms=0, acks=0, 200k msgs/sec, 40 MB/sec

I also observed that we go much faster than this (50-60 MB/sec) at peak, but 
for first few seconds, the container is warming up (and \-server is kicking 
in). There are a lot of deficiencies in this test:

# The test runs on just one machine (broker and job are all on one machine).
# The input and output topics are just one partition, with a replication factor 
of 1.
# I didn't mess with linger.ms at all to see if it would go faster.
# Turning on GZip compression slowed things down dramatically.
# No tests were done to see how scaling up the container count would impact 
performance.
# The messages/sec are logged to a file, but the test doesn't check it.
# The test only runs with 1 million messages.

Still, the numbers look tolerable. (1) can be remedied by addressing SAMZA-509. 
With (5), it would be interesting to see if one container for every core would 
result in saturating the NIC. I suspect it would. (6) would be nice, so we 
could impose some minimum speed, and make sure that we don't regress on 
performance when we apply patches. I didn't run with more than 1 million 
messages (7) because the python producer was already pretty slow in loading 1 
million messages into Kafka.

Anyway, I think this is a good starting point.

> Add performance test for container Kafka performance
> ----------------------------------------------------
>
>                 Key: SAMZA-548
>                 URL: https://issues.apache.org/jira/browse/SAMZA-548
>             Project: Samza
>          Issue Type: Bug
>          Components: kafka, test
>    Affects Versions: 0.9.0
>            Reporter: Chris Riccomini
>            Assignee: Chris Riccomini
>             Fix For: 0.9.0
>
>         Attachments: SAMZA-548-0.patch
>
>
> There was [some 
> discussion|http://mail-archives.apache.org/mod_mbox/samza-dev/201502.mbox/%3CCANFmfeNfdGCRsj66-76prLy%3DreK7_q3bfKLNP5iKfX7G1X2sNg%40mail.gmail.com%3E]
>  on the mailing list about Samza's read/write performance with Kafka. We 
> don't currently have a performance test that measures a Samza container's 
> read/write performance when using Kafka. We should write one.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to