- 博客(47)
- 收藏
- 关注
原创 nginx+php-fpm整体上线k8s集群之后虚拟内存不断上涨原因排查
为了可以更好的管理我们的lnmp集群,打算将原有的php环境整体打包成一个镜像然后上到k8s容器,这样可以不仅使用到k8s的快速扩缩容和管理的好处,而且让机器资源能更好被利用,减少机器数量。
2023-02-19 15:26:20 3009
原创 如何避免go的map竞态问题
大家使用go的时候,可能会碰到对map进行并发操作的场景,如何避免因为并发操作map而导致的报错同时又要保证高性能呢,这篇文章可以让你豁然开朗
2023-02-05 18:16:07 842 1
原创 数据表创建想法总结
背景最近要上线一个新业务,因为涉及到存储数据,所以就需要建多一张mysql数据表,但是把建表语句提交上去之后,就被退回来了,大佬说的几句话确实值得深思因为后续会有后台来查询这个数据表的数据,所有我的想法是1、哪些字段用于搜索查询的就加普通索引2、连表查询中用于 on 的字段就加普通索引修改建议前提其实我们很多数据表里都会有个关于状态的字段,这个字段可能出现的值其实并不多,一般都是 开 和 关两种状态,如果给这种字段加上普通索引,效果并不大,因为如果数据表里是1000条数据,.
2020-07-22 09:33:23 680
原创 喜大普奔,苹果可以推送退款通知了
背景最新的WWDC2020苹果爸爸终于添加一个功能,就是可以实时的推送退款订单号给开发者,以便开发即使针对玩家退款做处理,减少损失,这个功能一出,我也第一时间研究了一番,这里也跟大家分享下如何配置苹果爸爸给出推送退款的功能,是 server to server,所以我们需要将接收退款通知推送的接口填入苹果后台位置如下只要这个接口请求的时候不会报404,503,500这一类的错误,正常返回200就行数据结构我这边已经抓到了苹果退款的数据,数据格式如下,供大家参考,具体字段意思.
2020-06-29 23:31:43 8941 30
原创 简述TIME_WAIT的危害
背景TIME_WAIT 是出现在TCP第四次挥手的时候,客户端会有 2*MSL 时间等待,看看服务端是否因为没有收到客户端的断开确认请求而导致重发断开的请求,这个时间是60S如何导致出现问题一台机器建立的连接数是有限的,一般都是有个阈值,超过这个阈值,就会无法建立链接,导致访问失败如果一台客户端机器,有脚本在跑,这个脚本上需要处理大量的数据,并且逻辑里有好几个RPC循环调用,这样就会产生大量的TIME_WAIT,因为for循环处理数据是常用手段,如果有100万数据,每个数据需要请求5个PRC
2020-05-14 21:41:26 465
原创 使用php连接kafka
使用RdkafkaRdkafka是PHP连接kafka的扩展,跟mysqli,redis同理rdkakfka 文档地址:https://arnaud.le-blanc.net/php-rdkafka-doc/phpdoc/book.rdkafka.htmlHigh-level consumer 是高级消费者,Low-level consumer 是低级消费者模式两者区别是,高级...
2020-04-05 17:16:05 1455
原创 使用kafka
简介Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。并且kafka通过zookeeper来管理服务器和集群拓扑,相当于管理了kafka的各个节点组件,所以要使用kafka,是要搭配着zookeeper来使用的如何搭建1、安装kafka先安装安装librdkafka库git clone https://github.com/ede...
2020-04-05 17:11:44 244
原创 如何快速排查机器负载过高的问题
问题机器突然莫名其妙的很慢,负载很高,这时候需要如何排查问题出现在哪步骤1、首先使用 top ,查看整体的机器情况2、从上一步可以看出cpu占用高,用户态和内核态都很高,负载也高,初步判断是否有脚本在跑,吃cpu资源,但是图中的在跑着的程序,%cpu这一项都不是很高,所以有点蹊跷然后查看机器的读写情况,看看是不是由很多读写操作3、使用sar -d 1 10 查看磁盘读写...
2020-03-22 16:57:26 3572
原创 连表查询的优化思路
问题1、如下图,虽然图中的type,有个表没用到索引,但是这个表数据很小,才被检索了115条数据,而最多的那张表也只被检索了2108条数据,而且还用上索引了,但是这条sql执行了298s,如何优化解决方案1、给那个没用到索引的数据表加索引原理这里就涉及到连表查的时候会用到的算法,笛卡尔积顾名思义, 这个概念得名于笛卡儿. 在数学中,两个集合 X 和 Y 的笛卡儿积(Ca...
2020-03-21 17:07:13 1465
原创 实现mysql的主从同步
准备因为都是自己玩玩,所以肯定是建议大家安装虚拟机,本机安装mysql5.7.6,然后再用docker 安装mysql5.7.6。做主从同步,mysql的版本最好是同一个版本,这也是官网建议的。上面步骤准备完毕,就相当有两天mysql设备了操作1、编写好配置文件主机的my.cnf[mysqld]port=3306datadir=/usr/local/mysql/data...
2020-02-18 23:17:23 140
原创 在linux上借助docker安装mysql
linux版本[root@www ~]# uname -aLinux www.yzb.com 3.10.0-1062.9.1.el7.x86_64 #1 SMP Fri Dec 6 15:49:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux安装步骤1、安装docker一般原始的yum源并没有docker安装包,先添加yum的源yum i...
2020-02-02 16:22:20 228
原创 centos7 源码安装mysql5.7.26
安装步骤如下1、首先去mysql官网下载,地址 https://downloads.mysql.com/archives/community/选择如下2、上图的 Download按钮右键保存链接,到自己的服务器的下载文件夹中wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.0.15.tar.g...
2020-02-01 21:03:57 285
原创 TCP握手流程和https数据传递流程
概念TCP:一种传输协议,处于OSI模型里的传输层,而下一层的网络层是IP协议,是做网址寻址的工作https:https和http同属于OSI模型里的应用层,不同的是,https传输是http传输中加了ssl通道,安全性更高,但是耗性能流程图图解首先是tcp的三次握手,然后是建立了tcp之后,开始https证书交互,最后是断开连接,tcp的四次挥手TIME_WAI...
2020-01-29 20:17:53 567
原创 nginx和php如何协同工作
背景最近正在搞nginx和PHP安装,顺便也了解了解一个用户请求从浏览器到nginx再到php解析出来返回到浏览器的过程原理讲解其中 nginx服务器启动自身的fast-cgi模块流程如下其中,location模块有两种模式对于nginx.conf文件结构如下...
2020-01-28 19:49:32 235
原创 xdebug学习
xdebug是什么xdebug是PHP的一个插件,可用于分析PHP程序的性能以及变量,这样就可以不在代码里各种echo,var_dump来调试代码xdebug的安装上面也说过,xdebug是PHP的插件,自然也是插件的安装方法,不过xdebug的版本需要注意具体安装的教程地址:https://blog.csdn.net/alan8865/article/details/813312...
2020-01-27 23:31:44 373
原创 客户端是如何验证https证书的
背景最近要做晋升考官,得问点原理的东西,想问下https这种网络相关的问题,突然发现自己之前看的快忘光了,这里记录一下,以防止自己都不懂的尴尬流程机构颁发的数字证书内容主要有两个:数字签名和服务器公钥这里的服务器公钥是什么呢,比如我注册了一个www.abc.com 这个域名,我想别人用https也能访问,就得去找个机构给我做一个签名证书,我需要自己用服务器生成一个公密钥,然后给这个...
2019-12-31 13:36:08 3884 2
原创 使用strace追踪PHP cli模式下,error.log无法写入的问题
背景最近写了一个脚本来跑数据,但是发现有时候这个脚本是没有报错信息,有时候又有,直接运行脚本的话,php的错误信息被打印在控制台上,但是却没有写入error.log,有点郁闷的是,PHP的配置里是如下图也就是说日志是会记录的,而且错误日志是不会直接打印出来的,那为什么会出现日志写不进去,错误信息却被打印在控制台上呢解决路径使用 strace 这个命令追踪,最近也是从部门里的技术大佬...
2019-12-29 16:58:14 260
原创 Linux系统函数学习
背景为什么突然想要学习linux系统函数呢,日常工作有没用到,那当时是准备晋升高工和跳槽了,正所谓 面试造火箭,工作拧螺丝。工作中螺丝拧久了,就忘了怎么去提升了,毕竟每天就用那点东西,其他都不会想去了解。这里自己整理了一下使用strace命令查到的系统函数的使用,下次再写一篇关于strace命令使用方法函数使用void* mmap(void* start,size_t length,i...
2019-12-22 17:07:59 177
原创 源码编译php7.4问题总结
背景业务代码写多了,也就想搞搞运维知识,刚好有空,借助这段时间,再搭建多一个lnmp环境,虽说这是PHPer比较入门的技能,不过太久没搞,并且每次我源码编译PHP,就会出现一大堆问题,也是怕了,这些也遇到一个解决了好久的问题,这里记录一下问题描述nginx无法解析PHP,访问inde.php文件返回空白,也没有报错问题排查1、是不是nginx没有配置对,首先排查nginx.co...
2019-12-19 00:19:25 1195
原创 【算法心得】求最大子序列之和
上面就是题目内容首先这种需要不断用当前累加值和之前的最大的累加值做比较的题目,一般都是用动态规划来求解的,因为你需要不断的修改结果的最优解,最后得出最好的答案,这道题的动态规划应该如何写呢1、因为需要不断用当前累加值和之前的最大的累加值做比较,所以需要两个变量,一个是当前值sumNum,一个是历史最大值sumMax2、sumNum一个个数累加,如果碰到累加之后还小于当前数,就直接抛...
2019-12-01 15:05:53 195
原创 如何排查进程假死
首先,先找出那个假死的进程然后查看状态,用ps命令ps aux|head -n 1;ps aux|grep process_niubi_hh.php这里说个小技巧,就是如何展示ps的表头,可以看出我的命令里其实是两条命令组成,第一条是获取头一条,然后加个分号,最后再把需要获取内容的命令拼上去,也就是说一个分号,就能将两条命令的内容拼在一起了第二,查看这个进程的打开了哪些连接ll...
2019-11-27 17:30:28 5765
原创 训练模型时,解决方差过大的方法
如果我们选好一种算法是刚好能应对我们的数据分析的,那么从算法层面,我们需要解决的问题主要集中在如何减少方差过大的情况,因为这会减低我们的算法的泛化能力,主要有以下几点方法降低模型的复杂度 减少数据维度:降噪 增加样品总数 使用验证集 模型正则化...
2019-04-23 23:19:40 3437
原创 对模型进行交叉验证
什么是交叉验证将训练数据集分为abc三组,通过ab训练出的模型被c验证,通过bc训练出的模型被a验证,通过ac训练出的模型被b验证,然后看在哪些超参数下,这个模型在3组验证中效果最好,那就选用该超参数组合为什么要用到交叉验证因为如果选用训练数据集训练模型,测试数据集来测试模型,那么有可能训练出来的模型会对测试数据集过拟合,因为我们一直是在针对测试数据集来调参,从而无法获得最佳的模型...
2019-04-21 00:06:17 1872
原创 多项式回归
什么是多项式回归相对于线性回归y=ax+b这种形式,多项式回归是,有高幂的项出现如何计算多项式回归其实多项式回归和线性回归是有很大联系,通过类比的方式线性回归 y=ax+b 可以看做是一个特征值x对应着一个标签y多项式回归 可以看做是[, x]两个特征值对应着一个标签y所以,使用多项式回归的思路1、先增加特征值,以2次幂为例,就增加多一列到已有的特征值中,组成[, x...
2019-01-20 17:11:12 541
原创 主成分分析法
概念主成分分析法就是提取样本的特征值,将多个特征转化为少数几个特征,以便达到降维样本的目的,这样可以简化样本的数据,更容易理解以及在平面表示用法1、降维数据,数据压缩,方便计算,也方便理解和在三维,或者二维平面画图2、降噪,能减少数据中一些非必要的噪点的影响原理如下图,给出蓝色点,需要找出一条向量,跟所有的点的距离是最小的,同时所有点映射在这个向量的点,距离是最大的,因为只...
2018-12-19 23:33:19 552
原创 mysql联合索引
mysql联合索引的使用命名规则:表名_字段名1、需要加索引的字段,要在where条件中2、数据量少的字段不需要加索引3、如果where条件中是OR关系,加索引不起作用4、符合最左原则以下是我的建表语句CREATE TABLE `test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user_name` varc...
2018-11-13 10:15:26 1222
原创 Scrapy 如何将爬虫到的数据存入mysql
数据流向之前有记录Scrapy的数据流向,Scrapy数据存储的这条线如下图代码需要编辑3处,一个是spiders,一个pipline,一个是settingspiders示例 piplines代码示例 setting开启pipline,只需要把注释打开就行这样就完成scrapy存入数据库的操作...
2018-10-11 13:29:43 788
原创 随机梯度下降法以及梯度下降法调试
什么是随机梯度下降法就是从现有的数据中随机取出一部分数据进行运算,相对于批量梯度下降法每一次运算就要全部数据参与计算,随机梯度下降法可以在损失极小的精度下,换取较大的速度提升如何随机就是学习率会随着循环次数的增加而变化,也就是的值会变,具体取值约为 5/(50+i) i为当前循环的次数,这样每一次下降的速度也是随着循环的次数增加而减少,符合梯度下降的规则,越靠近最优解,下降就越快代...
2018-10-05 23:32:46 454
原创 多元线性回归用梯度下降法来训练模型
多元线性回归训练分为两种,一种是公式训练,一种是梯度下降法训练公式训练我已经记录了,具体可以看https://blog.csdn.net/qq_41342577/article/details/82320174梯度训练法原理 https://blog.csdn.net/qq_41342577/article/details/82718519如何使用梯度下降法来求出所需参数损...
2018-09-24 22:57:39 2175
原创 scrapy入门
如何安装scrapy最简单的是使用pycharm工具1、第一步2、第二步3、第三步至此就能使用scrapy了,当然也可以使用python自带的pip install命令,安装教程:https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/install.htmlscrapy有哪些组成部分数据流走向如何创...
2018-09-19 00:25:09 132
原创 用线性回归方程来模拟梯度下降法
这里为了更好的记录梯度下降法的逻辑,用简单的二元线性回归方程来模拟梯度下降法来找到最小值,然后以后也可以将这个逻辑来寻找最小最优算法1、通过一点点的向最小值靠近,然后判断跟下一个点对应的损失函数的值是否相等或者低于某一个值,来判断是否已经处于一个不再下降的点所以得出线性回归的损失函数是MSE,也就是均方误差,然后对均方误差求导,就能得到梯度值,具体实现代码如下,以简单线性回归方...
2018-09-15 23:33:18 531
原创 多项式线性回归总结
这里主要记录多项式线性回归,会附带一部分简单线性回归的讲解线性回归其实是典型的参数训练的机器学习方法,而且专门解决回归问题首先先讲下简单线性回归简单线性回归函数表达式y=ax+b其中代码实现import numpy as npimport matplotlib.pyplot as pltclass SimpleLinearRegression: ...
2018-09-02 22:44:31 2310
原创 KNN算法优缺点总结,以及机器学习流程的总结
KNN算法作为一个最简单,也是一个很实用的机器学习的算法,日常的使用中也能处理很多问题,这里做一下总结记录优点1、KNN可以处理分类问题,同时天然可以处理多分类问题,比如鸢尾花的分类2、简单,易懂,同时也很强大,对于手写数字的识别,鸢尾花这一类问题来说,准确率很高3、KNN还可以处理回归问题,也就是预测 缺点1、效率低,因为每一次分类或者回归,都要把训练数据和测试数据都...
2018-08-25 13:34:14 19124
原创 数据归一化
用于输送给模型的数据是要经过处理的,这样得出的模型才能越来越准确,这里记录一下数据归一化的处理为什么要数据归一化比如我们拿鸢尾花数据来讲,如果我们把萼片的宽度单位换成米,长度换成是毫米,那么通过KNN算法来计算,萼片的宽度数值就会小到可以忽略不计,但是萼片的长度就对整体数据影响很大,这就对后面的结果影响很大。所以这个问题也说明,整体的数据需要保持同一个单位量级,不过现实中我们很多特征是代表...
2018-08-20 21:26:33 2097
原创 寻找超参数
机器学习领域,在确定好算法之后,也需要确定这个算法需要哪些参数,比如像线性函数那样,y=ax+b 需要确定a和b的值,算法中很多参数也是需要不断摸索才能确定出一个最好的数值,这里就会有两个概念超参数,算法运行之前需要确定的参数 模型参数,算法过程中需要确定的参数这里先记录寻找超参数的方法,会以knn算法为例为了找出一个机器学习算法中最合适的参数,我们大部分会使用三种方式领域知识 ...
2018-08-19 01:20:15 11048
原创 机器学习中的 train_test_split模式
什么是train_test_split模式说白了就是将我们的训练集分成两部分,一部分用来真实机器算法训练用的,一部分是用来校验训练好的模型用的这里使用knn算法来预判新来的是哪种鸢尾花的品种,这里用的是sklearn提供的鸢尾花数据集上图代码中我自己写了一个方法将数据简单的分成了训练集和测试集,不过我们这里其实已经引入了train_test_split这个模块的方法,可以直接帮...
2018-08-12 13:24:54 4380
原创 knn算法初识
knn是什么knn是分类算法的一种,也是最最基础的一种分类算法,设计的数学知识只有一条公式,就是下图其实就是我们高中所学过的,不过也是一个很实用的数学公式knn的算法逻辑就是,我们有一批原始数据,然后通过算出新来的数据跟原有的数据的距离,得出新来的数据更类似于那张原有数据,以此判断出新来的数据应该归为那种类型 那如何用python实现argsort就是对矩阵进行...
2018-08-05 18:53:49 270
原创 numpy--矩阵的索引操作
在矩阵中,针对索引进行操作主要是用于数据过滤的时候比如找出一组矩阵中,大于5的数x[x > 5] 不管之前的矩阵是二维还是一维,最终都是变成一维x>5 是返回一个一个bool矩阵,就是拿矩阵中每一个数和5进行比较还可以写方程式 比方 2*x == 18 - x如果想计算上面的方程式在x中有多少个解可以 np.sum(2*x == 18-x),...
2018-07-29 21:39:32 6330 1
原创 numpy的索引操作
在平时,我们不仅需要对矩阵的数值进行操作,同时也需要对矩阵的索引进行操作,这时候就要使用numpy的arg操作了np.argmin() 找出矩阵最小值的索引如果是二维,还是按照一维矩阵的逻辑,一行行去算 np.partition(x, num) 根据矩阵第几个数值来划分通过arr3中的第5个数,也就是20,来划分成两个区域...
2018-07-29 16:07:07 534
原创 numpy--矩阵的运算
在机器学习中,用得最多的就是矩阵的运算了,这里讲下numpy中,矩阵的数值相乘以及矩阵乘法矩阵的数值相乘,也就是两个矩阵中每一个数对应的相乘不仅可以矩阵于矩阵数值相乘,也可以数字和矩阵相乘,不过这里应该注意的是,只有numpy生成的矩阵才能这样相乘,如果是用python原生的array函数,只会将同一个数组拼接 矩阵的乘法,需要A矩阵的列数等于B矩阵的行数还...
2018-07-22 15:46:28 707
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人