Điểm:0

CPU tải cao của MySQL

lá cờ ng

Tôi gặp sự cố với MariaDB, khi kết nối phân tích ~ 200 mysql bắt đầu xuất hiện 132% load và đẩy main CPU lên khoảng 40%. Làm cho trang web cực kỳ chậm Mình đang dùng centos 7 ( 8GB ram , 2 core , NVME SSD + Nginx + php-fpm )

[khách hàng]
#mật khẩu = mật_khẩu của bạn
cổng = 3306
ổ cắm = /var/lib/mysql/mysql.sock

[mysqld]
wait_timeout=300
Interactive_timeout = 300
binlog_cache_size = 128K
thread_stack = 256K
tham gia_buffer_size = 2048K
query_cache_type = 1
max_heap_table_size = 512M
cổng = 3306
ổ cắm = /var/lib/mysql/mysql.sock
datadir = /var/lib/mysql
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
bỏ qua khóa ngoài
key_buffer_size = 384M
max_allowed_packet = 100G
table_open_cache = 384
sort_buffer_size = 1024K
net_buffer_length = 4K
read_buffer_size = 1024K
read_rnd_buffer_size = 768K
myisam_sort_buffer_size = 16 triệu
thread_cache_size = 128
truy vấn_cache_size = 0
query_cache_type = 0
query_cache_limit = 8M
tmp_table_size = 512M
#sql-mode=NO_ENGINE_SUBSTITUTION

# bỏ qua-tên-giải quyết
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535

log-bin=mysql-bin
binlog_format=hỗn hợp
id máy chủ = 1
hết hạn_logs_ngày = 10
slow_query_log=1
slow-query-log-file=/home/abc.com.com/logs/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on


innodb_data_home_dir = /var/lib/mysql
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql
innodb_buffer_pool_size = 1G
innodb_log_file_size = 128M
innodb_log_buffer_size = 32 triệu
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 2
innodb_write_io_threads = 2
innodb_buffer_pool_instances = 1


[mysqldump]
nhanh
max_allowed_packet = 500M

[mysql]
không tự động phục hồi

[myisamchk]
key_buffer_size = 64M
sort_buffer_size = 1 triệu
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
thời gian chờ tương tác

Và điều chỉnh qua mysqltuner

-------- Thống kê công cụ lưu trữ ---------------------------------------- --------------------------
[--] Trạng thái: +ARCHIVE +Aria +BLACKHOLE +CSV +FEDERATED +InnoDB +MEMORY +MRG_MyISAM +MyISAM +PERFORMANCE_SCHEMA
[--] Dữ liệu trong bảng InnoDB: 48,8M (Bảng: 21)
[OK] Tổng số bảng bị phân mảnh: 0

-------- Số liệu hiệu suất phân tích ---------------------------------------- -----------------------
[-] innodb_stats_on_metadata: TẮT
[OK] Không có cập nhật thống kê nào trong khi truy vấn INFORMATION_SCHEMA.

-------- Khuyến nghị bảo mật ---------------------------------------- --------------------------
[OK] Không có tài khoản ẩn danh cho bất kỳ người dùng cơ sở dữ liệu nào
[OK] Tất cả người dùng cơ sở dữ liệu đều được chỉ định mật khẩu
[!!] Không có danh sách tập tin mật khẩu cơ bản!

-------- Khuyến nghị bảo mật CVE ---------------------------------------- -----------------------
[-] Bị bỏ qua do tùy chọn --cvefile không xác định

