王老迪 编辑于:2020-03-30 15:13:11

lsof -p 端口号  查看进程ID

lsof -i:80  查看端口信息

kill -9 端口号  杀死该进程id所有

locate 查找文件

df -hl 查看磁盘容量

free -m 查看内存状况


nohup php  /home/web/meibo/yii worker >> /var/log/worker.log &

     php执行路径 路径         启动服务名   生成log日志路径  


worker进程id:1688


查看worker数量

    ps ax|grep "yii workerim" |grep -v grep |wc -l

查看worker进程id

    ps -aux | grep worker 

查看beanstalk 服务数量

    ps -ef|grep beanstalkd  |grep -v |grep |wc -l

查看线程数

    ps -aux | grep worker   | wc -l  

实时监控日志状态

    tail -f /var/log/worker.log


-p 指定端口号(默认11211)   

-m 指定最大使用内存大小(默认64MB)   

-t 线程数(默认4)   

-l 连接的IP地址, 默认是本机   

-d start 启动memcached服务   

-d restart 重起memcached服务   

-d stop|shutdown 关闭正在运行的memcached服务   

-m 最大内存使用,单位MB。默认64MB   

-M 内存耗尽时返回错误,而不是删除项   

-c 最大同时连接数,默认是1024 

-f 块大小增长因子,默认是1.25 

-n 最小分配空间,key+value+flags默认是48


nmon 查看服务器性能 


ab常用参数的介绍:

-n :总共的请求执行数,缺省是1;

-c: 并发数,缺省是1;

-t:测试所进行的总时间,秒为单位,缺省50000s

-p:POST时的数据文件

-w: 以HTML表的格式输出结果


beanstalk 创建常用参数 

-b DIR 输出 binlog 保持任务不丢失, DIR 指定路径

-l ADDR 绑定的地址, 默认为 (0.0.0.0)

-p PORT 绑定的端口, 默认为 (11300)

-z BYTES 每一个 job 消息的最大大小, 默认 65535 bytes (64kb, 足够了吧)

-s BYTES 设置单个 binlog 文件的最大大小, 超过会自动切分文件, 默认 10485760 (10mb)

-V 查看输出的日志. (debug 用)

-v 显示版本信息

-h 显示帮助

-c 执行在线增量binlog文件的压缩。否定-n。这是默认的行为。

-f 执行任务实时往binlog中写日志时间为毫秒ms

-F 不写入binlog日志


删除防火墙规则

    iptables -D INPUT 2

开启端口号 

    iptables -I INPUT -p tcp --dport 80 -j ACCEPT

查询端口号

    iptables -L --line-numbers

保存当前防火墙到自启动文件

    iptables-save > /etc/sysconfig/iptables

删除yii worker 进程

    ps -ef |grep "yii worker" |awk '{print $2}'|xargs kill -9


开启其他服务器同步       服务器内网ip      端口

/usr/bin/rsync --address=10.27.231.182 --port=7789 --daemon --config=/etc/rsyncd.conf


SVN 代码同步

    sh /root/rsync_client.sh  

重启SSh

    service sshd restart

开启php-fpm

    /usr/local/php-5.5.30/sbin/php-fpm

开启vsftpd

    nohup /usr/local/sbin/vsftpd &

服务器均衡处理 配置文件

    /usr/local/nginx/conf/vhost/upstream.conf


启动svn服务 对应后面是代码库目录

    svnserve -d -r /home/xxbsvn/temsvn/

把内存缓存磁盘中的东西 写回磁盘中 

    sycn

查看drop_caches配置  0 默认  1清空页缓存  2清空i-node和目录树缓存 3 清空所有缓存

    cat /proc/sys/vm/drop_caches

清空服务器缓存区数据

    echo 3 > /proc/sys/vm/drop_caches 


王老迪 编辑于:2020-01-20 11:20:04
王老迪 更新于:2020-03-11 11:18:49

  1. 趣鸭的佣金问题

    发生在趣鸭付完款后用户得到佣金,佣金为7元,用户在这个过程在完成了分销导等级的变化后,退款时因为用户变成了高级分销,导致扣款的佣金增加了1元

王老迪 编辑于:2020-01-06 16:32:17
王老迪 更新于:2020-01-06 16:32:52

  1.找到一个好用的镜像地址

composer config -g repos.packagist composer https://php.cnpkg.org

  2.接着开启多进程下载

composer global require hirak/prestissimo

  3.镜像地址切换(不好使话继续尝试)

   飞雷神

王老迪 编辑于:2020-01-01 11:41:49
王老迪 更新于:2020-01-06 15:35:01

  写活动类型的项目,经常会遇到并发问题,有时候甚至会把服务器给撑爆,那么遇到这种问题一般很急,而且这类活动通常还不少,自然应当记录一下。(正常逻辑上的错误当然不会单独去说,这里指出一些常见的问题)


  假设我们的服务器在这次活动中崩溃了。我们怎么进行操作呢。


1.检查服务器(这里以阿里云为例)   

  首先得知道服务器的指标,最重要的指标有cpu,内存,宽带。这三者,每一个都会直接造成服务器卡顿不止,前两者甚至会使服务器崩溃。

  配置图如下图所示-》

image.png

  实例图如下所示(12-30号12点我们的服务器就卡爆了)

image.png

所以,如两个示例图,出现的原因就在于宽带,所以一般的解决方案就是三种

