diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index 32d76f46f8d..a29194a0652 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -607,6 +607,9 @@ Release 2.8.0 - UNRELEASED
YARN-4248. REST API for submit/update/delete Reservations. (curino)
+ YARN-4341. add doc about timeline performance tool usage (Chang Li via
+ sjlee)
+
OPTIMIZATIONS
YARN-3339. TestDockerContainerExecutor should pull a single image and not
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/TimelineServer.md b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/TimelineServer.md
index 2048012d59e..3e589d3d275 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/TimelineServer.md
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/TimelineServer.md
@@ -26,6 +26,10 @@ The YARN Timeline Server
* [Publishing of application specific data](#Publishing_of_application_specific_data)
* [Timeline Server REST API](#Timeline_Server_REST_API_v1)
* [Generic Data REST APIs](#GENERIC_DATA_REST_APIS)
+* [Timelnine Server Performance Test Tool](#TIMELINE_SERVER_PERFORMANCE_TEST_TOOL)
+ * [Highlights](#HIGHLIGHTS)
+ * [Usage](#USAGE)
+ * [Sample Runs](#SAMPLE_RUNS)
Overview
---------
@@ -2033,3 +2037,77 @@ This hides details of other domains from an unauthorized caller.
this failure *will not* result in an HTTP error code being retured.
A status code of 200 will be returned —however, there will be an error code
in the list of failed entities for each entity which could not be added.
+
+ Timelnine Server Performance Test Tool
+----------
+###Highlights
+
+The timeline server performance test tool helps measure timeline server's write performance. The test
+launches SimpleEntityWriter mappers or JobHistoryFileReplay mappers to write timeline
+entities to the timeline server. At the end, the transaction rate(ops/s) per mapper and the total transaction rate
+will be measured and printed out. Running the test with SimpleEntityWriter mappers
+will also measure and show the IO rate(KB/s) per mapper and the total IO rate.
+
+###Usage
+
+Mapper Types Description:
+
+ 1. SimpleEntityWriter mapper
+ Each mapper writes a user-specified number of timeline entities
+ with a user-specified size to the timeline server.
+
+ 2. JobHistoryFileReplay mapper
+ Each mapper replays jobhistory files under a specified directory
+ (both the jhist file and its corresponding conf.xml are required to
+ be present in order to be replayed. The number of mappers should be no more
+ than the number of jobhistory files).
+ Each mapper will get assigned some jobhistory files to replay. For each
+ job history file, a mapper will parse it to get jobinfo and then create
+ timeline entities. Each mapper also has the choice to write all the
+ timeline entities created at once or one at a time.
+
+Options:
+
+ [-m ] number of mappers (default: 1)
+ [-v] timeline service version
+ [-mtype ]
+ 1. simple entity write mapper
+ 2. jobhistory files replay mapper
+ [-s <(KBs)test>] number of KB per put (mtype=1, default: 1 KB)
+ [-t] package sending iterations per mapper (mtype=1, default: 100)
+ [-d ] root path of job history files (mtype=2)
+ [-r ] (mtype=2)
+ 1. write all entities for a job in one put (default)
+ 2. write one entity at a time
+
+###Sample Runs
+
+Run SimpleEntityWriter test:
+
+ bin/hadoop jar performanceTest.jar timelineperformance -m 4 -mtype 1 -s 3 -t 200
+
+Example output of SimpleEntityWriter test :
+
+ TRANSACTION RATE (per mapper): 20000.0 ops/s
+ IO RATE (per mapper): 60000.0 KB/s
+ TRANSACTION RATE (total): 80000.0 ops/s
+ IO RATE (total): 240000.0 KB/s
+
+Run JobHistoryFileReplay mapper test
+
+ $ bin/hadoop jar performanceTest.jar timelineperformance -m 2 -mtype 2 -d /testInput -r 2
+
+Example input of JobHistoryFileReplay mapper test:
+
+ $ bin/hadoop fs -ls /testInput
+ /testInput/job_1.jhist
+ /testInput/job_1_conf.xml
+ /testInput/job_2.jhist
+ /testInput/job_2_conf.xml
+
+Eample output of JobHistoryFileReplay test:
+
+ TRANSACTION RATE (per mapper): 4000.0 ops/s
+ IO RATE (per mapper): 0.0 KB/s
+ TRANSACTION RATE (total): 8000.0 ops/s
+ IO RATE (total): 0.0 KB/s