Skip to content
GitLab
    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
    Projects Groups Topics Snippets
  • Register
  • Sign in
  • GitLab FOSS GitLab FOSS
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 1.7k
    • Issues 1.7k
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Jira
    • Jira
  • Merge requests 487
    • Merge requests 487
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

Admin message

Do not update/delete: Banner broadcast message test data

Admin message

Do not update/delete: Notification broadcast message test data

  • GitLab.orgGitLab.org
  • GitLab FOSSGitLab FOSS
  • Issues
  • #34533
Closed
Open
Issue created Jun 29, 2017 by Stan Hu@stanhuMaintainer

Optimize project creation

ZenDesk: https://gitlab.zendesk.com/agent/tickets/78488

Customer is testing the GitLab project endpoints on a local MacOS and AWS. On a local Mac, they are seeing these numbers:

API Endpoint Min time
POST /api/v4/projects 1.6 s
POST /api/v4/projects/${projectId}/repository/commits 629 ms

In both these cases, the work is handled synchronously, so the endpoints block until they finish.

They are using JMeter to test how well GitLab can handle these scenarios. They are finding that as they test with a fixed number of concurrent users (e.g. 100), eventually the response times look like:

image

They have 5 unicorn workers on a 2-core machine allocated by Kubernetes.

It seems to me that what is happening is that requests get backed up and eventually timeout. For example, if it takes one unicorn worker to create a project a full second, that means on a 5-unicorn worker we can handle up to 5 transactions/s.

Next steps:

  1. See if we can replicate these numbers with simple POST requests (e.g. using curl).
  2. Try these requests with JMeter on a test instance.
  3. Profile the endpoints and see if we can optimize something.

Ideally, it should take less than 100 ms to do either operation. We may consider moving these to background tasks (or even crazier, Workhorse) to improve perceived performance.

/cc: @lbot, @jimash, @marin, @DouweM

Edited Aug 22, 2017 by Nick Thomas
Assignee
Assign to
Time tracking