Monthly Archives: 十一月 2017

CentOS7系统服务脚本编写

    最近开始把玩CentOS 7,发现之前的部分服务启动脚本在新版OS中运行异常(报错),特意摸索了下,个人感觉7的服务自启动脚本编写非常简单方便。
# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx – high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
# systemctl status nginx.service 查看服务当前状态
# systemctl enable nginx.service 设置开机自启动
# systemctl list-units –type=service 查看所有已启动的服务

Continue reading »

Linux服务器后期添加单独swap配置说明

1、创建用于交换分区的文件:
# dd if=/dev/zero of=/mnt/swap bs=block_size count=number_of_block
注:block_size、number_of_block大小可自定义,比如bs=1M count=1024代表设置1G大小swap分区。
2、设置交换分区文件:
# mkswap /mnt/swap
3、立即启用交换分区文件
# swapon /mnt/swap
注:如果在 /etc/rc.local 中有 swapoff -a 需要修改为 swapon -a
4、设置开机时自启用 SWAP 分区:
需要修改文件 /etc/fstab 中的 SWAP 行,添加
# vim /etc/fstab
修改或添加如下行:
/mnt/swap swap swap defaults 0 0
注:/mnt/swap 路径可以修改,可以根据创建的 SWAP 文件具体路径来配置。
5、修改 swpapiness 参数
在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。
查看修改前为 0,需要在物理内存使用完毕后才会使用 SWAP 分区:
# cat /proc/sys/vm/swappiness
可以使用下述方法临时修改此参数,假设我们配置为空闲内存少于 10% 时才使用 SWAP 分区:
# echo 10 >/proc/sys/vm/swappiness
若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容:
# vim /etc/sysctl.conf
vm.swappiness=10
# sysctl -p

通过Redis Warning日志展开的学习探索

1、Redis aof持久化遇到Can’t open the append-only file: Permission denied:
这是因为Redis aof持久化生成的文件appendonly.aof默认为只读,首先基于安全考虑,个人建议redis数据目录赋权属组为redis(尽量避免使用root),644权限。
2、WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.
解决方法:
# echo 1 >  /proc/sys/vm/overcommit_memory  无需重启临时生效
# echo “vm.overcommit_memory=1” >> /etc/sysctl.conf  && sysctl -p永久生效需重启服务器,一般与临时方法一起执行。
overcommit_memory参数说明:
设置内存分配策略(可选,根据服务器的实际情况进行设置)
/proc/sys/vm/overcommit_memory
可选值:0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何;
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存。

Continue reading »