Das funktioniert weiterhin mit der limits.conf über PAM.
Für deinen gewünschten Wert ist das Default bei einem User (Kilobyte):
$ ulimit -l
1024 (//Edit: Was so nicht stimmt, siehe unten bei Achtung Fallstrick, der Default ist 16384 KB)
Um den Wert für einen bestimmten User zu erhöhen ist - als root - die /etc/security/limits.conf zu editieren, z.B.
dedik hard memlock 10000
am Ende. Das erhöht den max. möglichen gesperrten Speicherbereich für den User dedik auf 10.000KB. Der betreffende User muß sich von allen Sitzungen abmelden, am besten neu booten.
Achtung Fallstrick falls daß Paket gcr installiert ist (pacman -Qi gcr):
Dieses legt eine Datei /etc/security/limits.d/10-gcr.conf an, welche für Mitglieder der Gruppe users (normalerweise alle User) dieses obige memlock-Limit auf 1024KB begrenzt - und diese Einstellung hat in der Reihenfolge wohl Vorrang vor der vons uns geänderten.
Falls diese Datei also existiert dann würde ich den dortigen Eintrag also deaktivieren, also Kommentarzeichen(#) vor die Zeile setzen. Über dieses gcr-Paket bin ich mir nicht im klaren was dieser Eintrag soll, bei mir kam es als Abhängigkeit von gvfs mit. Ich muß allerdings ja auch am Defaultwert nichts ändern...
//Edit: Nachdem ich meine Änderung an der limits.conf wieder rückgängig gemacht hatte habe ich vergessen, eben auch jene 10-gcr.conf wieder zu ändern, diese war also nicht aktiv. Der Wert für "max locked memory" bei ulimit -l wird mir danach als 16384 KB angezeigt. Das ist also der eigentliche Default-Wert ohne besondere Regelung, die Einschränkung auf 1024 geschieht also alleinig aufgrund der Datei aus dem gcr-Paket. Dieses niedrige Limit mag bei Verwendung von gvfs/gio seine Berechtigung haben (ausufernde Prozeßanzahl die Speicher "locken" wollen), deshalb ggf. diese Konfiguration, aber sicher bin ich mir nicht. Da aber dieses gcr-Paket nun die eigentliche (einzige) Regulierung für den Wert ist, kann man/du das langfristig auch besser lösen als durch Abstellen der gesamten Konfig für die users-Gruppe. Wenn die Erhöhung dieses Wertes dir also dein Problem löst, dann kann ich gerne noch was zu schreiben. //Edit-Ende
Danach hat dann z.B. mein User:
$ ulimit -l
10000
Das funktioniert so also weiterhin.
Zu systemd, speziell man systemd-user.conf: Diese Werte dort gelten IMHO doch nur für Units, entweder System-Units oder User-Units. Zumindest würde ich:
" DefaultLimitCPU=, DefaultLimitFSIZE=, DefaultLimitDATA=,
DefaultLimitSTACK=, DefaultLimitCORE=, DefaultLimitRSS=,
DefaultLimitNOFILE=, DefaultLimitAS=, DefaultLimitNPROC=,
DefaultLimitMEMLOCK=, DefaultLimitLOCKS=, DefaultLimitSIGPENDING=,
DefaultLimitMSGQUEUE=, DefaultLimitNICE=, DefaultLimitRTPRIO=,
DefaultLimitRTTIME=
These settings control various default resource limits for units."
so interpretieren.