Đã sắp xếp. Dường như có một cách tiếp cận "mới" trong các truy vấn SQL được phát hiện bởi nhóm OC và nó nên được gọi là "DDoS cho đến chết".
Cơ sở sản phẩm giờ đây đã phát triển thành 37 nghìn sản phẩm trong 129 danh mục (từ 18k qua đêm, lol ... không được viết rằng các tập lệnh nhập tự động và đưa vào lamer ...) Và thời gian tải đã tăng 6-12 giây để 20-25 giây, đánh máy chủ SQL cứng:
[quote] Вопросов начиная с запуска: 514.064.911 (ques kể từ khi khởi động) ø в час: 1.301.788 (ques avg cho giờ) ø в минуту: 21.696 (ques trung bình cho phút) ø в секунду: 362 (ques trung bình cho giây) [/ quote]
Điều này là không bình thường, vì có 2 người dùng trên hệ thống - kịch bản tự động (giới hạn - 30 ques mỗi giây, sau đó ngủ (1)) và tôi (362-30 = 332 truy vấn mỗi giây? bởi một người? WTF devs?). Dựa trên thống kê này OC theo cách này sẽ cần một trang trại máy chủ nghiêm trọng để phục vụ hơn 500 người dùng cùng một lúc. Sẽ không xảy ra. Không phải trong cuộc đời này.
Tôi duy trì các trang web khác nhau và đã viết lại gần như tất cả chúng. Trang web được truy cập nhiều nhất của tôi (200 nghìn lượt truy cập mỗi ngày) đang tạo ra "chỉ" 2,5 triệu lít mỗi ngày. Và nó có nặng (nội dung), tin tôi đi. Nếu OC được nạp như nhau (200k lượt xem) điều này có nghĩa là sẽ có 100-120 triệu lít mỗi ngày.
CSONG các truy vấn không phải là quá khôn ngoan, cho máy chủ thời gian khó khăn với ORDER BY (như tôi nghi ngờ) và CHỌN DISTINCT (đau !!!).
CSONG có nhiều tùy chọn được đặt cho mỗi truy vấn, bất kể chúng có được đặt bởi người dùng hay không (sắp xếp, sắp xếp, v.v.). Điều này làm cho các câu hỏi dài hơn 4-5x so với dự kiến, ngay cả khi người dùng không muốn bất kỳ thứ tự sắp xếp nào (ASC, DESC, v.v.)
C thereNG có một số cách viết sai. Làm thế nào bạn có thể kéo tổng số cho bất cứ điều gì bằng cách sử dụng 5 phps và 3 truy vấn, miễn là bạn có thể làm đơn giản 1 dòng "SELECT COUNT (*) FROM ..."? Nhóm OC dường như không quan tâm đến thời gian thực thi và tải máy chủ.
Tôi muốn xin lỗi nếu ai đó bị xúc phạm bởi những gì tôi viết, nhưng trong trường hợp của tôi tôi đúng: toàn bộ cách tiếp cận là sai để đạt được mục tiêu (thực hiện nhanh trên 37k sản phẩm/129 con mèo). OC có thể tốt cho một người có 2 loại và 50 sản phẩm (lol?). Dunno. Và tôi có lẽ sẽ không tìm ra.
Khi INFO - bộ nhớ đệm không phải là giải pháp. Bộ nhớ đệm phía máy chủ là khá đủ. Bất cứ điều gì ngoài điều này có nghĩa là bạn có vấn đề mã hóa nghiêm trọng. Vì vậy, không ... Tôi sẽ lặp lại KHÔNG MUA mô-đun bộ nhớ đệm. Đang ẩn các vấn đề, không giải quyết chúng. Nếu một mô-đun bộ nhớ đệm có thể ẩn vấn đề trên các sản phẩm 40k, nó sẽ không thể làm điều đó trong các sản phẩm 140k. Bạn sẽ cần mô-đun bộ nhớ đệm cho mô-đun bộ nhớ đệm, lol.
Bây giờ, đến giải pháp. Cách dễ dàng. Chúng tôi sẽ chỉ sửa đổi các vấn đề chính. Tôi sẽ không giải thích những sửa đổi mà tôi đã thực hiện trên phiên bản của mình, vì chúng có nhiều tệp và rất quan trọng nếu bạn không hiểu bạn đang làm gì (bạn có thể mất tùy chọn OC bạn muốn giữ, trong khi tôi không quan tâm về các tùy chọn miễn là trang web đang tải trong nửa phút). Vì vậy, - sửa đổi nhỏ CHỈ.
Wil say - giải thích cho phiên bản 1.5.5.1 cổ phiếu, chủ đề chứng khoán. Có nghĩa là - không có mod. Sau khi sửa đổi, bạn sẽ mất khối bên trái với các danh mục, nhưng trang web của bạn sẽ tải NHANH CHÓNG (37k sản phẩm/129 mèo -> 0,17 giây trong tổng số 5 tải, khoảng cách máy chủ là ~ 200mi)
0) BACKUP trang web của bạn. Chúng tôi sẽ sửa đổi các tập tin. Bạn có thể làm một mớ hỗn độn kinh khủng. Và khóc sau đó.
1) Nhận/danh mục/bộ điều khiển/sản phẩm/danh mục.php Tìm dòng: 184
Phải chứa: $product_total = $this->model_catalog_product->getTotalProducts($data);
Replace with: //$product_total = $this->model_catalog_product->getTotalProducts($data);
Mô tả: Bình luận ra loại tính là phải mất khá damd nhiều để đếm sản phẩm trong 129 loại (129 truy vấn WTF.? ?)
2) Nhận /catalog/controller/product/category.php Tìm dòng: 187
Phải chứa: 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : '')
,
Replace with: 'name' => $result['name'],
Mô tả: Dọn dẹp - không có đếm được hiển thị trong các thể loại, như chúng ta don `t đếm chúng nữa.
3) Nhận /catalog/controller/product/category.php Tìm dòng: 388 Phải chứa: 'common/column_left',
Replace with: // 'common/column_left',
Mô tả: hệ Skippng của cột bên trái trong hạng mục lượt xem.
4) Nhận /catalog/controller/product/product.php Tìm dòng: 463 Phải chứa: 'common/column_left',
Replace with: // 'common/column_left',
Mô tả: hệ Skippng của cột bên trái theo quan điểm của sản phẩm .
5) Nhận /store/catalog/view/theme/default/template/product/product.tpl Tìm dòng: 1
Phải chứa: <?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
Replace with: <?php echo $header; ?><?php echo $column_right; ?>
Mô tả: Xóa cột bên trái khỏi chế độ xem chủ đề - sản phẩm.
6) Nhận /store/catalog/view/theme/default/template/product/category.tpl Tìm dòng: 1
Phải chứa: <?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
Replace with: <?php echo $header; ?><?php echo $column_right; ?>
Mô tả: Xóa cột bên trái khỏi chế độ xem chủ đề - danh mục.
XONG. Kiểm tra tốc độ tải của bạn. Nên khá tuyệt vời, nếu vấn đề của bạn giống như tôi.
LƯU Ý: Xin lưu ý rằng tôi không quen với phiên bản OC này và chưa bao giờ sử dụng nó trước đây. Vì chúng tôi đã giải quyết được một phần vấn đề, nó không được giải quyết triệt để. Đây là bản sửa lỗi tạm thời. Xóa các phần gây tải chậm là giải pháp cho đến khi bạn viết lại chúng, lần này hy vọng sẽ tốt hơn. Tôi sẵn sàng viết lại nó, nếu ai đó muốn trả giá cao hơn cho sếp của tôi. Tôi có thể đi nghỉ và làm việc cho bạn:) Thanh toán của tôi hiện tại là 4700 € mỗi tuần.Việc hiểu và viết lại cột bên trái này đúng cách sẽ không mất nhiều hơn 1-2 ngày làm việc.
PP. Sẽ đăng bài này ở một vài nơi, bởi vì tôi không nghĩ rằng nhóm phát triển OC sẽ thích những gì họ đã đọc, bất kể tôi không có ý xúc phạm họ - chỉ để chỉ ra những sai lầm nghiêm trọng mà họ đã thực hiện (25,31 thời gian tải trung bình cho mỗi trang trong các bài kiểm tra - không có khách hàng nào sẽ chờ hơn 3-4 giây trước khi chuyển sang trang khác! Dafuq?). Và bằng cách không cho phép tôi đăng thông tin này, mọi người không biết cách giải quyết vấn đề và đi mua một "mô-đun bộ nhớ đệm" thực sự là các tệp trên đĩa cứng như hoang dã. Lãng phí tiền bạc, lãng phí tài nguyên ổ đĩa cứng, lãng phí điện ... và tất cả điều này - để tạo ra một ảo ảnh mọi thứ đều chạy tốt, trong khi nó không.
Tôi biết đã có một số câu trả lời nhưng có gì đó giúp đỡ là có một hộp máy chủ chuyên dụng và máy chủ cơ sở dữ liệu chuyên dụng. – TheBlackBenzKid