Fork me on GitHub
杨子鳄鱼 ● 外贸自建站

十年外贸建站经验,专注外贸独立站建设,欢迎咨询


  • 首页

  • 标签

  • 读书

  • 翻译

  • 简历

  • 外贸站

Mysql性能优化

发表于 2016-07-27


想戴上最美的面具,又想卸下所有的伪装。

常用命令

  • 连接数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    如果是root帐号,你能看到所有用户的当前连接
    如果是其它普通帐号,只能看到自己占用的连接
    show processlist; 列出前100条
    show full processlist; 全部列出
    show global variables like '%connections%'; 查看整个MySQL实例的最大连接数限制
    max_connections 就是整个MySQL实例的最大连接数限制
    max_user_connections 是单个用户的最大连接数,这里未指明是哪个用户,是任意一个用户

    查看某个用户的最大连接数,0表示不限制:
    select user,max_user_connections from mysql.user where user='root';
    通过设置这个值,防止某个指定用户使用过多的连接资源。默认是0,不限制。

    上面3个参数的关系是:
    max_user_connections < 实例 max_user_connections < max_connections

    整个MySQL实例,曾经同时最大连接数,包括很多用户连接数之和:
    show global status like '%max_used_connections%';

    修改mysql最大连接数:
    打开my.ini,修改max_connections=100(默认为100)。

    使用连接池减少mysql的连接数
  • 查看状态

    1
    show status;

PHP7+Swoole开发超高性能后台程序

发表于 2016-07-27

父母在时,人生尚有来处。
父母去时,人生只剩归途。

Yaf/Phalcon

1
2
3
Yaf是一个C语言编写的PHP框架
Phalcon 是开源、全功能栈、使用 C 扩展编写、针对高性能优化的 PHP 5 框架。
开发者不需要学习和使用 C 语言的功能,可以直接使用。

QPS

1
2
3
每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,
作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,
即每秒的响应请求数,也即是最大吞吐能力。

如何实现1W+的QPS

1
2
3
1.IO操作要足够快,或者异步
常见的IO操作有,Mysql,Redis,CURL,磁盘读写
2.CPU消耗足够少

为什么不用C++

1
2
3
4
学习成本高
开发周期长
调试难度大
机器的时间可以用钱购买,人的时间无法用钱购买

提升PHP性能

1
2
3
使用PHP7,性能至少提高一倍
使用yaf/phalcon
使用swoole应用服务器

什么是Swoole

1
2
3
4
5
6
7
PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,
提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,
异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,
毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器
端/客户端、Http2.0服务器端。Swoole可以广泛应用于互联网、移动通信、企业软件、
云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。使用PHP+Swoole作
为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。

大量并发连接

1
2
基于epool实现异步IO处理
选择Nginx和swoole

超高性能架构

1
PHP7 + swoole + yaf/phalcon + Redis

超高性能统计运算程序

1
2
3
4
5
使用PHP Array 全内存存储,计算数据,超大规模读写Redis会成为瓶颈
使用Worker/Task进程实现数据的Map-Reduce
使用PHP的SPL数据结构
中间数据可以使用mysql内存表,汇总计算后删除数据
PHP的GC非常靠谱,及时unset掉不用的数据,连续运行无内存泄露

https://github.com/ThinkDevelopers/PHPConChina/tree/master/PHPCON2016

mysql用户相关操作

发表于 2016-07-26


那些最容易脸红的人,往往是最善良的。

相关命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
查看所有用户
select host,user from user ;
添加一个用户
grant all on *.* to yangzie@"%" identified by "123" ;
说明:
all表示所有权限(包括增 删 改 查等权限)
*.* 表示所有数据库,前面一个* 指的是库,后面指的是表
yangzie为添加的用户名
123为密码,高版本的mysq会对密码的安全性做验证,简单的密码会导致命令执行失败
%为匹配的所有主机,% 即可以使用其他连接工具像navicat远程连接
删除一个用户
delete from mysql.user where user ='yushan' ;

所有的这些操作完成以后,记得刷新权限
flush privileges;

centos下ftp相关设置

发表于 2016-07-25

你如今的气质里,藏着你走过的路,读过的书,和爱过的人。

实验环境

centos6.5 64位

步骤:

  • 安装
1
2
3
4
yum install vsftp
chkconfig vsftpd on
chkconfig --list vsftpd
service vsftpd start
  • 匿名用户登录
1
2
3
//在浏览器中通过ftp://121.40.215.165这样的方式,无需输入用户名密码即可访问
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES //匿名访问 开启
  • selinux
1
2
3
4
5
6
7
8
9
//SELinux 全称 Security Enhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Control,强制访问控制系统)
//的一个实现,目的在于明确的指明某个进程可以访问哪些资源(文件、网络端口等)。
getenforce //查看状态
setenforce 0 //临时关闭
setenforce 1 //临时开启
//永久关闭
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
  • 修改默认端口号
1
2
3
//编辑 /etc/vsftpd/vsftpd.conf 文件,在该配置文件中添加此行:listen_port=801
//编辑 /etc/services 文件,将其中的 ftp 21/tcp 改为 ftp 801/tcp , ftp 21/udp 改为 ftp 801/udp
//执行 /etc/init.d/vsftpd restart 重新启动 vsftpd 服务.
  • ftp的配置文件
1
2
3
4
//位于/etc/vsftpd/目录下,分别是:
//ftpusers 该文件用来指定那些用户不能访问ftp服务器。
//user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp
//vsftpd.conf 该文件是vsftpd的主配置文件
  • 建立用户以及指定目录
1
2
3
4
5
6
useradd -d /home/ftp ftpuser
passwd ftpuser
//此时用户ftpuser可以通过ftp登录

//系统内所有的FTP用户都限制在家目录中,修改配置文件/etc/vsftpd/vsftpd.conf
chroot_local_user=YES

http://jasonhzy.github.io/2016/03/11/linux-ftp/

mysql5.7相关操作

发表于 2016-07-23

我知这世界,本如露水般短暂。
然而,
然而。

基本命令功能

  • 找到默认的root密码
1
sudo grep 'temporary password' /var/log/mysqld.log
  • 登录后修改密码
1
2
3
alter user 'root'@'localhost' identified by '123';
flush privileges;
quit;
  • 查看所有用户
1
2
use mysql;
select distinct(User) from user;
  • 通过远程访问
1
2
3
4
5
6
//查看用户权限情况
select host,user from user;
//root是用户名,%代表任意主机,'123456'指定的登录密码(这个和本地的root密码可以设置不同的,互不影响)
grant all privileges on *.* to 'root'@'%' identified by'123456'with grant option;
flush privileges;
quit;
1…727374
lnmput@gmail.com

lnmput@gmail.com

一个专注记录外贸网站开发技术栈的个人博客

368 日志
143 标签
GitHub
友情链接
  • 风雪之隅
  • 有赞技术团队
  • 美团点评技术团队
  • 點燈坊
  • 轉個彎日誌
© 2016 - 2020 lnmput@gmail.com
由 Hexo 强力驱动
主题 - NexT.Muse