1、升级宽带(少量钱,最为直接,无需任何配置

2、购入新服务器(负载均衡或者高性能按量付费,一般来说是要提前有准备,因为也比较花费时间)

3、限流(看业务情况,也需要花费一定时间)


以上三者,不管哪一种,我们首先都得知道一个问题就是宽带怎么计算的。

这里以上图一为例,已知我们服务器的宽带的峰值是5M,我们的的网站每个页面大小是10KB,所以我们的宽带仅能支持并发量是 5000/8/10 = 63人(1Byte=8bit) 。


2.服务器检查完毕之后,就是代码的编写情况,最最常见的是两种情况

1、超发

   超发的问题一般而言也就是并发的问题,如果非并发情况你还能超发,那,哥算你厉害。

   一般而言,在活动类型项目,当并发量高并且涉及到金钱的交易的时候一定要在逻辑判断的最后一项在补充一个用户抽奖记录的查询判断(比如只能抽取一次,你就要判断有几条这个用户的记录,并且所有的更新和插入语句都要在事物当中);并发的人很有可能是同一个人,尤其是在于页面比较卡顿的情况下,没有给他返回信息;而我们的中奖信息又必须及时返回(同步)。(当然,我们还可以使用php锁之类的方式)


2、如果是现金红包不实时的问题

   如果可以,还是不建议实时发,当然,无奈得很,都得实时,目前老迪这边在高并发的情况下确实没有什么高招,现在都是微信的接口,一般而言采取队列的方式,并且记得要在队列的当中在次验证一遍确保准确无误,可以采用多进程的方式,让红包发送的更快。


王老迪 编辑于:2019-12-02 15:58:49
王老迪 更新于:2019-12-20 16:04:05


上个周末遇到个诡异的事情,就是在微信再次授权的时候登入就极其缓慢。



这真的困扰了好久,因为事情总是发生在过了一段时间的时候,登入就会慢,加上自己这边又是使用的session进行存储用户信息,所以自然就朝着这个方向走了。


一开始,我发现之所以要重新授权,是因为微信内置的浏览器总是会不定期清除掉用户的cookie。


结果又是框架又是原生调试了半天,发现cookie的清除不影响微信授权缓慢这件事,


也就是说,微信授权根本就不缓慢!!!!!



后面我把我在授权的回调地址里面所有的sql语句拿出来测试了一遍,


发现真正的问题是updateOrInsert这个语法,因为回调的时候我需要插入和更新了用户的数据。



后记:


    1.laravel 的 session 必须得有 cookie 在能正确取到。


    2.laravel 的 session 时长的设置是有效的,设置在 redis 就是在 redis 设置在 file 就是在 file


    3. 非微信浏览器的 session 关闭后再次打开必然取不到,不关闭的情况下视你的 session 时长


为准;微信端在后台的情况下默认是 2 个小时?(不确定)会自动清除掉 cookie。




再次后记:


    服务器也可以通过URL重写的方式来传递SessionID的值,因此不是完全依赖Cookie。


    如果客户端Cookie禁用,则服务器可以自动通过重写URL的方式来保存Session的值,并且这个过程对程序员透明。 飞雷神


    可以试一下,即使不写Cookie,在使用request.getCookies();取出的Cookie数组的长度也是1,


而这个Cookie的名字就是JSESSIONID,还有一个很长的二进制的字符串,是SessionID的值。


王老迪 编辑于:2019-10-19 16:58:42
王老迪 更新于:2020-03-30 15:04:14

队列的目的是将耗时的任务延时处理,比如发送邮件,从而大幅度缩短 Web 请求和响应的时间


这个星期遇到一个汇总的微信模板消息的推送这样一个问题。

相信很多人都遇到过这个问题。

简单一点就是循环跑,但是循环跑会超时什么的,当然也可以解决超时的问题。

但是循环跑实在是有点蠢,而且是同步的,在php中,解决这类问题,队列的方式在合适不过了。


那么,就来说明一下队列的基本使用。


我用的是laravel的5.8版本,每个版本在配置上或多或少可能会有些出入,基本相差不大。


首先,查看需要使用的队列的存储方式,laravel提供了4种的样子,常用的就是redis和mysql了。

类型的优势和好处就不介绍了,自行查看文档即可。飞雷神


  1. 先找到laravel的队列配置 (config/queue.php)

 //默认的配置项
'default' => env('QUEUE_CONNECTION', 'sync'),

/*
|--------------------------------------------------------------------------
| 默认队列驱动
|
*/

'connections' => [

'sync' => [
],

'database' => [
],

'beanstalkd' => [
],

'sqs' => [
],

'redis' => [
],

],

/*
|--------------------------------------------------------------------------
| 失败的队列任务
*/

'failed' => [
'database' => env('DB_CONNECTION', 'mysql'),
'table' => 'failed_jobs',
]

    2.去env中配置属性,主要是 QUEUE_CONNECTION,某些版本里面是 QUEUE_DRIVER ,这个地方弄对,后面的也就没啥问题了。

    

    3.队列任务的是创建

        php artisan make:job 队列名


    调用和启用的方式这里说明一下

        调用===》  队列名::dispath(参数)

        相信一般也都是在\App\Jobs下。

    

    启用命令

        php artisan queue:listen

    如果需要linux后台常驻运行的话就执行

        nohup php artisan queue:listen > /tmp/artisan.log 2>&1 &

    查看后台是否常驻成功

         jobs -l   或者  ps -aux | grep queue


   如果遇到错误的情况一般可以查看日志 如   /tmp/artisan.log 这个上面设置的日志


   如果你也用的是redis且正好队列里面的数据不对

   那么 你可以 ↓

   1.进入redis中(一般操作命令行比较好

       当使用的是yum安装的redis的时候  直接执行命令 redis-cli 

       如果是别的方式安装的,进入到指定的目录下执行该命令即可。

   2.登入

       执行命令-》 auth password

   3.查找所有的key 

       执行命令-》 keys * (更多命令查看 飞雷神)

    4.清除

        执行命令-》flushall (这是清除所有,不建议使用,这是删除所有的 redis数据)

        执行命令-》del key (根据指定的键值删除)

    

     完

文章标签