Complete Node.js container implementation with multi-version support
- Add Dockerfile with AlmaLinux 9 base, Nginx reverse proxy, and PM2 - Support Node.js versions 18, 20, 22 with automated installation - Implement memory-optimized configuration (256MB minimum, 512MB recommended) - Add Memcached session storage for development environments - Create comprehensive documentation (README, USER-GUIDE, MEMORY-GUIDE, CLAUDE.md) - Include example applications (simple website and REST API) - Add Gitea CI/CD pipeline for automated multi-version builds - Provide local development script with helper utilities - Implement health monitoring, log rotation, and backup systems 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
58
scripts/memory-info.sh
Executable file
58
scripts/memory-info.sh
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo "=== Cloud Node Container Memory Usage ==="
|
||||
echo "Date: $(date)"
|
||||
echo ""
|
||||
|
||||
echo "=== System Memory ==="
|
||||
free -h
|
||||
|
||||
echo ""
|
||||
echo "=== Process Memory Usage ==="
|
||||
echo "Process PID VSZ RSS %MEM"
|
||||
echo "----------------------------------------"
|
||||
|
||||
# Nginx
|
||||
nginx_pid=$(pgrep nginx | head -1)
|
||||
if [ ! -z "$nginx_pid" ]; then
|
||||
ps -o pid,vsz,rss,%mem,comm -p $nginx_pid | tail -n +2 | while read pid vsz rss mem comm; do
|
||||
printf "%-25s %5s %6s %6s %5s\n" "$comm" "$pid" "${vsz}K" "${rss}K" "$mem%"
|
||||
done
|
||||
fi
|
||||
|
||||
# Node.js/PM2
|
||||
pm2_pids=$(pgrep -f "PM2\|node")
|
||||
if [ ! -z "$pm2_pids" ]; then
|
||||
echo "$pm2_pids" | while read pid; do
|
||||
ps -o pid,vsz,rss,%mem,comm -p $pid 2>/dev/null | tail -n +2 | while read pid vsz rss mem comm; do
|
||||
printf "%-25s %5s %6s %6s %5s\n" "$comm" "$pid" "${vsz}K" "${rss}K" "$mem%"
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
# Memcached
|
||||
memcached_pid=$(pgrep memcached)
|
||||
if [ ! -z "$memcached_pid" ]; then
|
||||
ps -o pid,vsz,rss,%mem,comm -p $memcached_pid | tail -n +2 | while read pid vsz rss mem comm; do
|
||||
printf "%-25s %5s %6s %6s %5s\n" "$comm" "$pid" "${vsz}K" "${rss}K" "$mem%"
|
||||
done
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== Container Resource Limits ==="
|
||||
if [ -f /sys/fs/cgroup/memory/memory.limit_in_bytes ]; then
|
||||
limit=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes)
|
||||
if [ $limit -lt 9223372036854775807 ]; then
|
||||
echo "Memory Limit: $((limit / 1024 / 1024))MB"
|
||||
else
|
||||
echo "Memory Limit: No limit set"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== PM2 Process Info ==="
|
||||
if command -v pm2 &> /dev/null; then
|
||||
pm2 list 2>/dev/null | grep -E "(App name|online|stopped|errored)"
|
||||
echo ""
|
||||
pm2 show 0 2>/dev/null | grep -E "(memory|cpu|uptime)" || echo "No PM2 processes running"
|
||||
fi
|
Reference in New Issue
Block a user