centos 内存占用不符合实际情况

自己使用了好几台2核4G,总是出现内存总是被占用的很满,因为我只是启动一个tomcat,然后几个机器人人,所以每次使用内存的时候都小心翼翼的。因为java一旦内存不够就启动不了tomcat,或者直接进程挂掉

 

输入top,按shift+m,按内存占用百分比排序,发现应用也没占多少内存,那是什么占用的呢?
其实是CentOS为了提高效率,把部分使用过的文件缓存到了内存里。这样的话如果不需要这样的文件性能,可以直接释放来缓解内存压力。
sync命令用于强制被改变的内容立刻写入磁盘,更新超块信息。
在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户通常不需执行sync命令,系统会自动执行update或bdflush操作,将缓冲区的数据写 入磁盘。只有在update或bdflush无法执行或用户需要非正常关机时,才需手动执行sync命令。
sync
echo 3 > /proc/sys/vm/drop_caches
我感觉sync没有什么用,就是同步缓存到文件,如果内存缓存很大,运行第二个命令,说明来不急刷新到磁盘就被清理掉了

解决远程连接阿里云redis方案

为了本地调试远程工程,减少本地代码修改,写了一个端口转发

https://github.com/xvsdf100/pport-forwarding-

命令: java -jar PortNatTools.jar 本地监听端口 目标地址 目标端口 nohup java -jar ./PortNatTools.jar 本地监听端口 目标地址 目标端口 & (长期后台运行命令)

转发redis操作(windows):

1:修改host ip地址 你自己的.redis.rds.aliyuncs.com 这样本地都不用改代码就可以执行运行了

2: 在一个阿里云使用我的转发工具。

nohup java -jar ./PortNatTools.jar 6379 dst_ip dst_port

如果需要修改协议内容,需要一个协议过滤层

centos 安装java环境

因为新的环境的服务器里面没有java环境,所以需要重新搭建java环境

1:查看yum 仓库里面java的安装包

yum list java*

 

2:安装某一个版本

yum  -y install  java-1.8.0-openjdk.x86_64

直接复制一个版本就可以了,建议复制1.8 目前最高这个版本就是这个,版本越高运行的兼容性越好。

centos svnserver 开机启动

centos svnserver 设置开机启动

1、编辑rc.local文件 (centos 开机启动一个配置文件)

vim /etc/rc.d/rc.local

2、加入如下启动命令
/usr/bin/svnserve -d -r 你自己svn工程目录

比喻我的是test 工程是 /svn/test

/usr/bin/svnserve -d -r  /svn/test

注意你的rc.local 必需要有执行脚本权限 所以需要 chmod +x rc.local 。这个是rc.local注释说明。

我自己的阿里云服务器这个文件是没有执行权限的

 

nohup 命令日志解决方案

因为nohup 会把输出写到日志文件,但不会自动新建日志,那么这样日志文件可以无限增大,所以这个不是我自己想要的。

如是百度了一下,自己学着写了一个定时命令

cp /root/wx/wx3/nohup.out /root/wx/wx3/back/logfile.`date -d yesterday +%Y%m%d`.log; cat /dev/null > /root/wx/wx3/nohup.out
cd /root/wx/wx3/back; find ./ -mtime +7 -exec tar cvf logfile.`date -d yesterday +%Y%U`.tar {} \; ;find ./ -mtime +91 -exec rm -f {} \;
复制nohup.out日志文件到back文件夹,并以昨天日志命名,然后清空这个nohup.out
然后对7天前日志文件进行压缩,并删除3个月前的所有文件(压缩文件)
crontab -e 编辑去执行脚本就可以了