Solaris process debugging: Difference between revisions
m (Text replacement - "<source" to "<syntaxhighlight") |
|||
Line 2: | Line 2: | ||
==Swap usage per process== | ==Swap usage per process== | ||
< | <syntaxhighlight lang=awk> | ||
# pgrep . | xargs -n 1 pmap -S 2>/dev/null | nawk ' | # pgrep . | xargs -n 1 pmap -S 2>/dev/null | nawk ' | ||
function kb2h(value){ | function kb2h(value){ | ||
Line 28: | Line 28: | ||
==Set the core file size limit on a process== | ==Set the core file size limit on a process== | ||
For example for the sshd (and all resulting childs from now): | For example for the sshd (and all resulting childs from now): | ||
< | <syntaxhighlight lang=bash> | ||
ssh-server# prctl -n process.max-core-size -v 2g -t privileged -r -e deny $(pgrep -u root -o sshd) | ssh-server# prctl -n process.max-core-size -v 2g -t privileged -r -e deny $(pgrep -u root -o sshd) | ||
</source> | </source> | ||
Check: | Check: | ||
< | <syntaxhighlight lang=bash> | ||
ssh-server# prctl -n process.max-core-size $(pgrep -u root -o sshd) | ssh-server# prctl -n process.max-core-size $(pgrep -u root -o sshd) | ||
process: 1491: /usr/lib/ssh/sshd | process: 1491: /usr/lib/ssh/sshd | ||
Line 43: | Line 43: | ||
Now all processes (for example new logged in users) will have a core file size limit of 2GB... really? No! | Now all processes (for example new logged in users) will have a core file size limit of 2GB... really? No! | ||
< | <syntaxhighlight lang=bash> | ||
ssh-client# ssh ssh-server | ssh-client# ssh ssh-server | ||
ssh-server# ulimit -Ha | grep core | ssh-server# ulimit -Ha | grep core |
Revision as of 15:20, 25 November 2021
Swap usage per process
<syntaxhighlight lang=awk>
- pgrep . | xargs -n 1 pmap -S 2>/dev/null | nawk '
function kb2h(value){ unit=1; while(value>=1024){ unit++; value/=1024; }; split("KB,MB,GB,TB,PB", unit_string, /,/); return sprintf("%7.2f %s",value,unit_string[unit]); } /[0-9]+:/ { pid=$1; prog=$2; } /^total/{ swap_total+=$3; printf ("%s\t%s\t%s\n",pid,kb2h($3),prog); } END{ printf "Total:\t%s\n",kb2h(swap_total); }'
</source>
Set the core file size limit on a process
For example for the sshd (and all resulting childs from now): <syntaxhighlight lang=bash> ssh-server# prctl -n process.max-core-size -v 2g -t privileged -r -e deny $(pgrep -u root -o sshd) </source>
Check: <syntaxhighlight lang=bash> ssh-server# prctl -n process.max-core-size $(pgrep -u root -o sshd) process: 1491: /usr/lib/ssh/sshd NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT process.max-core-size
privileged 2.00GB - deny - system 8.00EB max deny -
</source>
Now all processes (for example new logged in users) will have a core file size limit of 2GB... really? No! <syntaxhighlight lang=bash> ssh-client# ssh ssh-server ssh-server# ulimit -Ha | grep core core file size (blocks, -c) 2097152 </source>
See what it says: blocks <-- !!! From man page: -c Maximum core file size (in 512-byte blocks)