Giriş
ulimit komutu genellikle login shell dosyası olan
/etc/profile dosyasına yazılır. Tüm alanları gösteren çıktı
şöyledir [root@jboss02 ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 72192
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 72192
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
max user processes Alanı
Kullanıcının kaç tane process/thread açabileceğini gösterir. Eğer üst sınır aşılırsa, örneğin yeni bir thread yaratılamazsa, Java'da şu hatayı
alırız.
Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread
-a seçeneği
Şöyle yaparız
ulimit -aH
Tüm atanmış değerleri gösterir.
-c seçeneği - core dosyası
Eğer core dump üretme yeteneği kapalı ise şuna benzer bir hata
alırız.
Failed to write core dump. Core dumps have been disabled. To enable core dumping, try ulimit -c unlimited before starting Java again
Üretilen core dosyası için kullanılacak büyüklüğü belirtir.
Örnek
core dosyası üretilmesin istiyorsak şöyle
yaparız.
ulimit -c 0
Örnek
Şöyle
yaparız.
ulimit -c unlimited
Örnek
core dosyasında kullanılacak örüntü için şöyle
yaparız.
sysctl -w kernel.core_pattern='/var/core/%e.%p.%h.%t.core'
Örnek
Şöyle
yaparız.
#!/bin/sh
#
# Starts the application.
#
NAME=my_app
test -x /usr/bin/my_app || exit 0
start() {
echo -n "Starting my app "
sysctl -w kernel.core_pattern='/var/core/%e.%p.%h.%t.core'
ulimit -c unlimited
$NAME > /dev/null 2>&1 &
echo "OK"
}
-H seçeneği - hard link
Şöyle
yaparız.
ulimit -Hn 1048576
-l seçeneği
Belirtilen alanı sorgular. Şöyle
yaparız.
ulimit -c -l
Çıktı olarak şunu
alırız.
core file size (blocks, -c) unlimited
max locked memory (kbytes, -l) 64
-T seçeneği - thread
Uygulamanın kullanabileceği thread sayısı
ayarlanabilir.
-S seçeneği - soft link
Örnek
Değiştirmek için şöyle
yaparız.
$ ulimit -Su 2000
$ ulimit -a | grep processes
max user processes (-u) 2000
Örnek
Şöyle
yaparız.
ulimit -Sn 1048576
-s seçeneği - stack
"ulimit -s" komutuyla da uygulamanın en fazla ne kadar stack (kilobyte cinsinden) kullanabileceği ayarlanabilir.