How to Limit WSL 2 RAM, CPU using .wslconfig

WSL 2 makes it easy to run Linux directly inside Windows, but if you use it for development, Docker, databases, builds, or other heavy workloads, you may notice that WSL can consume a significant amount of your system resources.

Fortunately, WSL 2 allows you to control how much RAM and CPU it can use through a simple configuration file called .wslconfig.

Below are the steps to configure it.

1. Make Sure You Are Using WSL 2

The .wslconfig resource settings discussed in this guide apply to distributions running on WSL 2.

Open PowerShell and run:

wsl --list --verbose

You should see something similar to:

  NAME      STATE           VERSION
* Ubuntu    Running         2

Check the VERSION column.

If it shows:

2

your distribution is running on WSL 2.

You can also check your installed WSL version with:

wsl --version

2. Create the .wslconfig File

The .wslconfig file belongs inside your Windows user directory:

C:\Users\<username>\.wslconfig

Instead of opening a text editor, you can create the file directly from PowerShell.

For example:

@"
[wsl2]
memory=8GB
processors=4
"@ | Set-Content "$env:USERPROFILE\.wslconfig"

This creates a .wslconfig file containing:

[wsl2]
memory=8GB
processors=4

The values above are only an example. You can change them depending on how many resources you want to give WSL.

3. Limit WSL RAM Usage

The memory setting defines the maximum amount of RAM available to WSL 2.

For example:

memory=8GB

This means WSL can use up to approximately 8 GB of RAM.

You can choose another value:

memory=4GB

or:

memory=12GB

depending on your machine and workload.

For example, a complete configuration with an 8 GB limit would look like:

[wsl2]
memory=8GB

This is useful if WSL, Docker, or development tools are consuming too much memory and causing Windows itself to become slow.

4. Limit the Number of CPU Processors

You can also control how many logical processors WSL is allowed to use.

For example:

processors=4

This limits WSL to four logical processors.

A configuration containing both RAM and CPU limits would look like:

[wsl2]
memory=8GB
processors=4

You could use:

processors=2

for a smaller workload, or increase it if you regularly perform heavier tasks such as compiling applications or running multiple containers.

The correct number depends on the CPU available on your computer.

5. Check Your Configuration

You can display the current .wslconfig directly from PowerShell:

Get-Content "$env:USERPROFILE\.wslconfig"

You should see something similar to:

[wsl2]
memory=8GB
processors=4

If you want to completely replace the configuration later, simply run the Set-Content command again with your new values.

For example:

@"
[wsl2]
memory=12GB
processors=6
"@ | Set-Content "$env:USERPROFILE\.wslconfig"

This replaces the previous configuration.

6. Restart WSL

Changing .wslconfig does not immediately modify a WSL instance that is already running.

First, shut down WSL:

wsl --shutdown

Then start it again:

wsl

Your new resource limits should now be applied.

A quick workflow after modifying .wslconfig is:

Get-Content "$env:USERPROFILE\.wslconfig"
wsl --shutdown
wsl

7. Verify the RAM Limit

After entering WSL again, check the available memory:

free -h

You should see output similar to:

               total        used        free
Mem: 7.7Gi 1.2Gi 5.8Gi

The exact numbers may not be identical to the value in .wslconfig, but the total memory should approximately reflect the limit you configured.

8. Verify the CPU Limit

To check how many processors WSL can use:

nproc

If your configuration contains:

processors=4

the command should return:

4

You can also see more detailed CPU information with:

lscpu

Quick Summary

Create or replace the configuration:

@"
[wsl2]
memory=8GB
processors=4
"@ | Set-Content "$env:USERPROFILE\.wslconfig"

Restart WSL:

wsl --shutdown
wsl

Check RAM:

free -h

Check CPU:

nproc

With .wslconfig, you can keep WSL 2 from consuming more system resources than you want while still giving your Linux development environment enough RAM and CPU for everyday work.

Book a Free Consultation

Haven’t found the right solution yet?
Tell us about your needs, and let’s discuss the best solution together.

Project description.

Built a private marketplace research and purchase planning platform for Shopee. The system tracks product performance over time, estimates sales velocity and gross revenue, analyzes demand across product variants, and turns the research into actionable purchasing plans. It also calculates supplier costs, shipping, platform fees, margins, planned investment, and estimated earnings to support data-driven sourcing decisions.

Skills and deliverables

Full-Stack Development, Web Application Development, Data Analysis, Business Process Automation, Business Intelligence

Shopee Marketplace Research & Purchase Planning Dashboard

We built this application to solve a common problem in marketplace sourcing: finding products is easy, but deciding what is actually worth buying, which variant to prioritize, and how much inventory to purchase requires much more analysis. Instead of relying on a single product snapshot, the system organizes products into research collections and tracks their marketplace performance over time.

Product research & tracking

Products can be added individually or collected from marketplace stores and organized into dedicated research collections. The system keeps historical observations so users can compare changes between captures instead of relying only on the latest marketplace data. This makes it possible to estimate metrics such as: – Sales velocity – Estimated daily gross revenue – Price changes – Product movement over time – Variant-level demand

Variant demand analysis

One of the most important parts of the system is identifying which variants are actually driving sales. Instead of treating a product as a single item, the application analyzes sales movement at variant level and shows each variant’s contribution to recent demand. This helps identify which sizes, models, or variations should be prioritized when purchasing inventory.

Purchase planning

Research data can then be converted directly into a purchasing plan. For every product and variant, the user can enter supplier pricing, shipping costs, purchase quantities, exchange rates, and other operational costs. The system automatically calculates: – Planned inventory investment – Shipping cost – Marketplace/platform fees – Net margin per unit – Net margin percentage – Estimated earnings – Total batch investment This allows purchasing decisions to be evaluated before committing capital.

Why We built it

The goal was to replace a workflow that would normally require multiple spreadsheets, manual marketplace checks, and repeated calculations. The resulting workflow became: Discover products → Track performance → Analyze demand → Select variants → Plan purchasing → Estimate margins Everything is kept in one application, making the research and sourcing process easier to review, repeat, and scale.

Result

The platform turns raw marketplace observations into actionable purchasing information. Instead of choosing products based only on intuition or current sales numbers, users can evaluate sales movement, variant demand, sourcing cost, expected margin, and required investment before making a purchasing decision. Built as an end-to-end internal tool, from data collection and analysis to the final purchasing workflow.

Project description.

Built a browser-based tool that converts Shopee/SPX order exports into clean, print-ready shipping labels. It supports multiple Excel/CSV files, combines orders into one preview, and automatically generates QR codes, barcodes, tracking numbers, and product information for 68 mm thermal printers. All order data is processed locally in the browser for better privacy, eliminating repetitive manual label formatting.

Skills and deliverables

Laravel, Business Automation, CSV, Microsoft Excel

Shopee SPX Order Label Maker for Thermal Printing

This tool was built to simplify the shipping label preparation process for Shopee SPX orders. The existing workflow required order data to be exported from Shopee and manually formatted before it could be printed on a thermal printer. This became repetitive and time-consuming, especially when processing multiple orders at once.

We built a browser-based label generator that reads Shopee Excel/CSV exports and automatically converts the order data into clean, print-ready SPX labels. The tool automatically handles: – Tracking numbers – QR codes – Barcodes – Product names and variants – Order quantities – Multiple order files at once – 68 mm thermal printer formatting Users can review all generated labels before printing, without having to manually copy or reorganize the order information.

The order files are processed directly inside the browser instead of being uploaded to a server. This keeps customer and shipment data private while also making the tool fast and simple to use.