Skip to main content

This version of GitHub Enterprise Server was discontinued on 2023-09-25. No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise Server. For help with the upgrade, contact GitHub Enterprise support.

Increasing CPU or memory resources

You can increase the CPU or memory resources for a GitHub Enterprise Server instance.

Warning: The process for allocating new system resources varies by virtualization platform and resource type. You should always configure the monitoring and alerting of key system resources. For more information, see "Monitoring your instance."

Note: Before increasing CPU or memory resources, put your instance in maintenance mode. You can validate changes by configuring an IP exception list to allow access from specified IP addresses. For more information, see "Enabling and scheduling maintenance mode."

Adding CPU or memory resources for AWS

Note: To add CPU or memory resources for AWS, you must be familiar with using either the AWS management console or the aws ec2 command line interface to manage EC2 instances. For background and details on using the AWS tools of your choice to perform the resize, see the AWS documentation on resizing an Amazon EBS-backed instance.

Resizing considerations for AWS

Before increasing CPU or memory resources for your GitHub Enterprise Server instance, review the following recommendations.

  • Scale your memory with CPUs. When you increase CPU resources, we recommend adding at least 6.5 GB of memory for each vCPU (up to 16 vCPUs) that you provision for the instance. When you use more than 16 vCPUs, you don't need to add 6.5 GB of memory for each vCPU, but you should monitor your instance to ensure it has enough memory.
  • Assign an Elastic IP address to the instance. If you haven't assigned an Elastic IP to your instance, you'll have to adjust the DNS A records for your GitHub Enterprise Server host after the restart to account for the change in public IP address. Once your instance restarts, the instance keeps the Elastic IP if you launched the instance in a virtual private cloud (VPC). If you create the instance in an EC2-Classic network, you must manually reassign the Elastic IP to the instance.

Supported AWS instance types

You need to determine the instance type you would like to upgrade to based on CPU/memory specifications.

Note: You can always scale up your CPU or memory by resizing your instance. However, because resizing your CPU or memory requires downtime for your users, we recommend over-provisioning resources to account for scale.

GitHub recommends a memory-optimized instance for GitHub Enterprise Server. For more information, see Amazon EC2 Instance Types on the Amazon EC2 website.

Resizing for AWS

Note: For instances launched in EC2-Classic, write down both the Elastic IP address associated with the instance and the instance's ID. Once you restart the instance, re-associate the Elastic IP address.

It's not possible to add CPU or memory resources to an existing AWS/EC2 instance. Instead, you must:

  1. Stop the instance.
  2. Change the instance type.
  3. Start the instance.
  4. Once the instance has fully restarted and you can reach it, use the SSH administrative shell to verify that the new resource configuration is recognized:
ssh -p 122 admin@HOSTNAME
ghe-system-info

Adding CPU or memory resources on Microsoft Azure

Note: To add CPU or memory resources in Microsoft Azure, you must be familiar with using either the Azure Portal, Azure CLI or Azure PowerShell to manage VM instances. For background and details on using the Azure tools of your choice to perform the resize, please refer to the Azure documentation on changing the size of a virtual machine.

Resizing considerations for Microsoft Azure

Before increasing CPU or memory resources for your GitHub Enterprise Server instance, review the following recommendations.

  • Scale your memory with CPUs. When you increase CPU resources, we recommend adding at least 6.5 GB of memory for each vCPU (up to 16 vCPUs) that you provision for the instance. When you use more than 16 vCPUs, you don't need to add 6.5 GB of memory for each vCPU, but you should monitor your instance to ensure it has enough memory.
  • Assign a static IP address to the instance. If you haven't assigned a static IP to your instance, you might have to adjust the DNS A records for your GitHub Enterprise Server host after the restart to account for the change in IP address.

Supported Microsoft Azure instance sizes

You need to determine the instance size you would like to upgrade to based on CPU/memory specifications.

Note: You can always scale up your CPU or memory by resizing your instance. However, because resizing your CPU or memory requires downtime for your users, we recommend over-provisioning resources to account for scale.

The GitHub Enterprise Server appliance requires a premium storage data disk, and is supported on any Azure VM that supports premium storage. Azure VM types with the s suffix support premium storage. For more information, see "What disk types are available in Azure?" and "Azure premium storage: design for high performance" in the Azure documentation.

GitHub recommends a memory-optimized VM for GitHub Enterprise Server. For more information, see "Memory optimized virtual machine sizes" in the Azure documentation.

GitHub Enterprise Server supports any region that supports your VM type. For more information about the supported regions for each VM, see Azure's "Products available by region."

Resizing for Microsoft Azure

You can scale the VM up by changing the VM size. Changing its size will cause it to be restarted. In some cases, you must deallocate the VM first. This can happen if the new size is not available on the hardware cluster that is currently hosting the VM.

  1. Refer to the Azure documentation on changing the size of a virtual machine for the required steps.
  2. Once the instance has fully restarted and you can reach it, use the SSH administrative shell to verify that the new resource configuration is recognized:
ssh -p 122 admin@HOSTNAME
ghe-system-info

Adding CPU or memory resources for OpenStack KVM

It's not possible to add CPU or memory resources to an existing OpenStack KVM instance. Instead, you must:

  1. Take a snapshot of the current instance.
  2. Stop the instance.
  3. Select a new instance flavor that has the desired CPU and/or memory resources.

Adding CPU or memory resources for VMware

When you increase CPU resources, we recommend adding at least 6.5 GB of memory for each vCPU (up to 16 vCPUs) that you provision for the instance. When you use more than 16 vCPUs, you don't need to add 6.5 GB of memory for each vCPU, but you should monitor your instance to ensure it has enough memory.

  1. Use the vSphere Client to connect to the VMware ESXi host.
  2. Shut down your GitHub Enterprise Server instance.
  3. Select the virtual machine and click Edit Settings.
  4. Under "Hardware", adjust the CPU and/or memory resources allocated to the virtual machine as needed.
  5. To start the virtual machine, click OK.
  6. Once the instance has fully restarted and you can reach it, use the SSH administrative shell to verify that the new resource configuration is recognized:
ssh -p 122 admin@HOSTNAME
ghe-system-info