zoukankan      html  css  js  c++  java
  • 总结一

    Apache日志记录客户端IP,而不是nginx代理的IP:

          在nginx配置文件的location中设置proxy_set_header X-Real-IP $remote_addr;

                     再修改http的配置文件,日志格式LogFormat "%{X-Real-IP}..............."

    出现502状态码,大量接口调用超时:查看系统日志,提示:"nf_conntrack: table full, dropping packet." 

                      nf_conntraack:连接跟踪表;

                      这个提示表示:连接跟踪表已满,开始丢包,使用“lsmod | grep nf_conntrack”查看模块。若是ip_vs引起,卸载ipvsadm和firewalld,并删除内核模块"ip_vs"和"nf_conntrack"模块,yum remove,rmmod

                      为了使ip_vs不自动调用,vim /etc/modprobe.d/blacklist.conf 加入blacklist nf_conntrack, install nf_conntrack /bin/false

    PHP-FPM进程高:

          CGI:是为了保证web server传递过来的数据是标准格式的,它是一个协议;CGI针对每个http请求都是fork一个新进程来进行处理,处理过程包括解析php.ini文件,初始化执行环境等,然后这个进程会把处理完的数据返回给web服务器,最后web服务器把内容发送给用户,刚才fork的进程也随之退出。 如果下次用户还请求动态资源,那么web服务器又再次fork一个新进程,周而复始的进行。

                     Fastcgi:是CGI的更高级的一种方式,是用来提高CGI程序性能的,它也是一个协议;Fastcgi则会先fork一个master,解析配置文件,初始化执行环境,然后再fork多个worker。当请求过来时,master会传递给一个worker,然后立即可以接受下一个请求。这样就避免了重复的劳动,效率自然是高。而且当worker不够用时,master可以根据配置预先启动几个worker等着;当然空闲worker太多时,也会停掉一些,这样就提高了性能,也节约了资源。这就是Fastcgi的对进程的管理。大多数Fastcgi实现都会维护一个进程池。

          PHP-Cgi:PHP的解释器是php-cgi。php-cgi只是个CGI程序,只能解析请求,返回结果

                     PHP-FPM :是 PHP 针对 FastCGI 协议的具体实现;每个进程完成请求处理后会回收内存,但是并不会释放给操作系统,这就导致大量内存被 PHP-FPM 占用而无法释放,请求量升高时性能骤降;PHP-FPM 模式下的进程是单一线程的,请求无法并发。这个参数的真正意义是提供请求计数器的功能,超过阈值数目后自动回收,缓解内存压力。

                     Php-fpm参数:

                pm:,有两个值可以选择,就是static(静态)或者dynamic(动态)。

                pm.max_children:静态方式下开启的php-fpm进程数量
                pm.start_servers:动态方式下的起始php-fpm进程数量
                pm.min_spare_servers:动态方式下的最小php-fpm进程数
                pm.max_spare_servers:动态方式下的最大php-fpm进程数量

                pm.max_requests : 子进程请求数阈值,超过后自动回收

          处理方式:
              strace -p PID
                                 ll /proc/PID/fd
              pmap $(pgrep 要查的程序名 | head -1)
     
              


                    

  • 相关阅读:
    android中正确保存view的状态
    使用AudioTrack播放PCM音频数据(android)
    【录音】Android录音--AudioRecord、MediaRecorder
    (原创)初识cordova(一)
    忽略git中不需要进行版本管理的文件
    GitHub 小试
    通过View.post()获取View的宽高
    org.json.JSONObject的getString和optString使用注意事项
    android---EditText的多行输入框
    【转】我赌5毛你没见过这样的SpannableString
  • 原文地址:https://www.cnblogs.com/songge1209/p/6268930.html
Copyright © 2011-2022 走看看