Linux
Apr 9
最近看到一个网友在问(请问一下,每天3~4W次的读写,用什么样子的配置比较好,麻烦推荐一个配置,谢谢 MySQL5.7的.)看着应该是一个比较简单的场景,不过笔者通过这问题在想云MySQL不同的配置他的性能究竟如何?如果推荐了这个用户配置后,他的业务又涨了该如何再选择其他的配置? 所以这里我们可以来测试一下云MySQL的性能,从测试数据上看是否可以更好的解答此用户的问题。

本文内容提供了B站视频:https://www.bilibili.com/video/BV1vt4y1U71S

我们使用《高性能MySQL》第二章推荐的工具sysbench(http://sysbench.sourceforge.net)这是一款开源的多线程系统基准测试工具,可以用于测试CPU、内存、磁盘I/O线程和数据库的性能,目前数据库支持MySQL、Oracle和PostgreSQL等常见的数据库。

1.腾讯云MySQL性能测试结果
2.sysbench安装与使用介绍

腾讯云MySQL性能测试结果
以下笔者测试了腾讯云MySQL5.7版本的不同配置服务器对应的指标。为了简化介绍用户场景这里笔者将不同的规格分为三个等级分别为初级、中级和高级(笔者个人的定义),可以看到初级的配置基本可以满足网友的需求,如果用户后续业务增长也可以按照以下做参考。

点击在新窗口中浏览此图片

TPS(Transactions Per Second)每秒事务数。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

点击在新窗口中浏览此图片

TPS计算方式
QPS(Queries Per Second)每秒查询。是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器(比如是读写分离的架构,就是读的服务器)在规定时间内所处理流量多少的衡量标准。

以上测试过程中的参数见在线表格。(数据库性能测试(腾讯云 ))https://docs.qq.com/sheet/DTmNWZWdzdFJJWERR?tab=nw95wo&c=O10A0C0

sysbench安装与使用介绍
我们继续来看一下sysbench如何安装,sysbench不同的版本一些细节参数是有一些却别的,这里我们使用的是sysbench 1.1.0-bd4b418版本以下为安装步骤:


#  yum -y install  git
# git clone https://github.com/akopytov/sysbench.git
# yum -y install make automake libtool pkgconfig libaio-devel
# yum -y install mariadb-devel
# ./autogen.sh
# ./configure
# make -j
# make install


源码目录中提供了lua脚本,各脚本功能如下,关于lua脚本内容介绍见(https://blog.csdn.net/L835311324/article/details/98618821)

测试方法
sysbench 测试分为三步(prepare -> run -> cleanup):

1.准备数据 (prepare)
sysbench ./oltp_read_write.lua --mysql-host= --mysql-port=3306  --mysql-user=root --mysql-password='密码'  --mysql-db=test  --tables=4 --table-size=100000  --threads=128  prepare

2.测试数据(run)
sysbench ./oltp_read_write.lua --mysql-host=IP --mysql-port=  --mysql-user=root --mysql-password='密码'  --mysql-db=test  --tables=4 --table-size=100000  --threads=128 --report-interval=3  --time=60 run

3.清理测试数据(cleanup)
sysbench  ./oltp_read_write.lua --mysql-host=IP--mysql-port=3306  --mysql-user=root --mysql-password='密码'  --mysql-db=test --tables=4 --table-size=100000  --threads=128  cleanup

参数介绍:

--mysql-host=  MySQL服务器IP
--mysql-port=  端口
--mysql-user= 账户名
--mysql-password= 密码
--mysql-db= 数据库名
--tables=表数
--table-size= 表行数
--threads= 进程数
--time = 限制测试时长(秒)



以下是测试数据后的结果



Initializing worker threads...
Threads started!
[ 3s ] thds: 128 tps: 369.44 qps: 7947.23 (r/w/o: 5629.62/1538.08/779.53) lat (ms,95%): 502.20 err/s: 0.00 reconn/s: 0.00
[ 6s ] thds: 128 tps: 414.71 qps: 8288.14 (r/w/o: 5823.90/1633.49/830.75) lat (ms,95%): 590.56 err/s: 0.33 reconn/s: 0.00
[ 9s ] thds: 128 tps: 451.33 qps: 9002.31 (r/w/o: 6300.32/1798.33/903.66) lat (ms,95%): 404.61 err/s: 0.67 reconn/s: 0.00

SQL statistics:

    queries performed:
        read:                            59108        # 读
        write:                          16879        # 写
        other:                          8441          #其他操作总数(SELECT、INSERT、UPDATE、DELETE之外的操作,例如COMMIT等)
        total:                          84428 .        #全部总数
    transactions:                        4219  (414.71 per sec.) .        #  tps 总事务数(每秒事务数)
    queries:                            84428  (8299.00 per sec.) .      # QPS(每秒读写次数)
    ignored errors:                      3      (0.29 per sec.)
    reconnects:                          0      (0.00 per sec.)
Throughput:
    events/s (eps):                      414.7143
    time elapsed:                        10.1733s
    total number of events:              4219
Latency (ms):
        min:                                  36.82
        avg:                                  305.95
        max:                                  809.03
        95th percentile:                      493.24 .      # 超过95%平均耗时
        sum:                              1290817.07
Threads fairness:
    events (avg/stddev):          32.9609/2.49
    execution time (avg/stddev):  10.0845/0.03



更多参考
1. sysbench参数和一些测试案例 https://blog.csdn.net/weixin_44218035/article/details/89424166
2. 什么是TPS,什么是QPS 他们区别是什么 。https://www.cnblogs.com/uncleyong/p/11059556.html
3. 《高性能MySQL》第二章
Apr 3
本文简书地址:https://www.jianshu.com/p/878e6201ef45

最近看到一些网友经常会问,购买了云服务器、云MySQL或类似的云产品后无法远程登录应该如何排查?这里笔者以排查云服务器问题为例,整理了一下问题排查思路分为三个过程分别为客户端确认,腾讯云控制台确认和登录服务器确认来介绍(注:按照问题可能的原因进行排序从高到低)同时推荐一些好用的排查问题工具供大家参考。




客户端确认

网络质量排查

首先确认自己的网络环境与云服务器的连接链路网络质量是否有问题,这里通常通过ping命令来确认。以下购买的是一台腾讯云的美国云服务器, ping -c参数代表发送包次数,其中截图1代表云服务器收到icmp包到返回的响应时长单位是毫秒,2代表是否有丢包也就是我发了3个icmp包响应也是三个代表没有丢包。

点击在新窗口中浏览此图片
(ping远程服务器的结果,图1)

从响应时长来看网络环境还是可以的。但这并不代表其他人访问目标云服务器(blog.puppeter.com)就没有问题,以下图鉴两个工具:

1.https://ping.huatuo.qq.com/  腾讯提供的工具叫“华佗诊断分析系统” 一款腾讯云提供的在线网页检测系统,目前只能检测域名的网络质量。大概工作原理是客户提交检测域名后,通过腾讯云的全国服务器去连接用户的域名测试这里的网络质量,如以下截图2,可以看到从各个域名连接blog.puppeter.com的网络质量还是可以的最高的549毫秒。

点击在新窗口中浏览此图片
(华佗诊断分析系统,图2)

2.https://www.ipip.net/ip.html 一款网上找到的质量检测工具支持输入IP地址,该网站会通过中国和海外的服务器去连接用户输入的IP并显示这里的网络质量,见图3。

点击在新窗口中浏览此图片
(ipip.net 网络质量监测工具,图3)

但毕竟ping命令发送的是icmp包,工作在“网络层”很多运营商或服务商的设备会封锁icmp包,所以并非网路未回报自己服务器到云服务器间网络就有问题, 还要继续通过telnet命令检测一下端口连通性。

测试端口连通性

通过telnet来确认,telnet工作在“传输层”可以确认端口的连通性,见图4代表本机到远程服务器的80端口可以正常联通。另外推荐一个专业的工具nmap 扫描,可以扫表指定IP或域名的服务器所开放的端口, 关于nmap工具使用案例可参考https://www.cnblogs.com/nmap/p/6232207.html,这里就不再介绍

点击在新窗口中浏览此图片
(telnet 测试端口连通性,图4)

同样本机到远程服务器端口连接成功并不代表其他人访问就没有问题,这里推荐一个在线检测工具http://port.ping.pe/ 可以从全球服务器同时在线实时检测端口的连通性,见截图5。可以更准确的帮助您定位到问题的所在。

点击在新窗口中浏览此图片
(在线端口检测工具,图5)



腾讯云控制台确认

安全组策略确认

确认本身网络到云服务器的网络质量和端口连通性后,如果仍然有问题就需要来腾讯云控制台继续排查。 大部分用户是因为购买云服务器后没有开放安全组(腾讯云的防火墙)所致,这里可以通过腾讯云提供的工具(https://console.cloud.tencent.com/vpc/helper?rid=4)来检测安全组的安全规则,通过图6我们可以看到指定实例的安全组规则,如果有未放通的规则可以点击下面按钮一键放通。

点击在新窗口中浏览此图片
(腾讯云安全组检测工具,图6)

腾讯云排查分析工具(工具地址:控制台右上角-> 工单-> 云服务器cvm->云服务器连接不上->工具位置)

很多服务器连接失败还有一些情况就是有服务器高负载或网络流量打满或被DDos攻击从而被封等,腾讯云提供了更详细的排查分析工具见(https://console.cloud.tencent.com/workorder/category?level1_id=6&level2_id=7&source=0&data_title=%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8CVM&step=1) 工具检查后的效果如下,可以看到腾讯云的工具会帮我们生成一份详细的报告具体的告诉我们问题在哪如何解决,见图7。

点击在新窗口中浏览此图片
(腾讯云工具报告,图7)




登录服务器
通常经过以上的客户端排查和腾讯云控制台排查可以解决90%以上的问题所在,如果仍然有问题这时就需要登录服务器排查了。 通过服务器排查通常两种方式:

1. 通过系统命令查看开放端口情况(netstat -tnl),见图8。

点击在新窗口中浏览此图片
(netstat命令确认本机端口监听情况,图8)

2. 除了腾讯云自带防火墙外,云服务器(Linux)也会带自身防火墙(iptables),可以通过"iptables -L -nv --line"命令来确认本机防火墙规则是否合理见图9,如果不确认可以通过"iptables -F" 清空本地防火墙规则来解决(需要慎重执行本命令)。

点击在新窗口中浏览此图片
(iptables命令确认本机防火墙规则,图9)

以上的内容同时提供了B站在线视频演示教程详细见( https://www.bilibili.com/video/BV1564y1u72Z ),如果你喜欢本博客内容也欢迎点赞、关注、加评论。

End...
Mar 21
简书地址:https://www.jianshu.com/p/da76dbf9c667

最近在使用腾讯云主机的SDK(https://cloud.tencent.com/document/sdk) 发现腾讯云的SDK只支持5.6.33以上版本,而我购买的云主机是CentOS 7.6 64位的发行版本而通过此版本安装默认版本就是php5.4.16版本,本来想着通过yum update直接升级一下就ok但实际操作并非想象这么简单。
点击在新窗口中浏览此图片
图 1
经过测试,我整理了一个在腾讯云主机上测试过成功升级php的步骤如下:

1. 安装源


# yum -y install epel-release.noarch yum-utils
# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm


2. 查看yum中当前php信息

# yum info php

点击在新窗口中浏览此图片
图 2
3. 开启Remi-php71 源

# yum-config-manager --enable remi-php71


4. 再次查看php信息

# yum info php

点击在新窗口中浏览此图片
图 3
4. 最后执行以下命令,并确认你的php版本

# yum -y install php
# php -v

点击在新窗口中浏览此图片
图 4


可以愉快的使用腾讯云SDK了。
Feb 24
如何通过秘钥方式登录腾讯云的方法视频介绍见:https://www.bilibili.com/video/av89018334?p=3 ,以下为文字版本Linux和Windows通过秘钥登录远程服务器。


Linux通过秘钥登录方式
Linux/macOS 通过秘钥方式登录相对比较简单,直接在腾讯云下载秘钥文件 (https://console.cloud.tencent.com/cvm/sshkey)
譬如秘钥文件为key.pem,优先添加权限

chmod 400 key.pem

最后登录。 -i 接秘钥名,服务器账号名@IP地址 , -p 远程服务管理端口

ssh -i "key.epm"  root@192.168.0.77 -p 22



Windows通过秘钥登录方式
1. 到Windows服务器上,准备好登录Linux的秘钥文件,如果没有可以从 (https://console.cloud.tencent.com/cvm/sshkey) 下载
2. 下载putty.exe 和 puttygen.exe ,推荐到官网网站下载(http://www.chiark.greenend.org.uk/~sgtatham/putty/)相对比较安全
     2.1 putty.exe用于在Windows上登录远程Linux服务器 。
     2.2 puttygen.exe ,默认腾讯云提供的证书文件不能直接用于putty.exe登录,需要通过此工具进行转换。
3. 先转换腾讯云提供的秘钥文件,找到load加载秘钥文件,提示以下内容。
点击在新窗口中浏览此图片
4.转换成功后,存为私钥文件。
点击在新窗口中浏览此图片
5.打开putty.exe找到Connection->SSH->Auth 并上传刚转换的私钥文件。
点击在新窗口中浏览此图片
5. putty.exe找到Connection->Data 添加登录名
点击在新窗口中浏览此图片
6. 回到putty.exe 的Session,添加服务器IP并确认远程Linux的管理端口是否为22,确认没有问题点击Open 成功登录
点击在新窗口中浏览此图片



参考资料
1.腾讯云SSH秘钥文档 https://cloud.tencent.com/document/product/213/6092
2.亚马逊登录文档 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html
3.RSA加密算法原理 https://www.bilibili.com/video/av26639065?from=search&seid=5133926013722670718
Jun 22

vim配置文件 不指定

djangowang , 09:43 , Linux , 评论(0) , 引用(0) , 阅读(388) , Via 本站原创
set number
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set autoindent
set fenc=utf-8
set guioptions-=r
set guioptions-=L
set guioptions-=b
set background=dark
set fenc=utf-8
set paste
分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]