商城系统中,抢购和秒杀是很常见的营销场景,在一定时间内有大量的用户访问商场下单,主要需要解决的问题有两个:
- 高并发对数据库产生的压力;
- 竞争状态下如何解决商品库存超卖;
高并发对数据库产生的压力
对于第一个问题,使用缓存来处理,避免直接操作数据库,例如使用Redis。
小峰的博客
最近遇到网站打不开了,报502,重启php-fpm就好了,然而过段时间又报502,查找了一些资料,应该是PHP-FPM进程不释放内存造成的。
LNMP架构中PHP是运行在FastCGI模式下,按照官方的说法,php-cgi会在每个请求结束的时候会回收脚本使用的全部内存,但是并不会释放给操作系统,而是继续持有以应对下一次PHP请求。而PHP-FPM是FastCGI进程管理器,用于控制php的内存和进程等
解决的办法就是通过优化PHP-FPM的总进程数和单个进程占用的内存,从而解决PHP-FPM进程占用内存大和不释放内存的问题。
我们使用lnmp addons.sh 脚本安装 redis服务,最后提示php没有redis扩展
打开lnmp安装包的src目录
1 | cd /usr/local/src/lnmp1.7/src |
进入 redis-5.3.1 目录
1 | cd redis-5.3.1 |
在安装 PHP7.3.21 Redis 扩展时,提示当前autoconf版本是2.63要升级到2.68及以上版本
查询当前版本:1
2[root@localhost ~]# rpm -qa | grep autoconf
autoconf-2.63-5.1.el6.noarch
或1
[root@localhost ~]# rpm -qf /usr/bin/autoconf
VMWare虚拟机安装了CentOS7 ,突然发现连接不上,进入系统使用ifconfig命令查看网络设备,发现无外网网卡。
1 | [root@localhost ~]# ifconfig |
那重启网卡试试看吧,what? 报错了!
当文件慢慢变多的时候,分类和标签已经不能快速找到所需要的文章,我们需要添加本站的搜索功能。
在博客根目录执行命令
1 | npm install hexo-generator-searchdb --save |
Hexo的搜索功能依赖于 hexo-generator-search 插件
| 命令 | 功能作用 | 用法举例 |
|---|---|---|
free |
查看内存使用情况,包括物理内存和虚拟内存 | free -h或free -m |
vmstat |
对系统的整体情况进行统计,包括内核进程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息 | vmstat 2 100 |
top |
实时显示系统中各个进程的资源占用状况及总体状况 | top |
mpstat |
实时系统监控工具,它会报告与CPU相关的统计信息 | mpstat |
sar |
收集、报告和保存CPU、内存、输入输出端口使用情况 | sar -n DEV 3 100 |
netstat |
检验本机各端口的网络连接情况,用于显示与IP、TCP、UDP和ICMP协议相关的统计数据 | netstat -a |
tcpdump |
用于捕捉或者过滤网络上指定接口上接收或者传输的TCP/IP包 | tcpdump -i eth0 -c 3 |
IPTraf |
用来生成包括TCP信息、UDP计数、ICMP和OSPF信息、以太网负载信息、节点状态信息、IP校验和错误等等统计数据 | iptraf |
df |
检查linux的文件系统的磁盘空间占用情况 | df -h |
iostat |
收集显示系统存储设备输入和输出状态统计 | iostat -x -k 2 100 |
iotop |
用来监视磁盘I/O使用状况的top类工具 | iotop |
lsof |
用于以列表的形式显示所有打开的文件和进程 | lsof |
atop |
显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注 | atop |
htop |
它和top命令十分相似,高级的交互式的实时linux进程监控工具 | htop |
ps |
最基本同时也是非常强大的进程查看命令 | ps aux |
glances |
监视 CPU,平均负载,内存,网络流量,磁盘 I/O,其他处理器 和 文件系统 空间的利用情况 | glances |
dstat |
全能系统信息统计工具,可用于替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具 | dstat |
uptime |
用于查看服务器运行了多长时间以及有多少个用户登录,快速获知服务器的负荷情况 | uptime |
dmesg |
主要用来显示内核信息。使用dmesg可以有效诊断机器硬件故障或者添加硬件出现的问题。 | dmesg |
mpstat |
用于报告多路CPU主机的每颗CPU活动情况,以及整个主机的CPU情况。 | mpstat 2 3 |
nmon |
监控CPU、内存、I/O、文件系统及网络资源。对于内存的使用,它可以实时的显示 总/剩余内存、交换空间等信息。 | nmon |
mytop |
用于监控 mysql 的线程和性能。它能让你实时查看数据库以及正在处理哪些查询。 | mytop |
iftop |
用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等 | iftop |
jnettop |
以相同的方式来监测网络流量但比 iftop 更形象。它还支持自定义的文本输出,并能以友好的交互方式来深度分析日志。 | jnettop |
ngrep |
网络层的 grep。它使用 pcap ,允许通过指定扩展正则表达式或十六进制表达式来匹配数据包。 | ngrep |
nmap |
可以扫描你服务器开放的端口并且可以检测正在使用哪个操作系统 | nmap |
du |
查看Linux系统中某目录的大小 | du -sh 目录名 |
fdisk |
查看硬盘及分区信息 | fdisk -l |