Redis状态查看性能分析总结

Publish: July 4, 2020 Category: 运维 No Comments

作为一个广泛使用的缓存、消息队列、简单算法支撑基础组件,redis每一次大版本更新都会给我们带来惊喜。在写本文章的时候redis已经发布了6.0.5稳定版。后续会陆续分享一些使用redis实现各种算法的场景,本文主要讲述redis运维性能分析方面的实战总结。

一 查看redis运行状态

从如下几个方面来查看,info 命令有三种使用方式分别如下:

info 部分redis统计信息


info all 全部redis统计信息


info section 某一块的统计信息,其中section可以忽略大小写,例如: redis-cli info memory

通常情况下都是对某个块感兴趣,然后会对该块执行info 操作。










阅读剩余部分...

野生运维之:从运行的Docker容器中直接打包Docker镜像

Publish: May 16, 2020 Category: 运维 No Comments

用过Docker的朋友都知道,如果不使用dockerfile构建镜像,可能会随着我们的操作构建的镜像体积会呈现爆炸性增长。这是为什么呢? 这是因为Docker镜像的文件系统是层级结构,每执行一次构建都会将叠加在前置的文件系统上。docker运行的的时候只抽取有用的部分。

如果想直接从当前的容器中构建一个镜像是不是体积就很小了呢? 我做了如下尝试:使用容器打包镜像

  1. 进入容器根目录操作
#进入目录
cd /
#查看体积
du -sh ./*
  1. 删除无用文件
#各种rm rm -rf 操作, 这里一定要认证一点

阅读剩余部分...

LNMP下单独使用let's encrypt签ssl证书和nginx配置

Publish: April 13, 2020 Category: 运维 No Comments

lnmp本身支持自签证书,这里只说使用用acme.sh脚本单独签发证书。

lnmp环境由于修改了原生nginx的一些规则,需要稍作修改。本文只记录我自己签发证书过程。

安装acme.sh

curl https://get.acme.sh | sh

生成证书

lnmp 环境下做了部分配置变更,不建议直接使用--nginx方式验证和生成。


acme.sh --issue -d www.evenvi.com --webroot /home/wwwroot/www.evenvi.com/public/

证书安装

前面证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方.
注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化.
正确的使用方法是使用 --installcert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 例如:

acme.sh --installcert -d www.evenvi.com --key-file /home/wwwroot/www.evenvi.com/cert/key.pem --fullchain-file /home/wwwroot/www.evenvi.com/cert/cert.pem --reloadcmd "/etc/init.d/nginx reload"








阅读剩余部分...

mysql bin-log日志占满磁盘问题解决

Publish: April 7, 2020 Category: 运维 No Comments

开启MySQL binlog日志的服务器,如果不设置自动清理日志,默认binlog日志一直保留着,最终导致服务器磁盘空间被binlog日志占满,导致MySQL数据库出错。

正常情况下(磁盘没有被完全占满)我们按照此情况处理即可,直接修改日志过期时间,重启服务

/etc/my.cnf  #配置文件位置

expire_logs_days = 3  #自动删除3天前的日志。默认值为0,表示从不删除。

log-bin=mysql-bin   #注释掉之后,会关闭binlog日志

binlog_format=mixed   #注释掉之后,会关闭binlog日志

:wq!  #保存退出

如果磁盘已经完全被占满,这时候mysql服务可能起不来。
需要手动删除一部分日志数据。

比如我们的日志目录在:

root@iZ8vbbdf6epai4kh5einddZ:/usr/local/mysql/var#

删掉一个比较旧的日志文件

rm mysql-bin.000051
 
然后启动服务
/etc/init.d/mysql start

再用df命令看下磁盘空间

df -h

此方法只适用于单机部署下的mysql日志清理。集群请参考其他文章。

Nginx TCP端口转发和基于域名的HTTP流量转发

Publish: March 7, 2020 Category: 小技巧,运维 No Comments

开发过程中经常遇到这样的需求

  1. 需要基于某网关设备做负载均衡
  2. 内网中某台服务器提供外网访问服务
  3. 80端口流量区分

TCP端口转发

需求1、2归结起来说就是对TCP流量转发,nginx 原生支持tcp流量转发。

阅读剩余部分...