Bu konuyla ilgili soruları okumak için 2 saat harcadım ve hala bazı yanlış anlaşılmalar var.
Bu süreç var:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1452 0.4 1.8 1397012 19308 ? Sl 04:23 3:48 ./transaction_server
Bu tüm sistem belleği 19.3Mb
etrafında 1.8%
, sistem yerleşik bellek (takas dosyası yok) kullanır gösterir 1GB
. Sanal boyut 1.39GB
?!?. ulimit -m
İşe yaramıyor okudum . İnsanlar ulimit -v
örneğin işlem için sanal bellek ayarlamak gibi işlemler kullanırlar. Bu sanal bellek listelenen VSZ ps
mi? Bu işlemi 100MB
en çok sistem belleğini kullanacak şekilde kısıtlamak istiyorsam hangi değeri ayarlamalıyım . Ben belgelerini okudum setrlimit
ve bu yasal görünüyor:
RLIMIT_AS
This is the maximum size of a process' total available memory,
in bytes. If this limit is exceeded, the malloc() and mmap()
functions shall fail with errno set to [ENOMEM]. In addition,
the automatic stack growth fails with the effects outlined above.
Ancak belgelerin diğer sürümlerinde bu RLIMIT_AS
parametre sanal bellek boyutunu ayarlar. Gerçek ne?