Skip to content

Commit 16feeb1

Browse files
authored
Reduce peak memory usage during release builds to fix OOM on manylinux runners (#1445)
* adjust swap to 8gb * modify profile.release
1 parent 0b6ea95 commit 16feeb1

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

.github/workflows/build.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,19 @@ jobs:
159159
with:
160160
enable-cache: true
161161

162+
- name: Add extra swap for release build
163+
if: inputs.build_mode == 'release'
164+
run: |
165+
set -euxo pipefail
166+
sudo swapoff -a || true
167+
sudo rm -f /swapfile
168+
sudo fallocate -l 8G /swapfile || sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
169+
sudo chmod 600 /swapfile
170+
sudo mkswap /swapfile
171+
sudo swapon /swapfile
172+
free -h
173+
swapon --show
174+
162175
- name: Build (release mode)
163176
uses: PyO3/maturin-action@v1
164177
if: inputs.build_mode == 'release'
@@ -233,7 +246,7 @@ jobs:
233246
set -euxo pipefail
234247
sudo swapoff -a || true
235248
sudo rm -f /swapfile
236-
sudo fallocate -l 16G /swapfile || sudo dd if=/dev/zero of=/swapfile bs=1M count=16384
249+
sudo fallocate -l 8G /swapfile || sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
237250
sudo chmod 600 /swapfile
238251
sudo mkswap /swapfile
239252
sudo swapon /swapfile

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ pyo3-build-config = "0.28"
6464
datafusion-python-util = { path = "crates/util" }
6565

6666
[profile.release]
67-
lto = true
68-
codegen-units = 1
67+
lto = "thin"
68+
codegen-units = 2
6969

7070
# We cannot publish to crates.io with any patches in the below section. Developers
7171
# must remove any entries in this section before creating a release candidate.

0 commit comments

Comments
 (0)