Linux企业生产常见问题集合(一)答案_Java

    之前民工哥发过关于企业生产问题集合一,很多小伙伴们在后台问我,民工哥啊,后面会有答案出来吗?什么时候发答案出来,有时候我也在想,我给的答案不一定是正确的,是不是有时候也会“误导他人”,但是终究我出的题,答案还是要分享出来的,这么,接下来就公布下民工哥的答案,同时欢迎各位小伙伴们在文未留言发表自己的答案一起讨论。



Linux企业生产常见问题集合(一)答案_Java_02

1、如何设置tomcat-8.5.9 JVM内存大小,写出设置步骤

JAVA_OPTS="$JAVA_OPTS -Xmx2048m -Xms1024m -Xss512k -XX:NewRatio=4 -XX:SurvivorRatio=4"

     -Xmx2048m #最大可用内存

-Xms1024m #最小可用内存(最大最小可设置成相等值)

-Xss512k #每个进程的堆栈大小


2、nginx代理后端主机,客户端访问时页面与日志都是出现504 gateway timeout提示信息,如何解决?写出步骤

   先说下出现的原因吧,出现这类情况原因很多

   总结三大类:

   1:网络问题

   2:代码问题

   3:配置问题

   解决方法如下:

   location / {

       ....................................

        proxy_pass http://10.0.0.101:9563

        proxy_connect_timeout 300 ;      

        proxy_read_timeout 300;

        proxy_send_timeout 300;

     }

     #通过设置proxy连接超时时间间隔防止出现504 500等其它错误,默认超时时间为60S


3、如何检查两端文件是否同步完成,并通过配置zabbix来展示和监控,写出思路与具体配置步骤

 这个题没有绝对的答案,只有看谁的实现方法简单、配置少、而又达到目的

 我的解决思路如下:

 1:同步客户端目录定时统计目录与文件数 find ./ |wc -l > file.log

 2:实时同步file.log到同步的服务端,同样服务端定时统计目录与文件数 find ./ wc -l > rsfile.log

 3:用脚本来判断两个文件中数字大小是否相同,相同就打印ok >result.log,否则打印error >result.log

 4: zabbix配置就只需要定时检查result中ok的个数是否为1,不是1就报警

 #如果小伙伴们有好的思路与方法,请在文未留言


4、使用free -mh发现cached大小为4G,内存可使用量只有5M,请问如何清除,写出步骤并注释

####手工释放cached 占用的内存

清除前使用sync命令将所有未写的系统缓冲区写到磁盘中

To free pagecache:  echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes:  echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:  echo 3 > /proc/sys/vm/drop_caches

#手工释放完成后,改回默认0:echo 0 > /proc/sys/vm/drop_caches

#################定时释放脚本#################

#!/bin/bash

used=`free -m | awk 'NR==2' | awk '{print $3}'`

free=`free -m | awk 'NR==2' | awk '{print $4}'`

echo "===========================" >> /var/log/mem.log

date >> /var/log/mem.log

echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log

if [ $free -le 1000 ] ; then

   sync && echo 1 > /proc/sys/vm/drop_caches

   sync && echo 2 > /proc/sys/vm/drop_caches

   sync && echo 3 > /proc/sys/vm/drop_caches

   echo "OK" >> /var/log/mem.log

else

  echo "Not required" >> /var/log/mem.log

fi

########################################


5、创建与调整SWAP分区的方法,请写出具体步骤

####创建与调整SWAP分区的方法

###方法1:创建分区文件 

dd if=/dev/zero of=/var/swap bs=1024 count=5G

mkswap /var/swap

swapon /var/swap

加入/etc/fstab

/var/swap  swap swap defaults 0 0

###方法2:调整正在使用的分区大小

#关闭分区

swapoff /dev/mapper/VolGroup-lv_swap

#增加大小

lvm lvresize /dev/mapper/VolGroup-lv_swap -L +25000M 

#格式化分区

mkswap /dev/mapper/VolGroup-lv_swap

#启用分区

swapon -va


6、如何设置redis开启远程访问

cd /application/redis/

vim redis.confg

bind 127.0.0.1—————> #bind 127.0.0.1

protected-mode yes—————> protected-mode no

重启服务


7、登陆mysql数据库进行操作,出现Too Many Connections的错误提示,如何解决?写出配置步骤

vim /etc/my.cnf

max_connections = 500 #视具体情况调整值的大小

wait_timeout=5

/etc/init.d/mysqld restart