feat(server): 添加高并发优化配置支持
- ServerConfig 新增 Concurrency/ReadBufferSize/WriteBufferSize/ReduceMemoryUsage 配置 - defaults.go 设置默认值:256K 并发连接、16KB 缓冲区 - server.go 在 singleMode 和 vhostMode 中应用配置 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
fa55bfd497
commit
bf14282e40
@ -199,6 +199,12 @@ type ServerConfig struct {
|
||||
MaxConnsPerIP int `yaml:"max_conns_per_ip"`
|
||||
IdleTimeout time.Duration `yaml:"idle_timeout"`
|
||||
WriteTimeout time.Duration `yaml:"write_timeout"`
|
||||
|
||||
// 高并发优化配置(可选,未配置时使用默认值)
|
||||
Concurrency int `yaml:"concurrency"` // 最大并发连接数(默认 256 * 1024)
|
||||
ReadBufferSize int `yaml:"read_buffer_size"` // 读缓冲区大小(字节,默认 16KB)
|
||||
WriteBufferSize int `yaml:"write_buffer_size"` // 写缓冲区大小(字节,默认 16KB)
|
||||
ReduceMemoryUsage bool `yaml:"reduce_memory_usage"` // 是否优先减少内存使用(默认 false,优先性能)
|
||||
}
|
||||
|
||||
// StaticConfig 静态文件服务配置。
|
||||
|
||||
@ -45,6 +45,11 @@ func DefaultConfig() *Config {
|
||||
IdleTimeout: 120 * time.Second,
|
||||
MaxConnsPerIP: 1000,
|
||||
MaxRequestsPerConn: 10000,
|
||||
// 高并发优化配置默认值
|
||||
Concurrency: 256 * 1024, // 256K 最大并发连接
|
||||
ReadBufferSize: 16 * 1024, // 16KB 读缓冲
|
||||
WriteBufferSize: 16 * 1024, // 16KB 写缓冲
|
||||
ReduceMemoryUsage: false, // 优先性能
|
||||
CacheAPI: &CacheAPIConfig{
|
||||
Enabled: false,
|
||||
Path: "/_cache/purge",
|
||||
@ -255,6 +260,11 @@ func GenerateConfigYAML(cfg *Config) ([]byte, error) {
|
||||
fmt.Fprintf(&buf, " max_conns_per_ip: %d # 每 IP 最大连接数(0 表示不限制)\n", cfg.Servers[0].MaxConnsPerIP)
|
||||
fmt.Fprintf(&buf, " max_requests_per_conn: %d # 每连接最大请求数(0 表示不限制)\n", cfg.Servers[0].MaxRequestsPerConn)
|
||||
fmt.Fprintf(&buf, " client_max_body_size: \"1MB\" # 请求体大小限制(支持单位: b, kb, mb, gb)\n")
|
||||
buf.WriteString(" # 高并发优化配置(可选,未配置时使用默认值)\n")
|
||||
fmt.Fprintf(&buf, " # concurrency: %d # 最大并发连接数(默认 %d)\n", cfg.Servers[0].Concurrency, cfg.Servers[0].Concurrency)
|
||||
fmt.Fprintf(&buf, " # read_buffer_size: %d # 读缓冲区大小(字节,默认 %d)\n", cfg.Servers[0].ReadBufferSize, cfg.Servers[0].ReadBufferSize)
|
||||
fmt.Fprintf(&buf, " # write_buffer_size: %d # 写缓冲区大小(字节,默认 %d)\n", cfg.Servers[0].WriteBufferSize, cfg.Servers[0].WriteBufferSize)
|
||||
fmt.Fprintf(&buf, " # reduce_memory_usage: %v # 是否优先减少内存使用(默认 %v)\n", cfg.Servers[0].ReduceMemoryUsage, cfg.Servers[0].ReduceMemoryUsage)
|
||||
buf.WriteString("\n")
|
||||
|
||||
// cache_api 配置
|
||||
|
||||
@ -512,6 +512,11 @@ func (s *Server) startSingleMode() error {
|
||||
MaxConnsPerIP: serverCfg.MaxConnsPerIP,
|
||||
MaxRequestsPerConn: serverCfg.MaxRequestsPerConn,
|
||||
CloseOnShutdown: true,
|
||||
// 高并发优化配置
|
||||
Concurrency: serverCfg.Concurrency,
|
||||
ReadBufferSize: serverCfg.ReadBufferSize,
|
||||
WriteBufferSize: serverCfg.WriteBufferSize,
|
||||
ReduceMemoryUsage: serverCfg.ReduceMemoryUsage,
|
||||
}
|
||||
|
||||
s.running = true
|
||||
@ -632,6 +637,11 @@ func (s *Server) startVHostMode() error {
|
||||
MaxConnsPerIP: serverCfg.MaxConnsPerIP,
|
||||
MaxRequestsPerConn: serverCfg.MaxRequestsPerConn,
|
||||
CloseOnShutdown: true,
|
||||
// 高并发优化配置
|
||||
Concurrency: serverCfg.Concurrency,
|
||||
ReadBufferSize: serverCfg.ReadBufferSize,
|
||||
WriteBufferSize: serverCfg.WriteBufferSize,
|
||||
ReduceMemoryUsage: serverCfg.ReduceMemoryUsage,
|
||||
}
|
||||
|
||||
s.running = true
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user