
Мой сервер падает, когда один из моих пользователей запускает скрипт 'R' (этот скрипт требует большого объема памяти). Ниже приведено последнее, что topя видел:
top - 11:32:39 up 20 min, 4 users, load average: 1.08, 0.85, 0.46
Tasks: 336 total, 2 running, 334 sleeping, 0 stopped, 0 zombie
Cpu(s): 6.1%us, 0.2%sy, 0.0%ni, 93.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 65939968k total, 5131440k used, 60808528k free, 88256k buffers
Swap: 68124664k total, 0k used, 68124664k free, 1077612k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10392 cdina 25 0 3702m 3.5g 2428 R 100.0 5.6 7:51.82 R
10430 root 15 0 12872 1272 804 R 0.7 0.0 0:02.42 top
1 root 15 0 10348 704 592 S 0.0 0.0 0:02.95 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
есть ли способ предотвратить сбой моего сервера («не запускать этот скрипт» не вариант :-) )? Что-то вроде установки «квоты» на разрешенную память?
(обновлять)архитектура:
uname -a
Linux myserver 2.6.18-194.3.1.el5 #1 SMP Sun May 2 04:17:42 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
#R was compiled on the server. just a simple configure/make/install
R --version
R version 2.11.0 (2010-04-22)
file /usr/local/lib64/R/bin/exec/R
R: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
решение1
как насчет использования /etc/security/limits.conf для ограничения объема ресурсов процессора для пользователя?
Или с помощью:
ulimit -m <размер в мегабайтах>
в оболочке, а затем выполнение процесса.