未整理

今天在安装 APP 进行调试的时候,发现一直安装不上,显示: Too many active sessions for UID xxx,一开始还以为是调试的 APP 的问题,但是试了其他 APP 也不行。

从往上搜索了很多的方法都不行,估计都是复制粘贴的答案,不得已只能自己去源码中寻找答案。

日志统计方法

统计在某个时段API的请求量

示例:统计 2022/08/12 日凌晨3点的API量并根据请求量进行排序

grep "12/Aug/2022:03" access.log | awk '{print $7}' | awk -F\? '{print $1}' | sort | uniq -c | sort -nr

示例:统计 2022/08/12 日凌晨3点的接口 status 中根据 m 值参数去重统计

Mysql 慢查询

什么是慢查询

顾名思义,执行很慢的查询,那很慢的标准是什么?

我们可以通过查询 long_query_time 变量查看当前数据库慢查询的阀值是多少;

show variables like 'long_query_time';

mysql_long_query_time

但是数据库默认是把慢查询日志给关闭的,那怎么知道现在数据库慢查询是开还是关呢?

Docker 操作相关指令

拉取镜像

示例

docker pull python:3.7

查看镜像

docker images ps

把镜像启动为容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常见示例:

docker run -itd --name aminglinux -v /data:/data -p 5000:5000 centos

docker run 参数说明:

-i        # 以交互模式运行容器,通常与-t同时使用
-t        # 为容器分配一个终端(tty),通常与-i同时使用
-d        # 以守护进程(daemon)的方式运行容器并打印容器ID
-p        # 用于把容器的端口映射到宿主机上,用法如:docker run -d -p 5000:5000 centos 表示把容器的5000端口映射到宿主机的5000端口,左边是宿主机监听端口,右边是容器监听端口
-v        # 用于把容器的数据卷映射到宿主机上,用法如:docker run -itd -v /data:/data centos bash 表示把容器的/data目录映射到宿主机的/data目录,左边是宿主机的目录,右边是容器里的目录,详细用法
--name    # 自定义容器名

进入容器命令

方式一:

Centos Docker 安装

安装docker

确认系统是否支持安装

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker

uname -r

输出类似: 3.10.0-957.1.3.el7.x86_64

使用 root 权限登录 Centos

sudo yum update

# 卸载旧版本,如果之前安装过的话
sudo yum remove docker docker-common docker-selinux docker-engine
# 安装需要的软件包, yum-util 提供 yum-config-manager 功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置yum源
# 国外镜像
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 阿里镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r

# 安装 docker
# sudo yum install docker-ce

# 由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
sudo yum install docker-ce-17.12.0.ce

# 启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker

# 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version

# 输出如下表示成功
Client:
 Version:       17.12.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    c97c6d6
 Built: Wed Dec 27 20:10:14 2017
 OS/Arch:       linux/amd64

Server:
 Engine:
  Version:      17.12.0-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   c97c6d6
  Built:        Wed Dec 27 20:12:46 2017
  OS/Arch:      linux/amd64
  Experimental: false

启动 docker 时如出现 Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: xxxx 错误,那可能是 /var/run/docker.sock 无权限,修改权限即可

Emqx 压力测试

官方说明

非常简洁的说明了安装步骤:

git clone https://github.com/emqx/emqtt-bench
cd emqtt-bench

make

当然,如果想直接使用已经编译好的二进制文件,官方也有提供:

如果是自己编译时,需要安装 erlang 环境。

erlang 环境安装(编译)

安装包下载地址:http://erlang.org/download/

Pip 安装

官方安装

https://pip.pypa.io/en/stable/installation/


python -m ensurepip --upgrade

# get-pip.py
wget https://bootstrap.pypa.io/get-pip.py
# 如果是 2.7 版本的 python,下载地址为
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
# 执行安装
python get-pip.py

pip -V

AWS 命令操作记录

CLI 说明链接

https://docs.aws.amazon.com/cli/latest/reference/

CLI 工具安装

Linux 下安装:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

官方详细参考:

https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html

通过命令确认是否安装成功:

aws --version

AWS 配置

执行:

aws configure

AWS Access Key ID [None]: xxxxxxx AWS Secret Access Key [None]: xxxxxxx Default region name [None]: xxxx Default output format [None]: json

Emqx安装和配置

做过 aiot 的同学,必然对 mqtt 协议不陌生,那如何基于 mqtt 有一套自己的通信服务,但是对于大多数的公司来说,自己开发一套这样的服务,太费人力资源,时间上也拖的太长,那有没有什么现成的方案?

Logback 日志配置说明

从 Log4j 爆出漏洞以来,我们的日志框架就切换到了 Logback,毕竟出自同一个创始人之手,大部分的配置很相似,那么下面简单介绍下 Logback 和 Spring 进行集成时的配置;