Files
scylladb/dist/common/systemd/scylla-server.service
Avi Kivity 5c647408c7 systemd: map libraries close to the executable
The Intel Optimizaton Manual states that branches with relative offsets
greater than 2GB suffer a penalty. They cite a 6% improvement when this
is avoided. Our code doesn't rely heavily on dynamically linked
libraries, so I don't expect a similar win, but it's still better to do
it than not.

Eliminate long branches by asking the dynamic linker to restrict itself
to the lower 4GB of the address space. I saw that it maps libraries
at 1GB+ addresses, so this satisfies the limitation.

Fix is from the Intel Optimization Manual as well.

This change was ported from ScyllaDB Enterprise.

Closes scylladb/scylladb#22498
2025-02-11 22:16:09 +02:00

34 lines
967 B
Desktop File

[Unit]
Description=Scylla Server
Wants=scylla-housekeeping-restart.timer
Wants=scylla-housekeeping-daily.timer
# This will only requires for abrt < 2.14
Conflicts=abrt-ccpp.service
[Service]
Type=notify
LimitCORE=infinity
LimitMEMLOCK=infinity
LimitNOFILE=800000
LimitAS=infinity
LimitNPROC=8096
# Intel Golden Cove branches > 2GB occupy more slots in the branch target buffer,
# so map libraries close to the executable for shorter branches.
Environment=LD_PREFER_MAP_32BIT_EXEC=1
EnvironmentFile=/etc/sysconfig/scylla-server
EnvironmentFile=/etc/scylla.d/*.conf
ExecStartPre=+/opt/scylladb/scripts/scylla_prepare
ExecStart=/usr/bin/scylla $SCYLLA_ARGS $SEASTAR_IO $DEV_MODE $CPUSET $MEM_CONF
ExecStopPost=+/opt/scylladb/scripts/scylla_stop
TimeoutStartSec=1y
TimeoutStopSec=900
Restart=on-abnormal
User=scylla
OOMScoreAdjust=-950
SyslogLevelPrefix=false
AmbientCapabilities=CAP_SYS_NICE CAP_IPC_LOCK
Slice=scylla-server.slice
[Install]
WantedBy=multi-user.target