一、性能基准与瓶颈分析
1.1 Redis 性能基准
Redis 的理论性能:
| 指标 | 数值 |
|---|---|
| QPS(简单命令) | 10W+/s |
| QPS(复杂命令) | 1W+/s |
| 读写延迟 | 微秒级(<1ms) |
| 网络带宽 | 可达 1GB/s |
2026/3/20大约 11 分钟
Redis 的理论性能:
| 指标 | 数值 |
|---|---|
| QPS(简单命令) | 10W+/s |
| QPS(复杂命令) | 1W+/s |
| 读写延迟 | 微秒级(<1ms) |
| 网络带宽 | 可达 1GB/s |
-- 1. 检查系统整体状态
SELECT
numbackends AS connections,
xact_commit AS commits,
xact_rollback AS rollbacks,
blks_read AS disk_reads,
blks_hit AS cache_hits,
round(100.0 * blks_hit / NULLIF(blks_read + blks_hit, 0), 2) AS cache_hit_ratio,
tup_returned AS rows_returned,
tup_fetched AS rows_fetched,
tup_inserted AS rows_inserted,
tup_updated AS rows_updated,
tup_deleted AS rows_deleted
FROM pg_stat_database
WHERE datname = current_database();
-- 2. 检查活动连接
SELECT
state,
COUNT(*) AS count,
MAX(NOW() - query_start) AS max_duration
FROM pg_stat_activity
GROUP BY state;
-- 3. 检查慢查询
SELECT
pid,
NOW() - query_start AS duration,
query,
state
FROM pg_stat_activity
WHERE state != 'idle'
AND query_start < NOW() - INTERVAL '5 seconds'
ORDER BY duration DESC;
-- 4. 检查锁等待
SELECT
blocked.pid AS blocked_pid,
blocked.query AS blocked_query,
blocking.pid AS blocking_pid,
blocking.query AS blocking_query
FROM pg_stat_activity blocked
JOIN pg_locks blocked_locks ON blocked.pid = blocked_locks.pid
JOIN pg_locks blocking_locks ON
blocked_locks.locktype = blocking_locks.locktype
AND blocked_locks.relation = blocking_locks.relation
AND blocked_locks.pid != blocking_locks.pid
JOIN pg_stat_activity blocking ON blocking_locks.pid = blocking.pid
WHERE NOT blocked_locks.granted;
http {
# 基本语法
# access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
# 定义日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# 使用日志格式
access_log /var/log/nginx/access.log main;
# 带缓冲的日志(提高性能)
access_log /var/log/nginx/access.log main buffer=32k flush=5s;
# 压缩日志
access_log /var/log/nginx/access.log.gz main gzip=9 buffer=32k;
server {
# 站点专用日志
access_log /var/log/nginx/example.access.log main;
# 关闭特定路径的日志
location /health {
access_log off;
return 200 "OK";
}
# 静态资源不记录日志
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
access_log off;
}
}
}