PHP试题网_中国最大的免费网络PHP试题测试平台,PHP试卷调查,PHP试卷模板、PHP考试测验
公告: 【20201211】公告:复杂试卷成功上线,问答模块很快上线……网站将有诸多变化

最终效果: image


另外,如果是laravel这种重量级框架的话,可以参考:https://learnku.com/articles/18782 的文章。


接招:


Linux参数:

1、#disable selinux

sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config


2、yum install ntp


3、linux最大文件打开数的默认值很低,必须修改的高一些


编辑文件:/etc/security/limits.conf


# End of file

root soft nofile 65535

root hard nofile 65535

* soft nofile 65535

* hard nofile 65535


4、系统中开启HugePages


sysctl vm.nr_hugepages=512

分配512个预留的大页内存


$ cat /proc/meminfo  | grep Huge

AnonHugePages:    106496 kB

HugePages_Total:     512

HugePages_Free:      504

HugePages_Rsvd:       27

HugePages_Surp:        0

Hugepagesize:       2048 kB



5.调整内核参数。经过一番折腾,tps有提升,但是不稳定,通过sysctl调整内核参数则稳定了。

vim /etc/sysctl.conf


net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 68719476736

kernel.shmall = 4294967296

net.ipv4.tcp_max_tw_buckets = 6000

net.ipv4.tcp_sack = 1

net.ipv4.tcp_window_scaling = 1

net.ipv4.tcp_rmem = 4096        87380   4194304

net.ipv4.tcp_wmem = 4096        16384   4194304



net.ipv4.tcp_max_syn_backlog = 65536

net.core.netdev_max_backlog = 32768

net.core.somaxconn = 32768


net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216


net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 2


net.ipv4.tcp_tw_recycle = 1

#net.ipv4.tcp_tw_len = 1

net.ipv4.tcp_tw_reuse = 1


net.ipv4.tcp_mem = 94500000 915000000 927000000

net.ipv4.tcp_max_orphans = 3276800


#net.ipv4.tcp_fin_timeout = 30

#net.ipv4.tcp_keepalive_time = 120

net.ipv4.ip_local_port_range = 1024 65535



nginx篇:

nginx.conf:



events {

    use epoll;

    worker_connections 204800;

}


http{ 

    client_header_buffer_size    4k;

    large_client_header_buffers  4 4k;

    open_file_cache max=102400 inactive=60s;

    open_file_cache_valid 80s;



    fastcgi_connect_timeout 300;

    fastcgi_send_timeout 300;

    fastcgi_read_timeout 300;

    fastcgi_buffer_size 64k;

    fastcgi_buffers 8 64k;



    fastcgi_temp_path /dev/shm/fastcgi_temp; 

    fastcgi_cache_path /dev/shm/fastcgi_cache levels=1:2 keys_zone=cfcache:10m inactive=50m max_size=256; 

    fastcgi_cache_key "$request_method://$host$request_uri"; 

    fastcgi_cache_methods GET HEAD; 

    fastcgi_cache   cfcache;  //开启FastCGI缓存并且为其制定一个名称。 

    fastcgi_cache_valid 200 302 301 1h; 

    fastcgi_cache_valid   any 5m;   //为指定应答代码指定缓存时间,这里指定200 302 301应答缓存1小时,其余任何应答缓存5分钟 

    fastcgi_cache_min_uses  1;  //缓存在fastcgi_cache_path内文件在inactive参数值时间内的最少使用次数,如上例,这里在50分钟内某文件1次也没有被使用,那么这个文件将被移除。 

    fastcgi_cache_use_stale error  timeout invalid_header http_500;//对于error timeout invalid_header http_500等类型的应答内容不缓存 

    fastcgi_ignore_client_abort on;//忽略客户端终止请求 


    gzip on;

    gzip_min_length 1k;

    gzip_buffes 16 64k;

    gzip_http_version 1.1;

    gzip_comp_level 6;

    gzip_types text/plain application/x-javascript text/css application/javascript text/javascript image/jpeg image/gif image/png application/xml application/json;

    gzip_vary on;

    gzip_disable "MSIE [1-6].(?!.*SV1)";



 


mysql篇:这里实质上是弱化了mysql配置,后期补上

long_query_time=2

log-slow-queries= /usr/local/webserver/mysql/logs/slowquery.log 

max_connections=200

key_buffer_size 



PHP篇:

php.ini:



# 设置错误日志的路径

error_log = /var/log/php-fpm/error.log

 

# 引入www.conf文件中的配置

include=/usr/local/php7/etc/php-fpm.d/*.conf

 

# 设置主进程打开的最大文件数

rlimit_files = 102400


zend_extension=opcache.so

opcache.enable=1

opcache.memory_consumption=128

opcache.interned_strings_buffer=8

opcache.max_accelerated_files=4000

opcache.vilidate_timestamps=0

opcache.revalidate_freq=300

opcache.fast_shutdown=1

opcache.huge_code_pages=1

opcache.file_cache=/tmp




php-fpm.conf:


pid = run/php-fpm.pid

# 设置错误日志的路径

error_log = /var/log/php-fpm/error.log

 

 

# 设置主进程打开的最大文件数

rlimit_files = 65535


emergency_restart_threshold 10

emergency_restart_interval 1m

process_control_timeout 10s



www.conf:


# listen = 127.0.0.1:9000 

listen = /var/run/php-fpm/php-fpm.sock


listen.allowed_clients = 127.0.0.1

slowlog = /var/log/php-fpm/php-slow.log  

request_slowlog_timeout = 10s  

request_terminate_timeout = 30   


pm = dynamic 

pm.max_children = 25

# pm.start_servers不能小于pm.min_spare_servers,推荐为最大的pm.max_children的%10

pm.start_servers = 8

pm.min_spare_servers = 5

pm.max_spare_servers = 10

pm.max_requests = 10240




作者:OK兄 浏览次数:4