-------- Số liệu hiệu suất ---------------------------------------- -------------------------------
[--] Lên cho: 8 phút 0 giây (85K q [178,621 qps], 6K kết nối, TX: 41M, RX: 7M)
[-] Đọc/Ghi: 98%/2%
[--] Đã bật ghi nhật ký nhị phân (CHẾ ĐỘ GTID: BẬT)
[-] Bộ nhớ vật lý : 7.6G
[-] Bộ nhớ MySQL tối đa: 504.5G
[-] Bộ nhớ tiến trình khác: 0B
[--] Tổng bộ đệm: 2.0G toàn cầu + 1.0G mỗi luồng (tối đa 500 luồng)
[-] P_S Mức sử dụng bộ nhớ tối đa: 0B
[-] Galera GCache Mức sử dụng bộ nhớ tối đa: 0B
[!!] Mức sử dụng bộ nhớ tối đa đạt được: 95,5G (1250,25% RAM đã cài đặt)
[!!] Mức sử dụng bộ nhớ tối đa có thể: 504,5G (6604,94% RAM đã cài đặt)
[!!] Tổng mức sử dụng bộ nhớ có thể có với quá trình khác vượt quá bộ nhớ
[OK] Truy vấn chậm: 0% (0/85K)
[OK] Mức sử dụng cao nhất của các kết nối có sẵn: 18% (93/500)
[OK] Kết nối bị hủy: 0,04% (3/6727)
[!!] độ phân giải tên đang hoạt động : độ phân giải tên đảo ngược được thực hiện cho mỗi kết nối mới và có thể làm giảm hiệu suất
[OK] Bộ đệm truy vấn bị tắt theo mặc định do tranh chấp mutex trên các máy đa bộ xử lý.
[OK] Sắp xếp yêu cầu bảng tạm thời: 0% (0 loại tạm thời / 700 loại)
[OK] Không tham gia mà không có chỉ mục
[!!] Bảng tạm thời được tạo trên đĩa: 88% (5K trên đĩa / tổng cộng 6K)
[OK] Tỷ lệ trúng bộ đệm chủ đề: 98% (93 kết nối được tạo / 6K)
[OK] Tỷ lệ trúng bộ đệm của bảng: 215% (114 lần mở / 53 lần mở)
[OK] table_definition_cache(400) cao hơn số bảng(261)
[OK] Mở giới hạn tệp được sử dụng: 0% (29/65K)
[OK] Khóa bảng có được ngay lập tức: 100% (65K ngay lập tức / 65K khóa)
[OK] Truy cập bộ nhớ cache Binlog: 100,00% (1144 Bộ nhớ / 1144 Tổng cộng)

-------- Lược đồ hiệu suất ---------------------------------------- --------------------------------
[-] Lược đồ hiệu suất bị tắt.
[--] Bộ nhớ được sử dụng bởi P_S: 0B

-------- Số liệu ThreadPool ---------------------------------------- --------------------------------
[-] Chỉ số ThreadPool được bật.
[--] Kích thước nhóm luồng: 2 luồng.
[--] Sử dụng giá trị mặc định là đủ tốt cho phiên bản của bạn (10.0.38-MariaDB)

-------- Số liệu MyISAM ---------------------------------------- ------------------------------------
[!!] Bộ đệm khóa đã sử dụng: 18,7% (75M đã sử dụng / 402M bộ đệm)
[OK] Kích thước bộ đệm khóa / tổng số chỉ mục MyISAM: 384,0M/123,0K
[OK] Tỷ lệ trúng bộ đệm phím đọc: 99,7% (355 bộ nhớ đệm / 1 lần đọc)
[OK] Tỷ lệ trúng bộ đệm ghi: 100,0% (96 lần lưu trong bộ nhớ đệm / 96 lần ghi)

-------- Số liệu InnoDB ---------------------------------------- ------------------------------------
[-] InnoDB đã được bật.
[-] Đồng thời chủ đề InnoDB: 0
[OK] Tệp InnoDB trên mỗi bảng được kích hoạt
[OK] Kích thước dữ liệu/nhóm bộ đệm InnoDB: 1.0G/48.8M
[OK] Tỷ lệ Kích thước tệp nhật ký InnoDB / Kích thước nhóm bộ đệm InnoDB: 128,0M * 2/1,0G phải bằng 25%
[OK] Các phiên bản nhóm bộ đệm InnoDB: 1
[-] Kích thước khối nhóm bộ đệm InnoDB không được sử dụng hoặc xác định trong phiên bản của bạn
[OK] Hiệu quả của bộ đệm đọc InnoDB: 100,00% (422760044 lần truy cập/ tổng số 422761190)
[!!] Hiệu suất Nhật ký ghi của InnoDB: 46,23% (484 lần truy cập/ tổng số 1047)
[OK] Thời gian chờ nhật ký InnoDB: 0,00% (0 lần chờ / 1531 lần ghi)

