18.12.07更新

今天又出现内存和交换空间爆满的问题,导致网站停止运行(512M内存的小鸡真的拮据)。

php-fpm依旧占用很多内存——四个进程,每个占用了差不多19%的内存,遂改之:

  • 编辑 php-fpm.conf (我的路径在 /usr/local/php/etc/php-fpm.conf)
    pm = ondemand
    # 添加字段
    pm.process_idle_timeout = 10s

    其中pm.process_idle_timeout字段用来自动终结等待超过此字段值时间的php-fpm进程,实测打开网页时会生成多个php-fpm进程(几乎跑满),但网页加载完毕后一些idle状态的php-fpm会自动释放,内存回落到40%-50%的状态。

关于mysql,关闭performance_schema可以显著减少内存/swap分区压力:

  • 编辑my.cnf(我的路径在/etc/my.cnf)
    # 在[mysqld]下添加
    performance_schema = OFF

原内容

今天打开vps控制台一看:

WTF?

htop一下发现五个php-fpm进程,平均每个占了15%的内存,剩下的是一大坨mysql进程,每个差不多4%

下面是两个搜索出来的指令,先放上来,出处:php-fpm占用内存过高分析及解决

查看php-fpm进程个数:
ps -fe |grep "php-fpm"|grep "pool"|wc -l
查看每个php-fpm进程占用的内存大小:
ps -ylC php-fpm --sort:rss

对php-fpm内存占用过高问题,我通过修改php-fpm.conf配置文件来限制php-fpm的进程数:

  • 打开php-fpm.conf配置文件,我的路径:/usr/local/php/etc/php-fpm.conf
  • 我们需要关注的是这几个字段
    • pm = dynamic
      pm.max_children = 10
      pm.start_servers = 2 #启动时的进程数
      pm.min_spare_servers = 1 #表示最小空闲进程数,当进程数小于这个值会自动生成新进程
      pm.max_spare_servers = 4 #表示最大空闲进程数,当进程数大于这个值会自动清理进程,我的默认值是6
  • 其中,max_children字段只有在pm = static时才有效,pm设置为dynamic时后三个字段生效
  • 我把max_spare_servers改成4后内存使用有所缓解,但还不够

Continue reading “解决mysql/php-fpm内存占用过高问题”

忘了从哪个版本开始raspbian默认关闭了ssh

某个暑假的某天突发(脑)奇想(抽), 想做个超薄树莓派3b(去掉板子上所有的接口, 反向生产), 于是买了风枪和烙铁

(拆焊还是风枪好用, 最难的是音频口和hdmi, 硬用钳子钳下来的)

拆完确实清爽, 但是没法配置树莓派了(就该留ttl引脚的), 还专门跑去树莓派官方论坛和Reddit发帖, 无果(人太少吧)

最后发现这个方法

刷入系统后进行操作

  1. 打开ssh
    • 直接在boot分区下新建一个名为”ssh”的空文件
    • ssh文件没有后缀, 没有任何内容, 系统检测到此文件后会自动开启ssh
  2. 配置wifi
    • 在boot分区下新建一个名为”wpa_supplicant.conf”的文件, 加入以下内容
      • country=CN
        ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
        update_config=1

        network={
        ssid=”WiFi-A”
        psk=”12345678″
        key_mgmt=WPA-PSK
        priority=1
        }

    • ssid填写wifi的名字, psk填写WiFi密码, key_mgmt填写加密方式, priority填写此网络的连接优先级(数值越大优先级越高)