-------- Số liệu Aria ---------------------------------------- --------------------------------------
[-] Công cụ lưu trữ Aria được bật.
[OK] Kích thước bộ đệm trang Aria / tổng số chỉ mục Aria: 128,0M/0B
[OK] Tỷ lệ truy cập bộ đệm trang Aria: 98,6% (146 bộ nhớ cache / 2 lần đọc)

-------- Số liệu TokuDB ---------------------------------------- ------------------------------------
[-] TokuDB bị vô hiệu hóa.

-------- Số liệu XtraDB ---------------------------------------- ------------------------------------
[-] XtraDB bị tắt.

-------- Số liệu Galera ---------------------------------------- ------------------------------------
[-] Galera bị tắt.

-------- Số liệu sao chép ---------------------------------------- -------------------------------
[-] Galera Sao chép đồng bộ: KHÔNG
[-] Không có (các) nô lệ sao chép nào cho máy chủ này.
[-] Định dạng Binlog: HỖN HỢP
[-] Đã bật hỗ trợ XA: BẬT
[-] Sao chép bán đồng bộ Master: Chưa được kích hoạt
[-] Slave sao chép bán đồng bộ: Chưa được kích hoạt
[-] Đây là một máy chủ độc lập

-------- Khuyến nghị ----------------------------------------- ----------------------------------
Khuyến nghị chung:
    Kiểm soát (các) dòng cảnh báo vào tệp /var/lib/mysql/dichvu.err
    Kiểm soát (các) dòng lỗi vào tệp /var/lib/mysql/dichvu.err
    MySQL đã được bắt đầu trong vòng 24 giờ qua - các đề xuất có thể không chính xác
    Giảm dung lượng bộ nhớ MySQL tổng thể của bạn để ổn định hệ thống
    Dành máy chủ này cho cơ sở dữ liệu của bạn để có hiệu suất cao nhất.
    Chỉ định cấu hình tài khoản của bạn bằng ip hoặc mạng con, sau đó cập nhật cấu hình của bạn với skip-name-resolve=1
    Kích thước bảng tạm thời đã lớn - giảm kích thước tập hợp kết quả
    Giảm truy vấn SELECT DISTINCT của bạn mà không có mệnh đề LIMIT
    Lược đồ hiệu suất nên được kích hoạt để chẩn đoán tốt hơn
    Lược đồ hiệu suất không nên được kích hoạt cho MariaDB 10.0 vì vấn đề về hiệu suất
Các biến để điều chỉnh:
  *** Mức sử dụng bộ nhớ tối đa của MySQL cao một cách nguy hiểm ***
  *** Thêm RAM trước khi tăng biến bộ đệm MySQL ***
    performance_schema = BẬT kích hoạt PFS
    performance_schema = TẮT tắt PFS

Xin cho tôi lời khuyên trong trường hợp này

Free -m khi cpu tải cao

              tổng số buff/bộ đệm được chia sẻ miễn phí đã sử dụng hiện có
Mem: 7821 1421 4755 431 1644 5715
Hoán đổi: 1023 0 1023
Điểm:0
lá cờ ua

tmp_table_size = 512M -- Quá cao; giới hạn nó ở khoảng 1% RAM. (Điều này sẽ không ảnh hưởng nhiều đến CPU, nhưng sẽ giúp tránh tráo đổi.)

CPU cao có nghĩa là các truy vấn được lập chỉ mục hoặc xây dựng kém. Sử dụng nhật ký chậm. Hơn: http://mysql.rjweb.org/doc.php/mysql_analysis#slow_queries_and_slowlog

Sau đó đăng lên stackoverflow.com; có nhiều người chuyên về MySQL hơn ở đó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.