<![CDATA[Messages posted by "myquartz"]]> /hvaonline/posts/listByUser/99357.html JForum - http://www.jforum.net Gửi các pro DDOS đọc qua /hvaonline/posts/preList/45828/281638.html#281638 /hvaonline/posts/preList/45828/281638.html#281638 GMT Apache2 chạy độc lập không cần cài đặt? /hvaonline/posts/preList/45823/281620.html#281620 /hvaonline/posts/preList/45823/281620.html#281620 GMT Apache2 chạy độc lập không cần cài đặt? /hvaonline/posts/preList/45823/281594.html#281594 /hvaonline/posts/preList/45823/281594.html#281594 GMT Mail Server Postfix and Dovecot không thể gửi email bằng mail client /hvaonline/posts/preList/45777/281373.html#281373 /hvaonline/posts/preList/45777/281373.html#281373 GMT Xin giúp đỡ vấn đề về high load avg

tuanksor wrote:
Cảm ơn myquartz đã tư vấn, Về source code và tất cả content đều đặt tại 1 folder trên nfs mount, read lẫn write 1. Vì hiện nó đang vận hành, mô hình xuyên xuốt từ phía khách hàng đến cả phần quản lý, nên việc thay đổi như vậy mình thấy rất khó mặc dù là muốn thế 2,3. Đây là option mount nfs hiện tại đang sử dụng: Code:
rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.0.0.x,mountvers=3,mountport=43882,mountproto=udp,local_lock=none,addr=10.0.0.x 0 0
trước có dùng option fsc và chạy cachefs nhưng mình bỏ do mình test đi test lại thấy vẫn như nhau k có tác dụng gì lắm.
bạn phải tuning/sửa lại ứng dụng PHP hoặc cách dùng module, sao cho phân rõ kiểu IO với từng module (read hay read/write) để dùng NFS cache được 
mình k rõ ý này lắm, myquartz có thể tư vấn thêm ở cái đoạn này ko :D ?  
Về mount options, không có gì nhiều để góp ý, trừ việc thay relatime thành noatime, nó sẽ giúp tiết kiệm 1 chút IO cho việc read-only. Về ý mà bạn chưa rõ, thì nó đơn giản là phân rõ mục nào là read-only (ví dụ source code), mục nào lả read/write. Để có ứng phó và dùng các mount-point thích hợp cho từng dạng truy cập, không để chung code + static content + upload content vào chung 1 chỗ như cái nồi lẩu, sẽ rất khó. Một số dạng static content như ảnh, hay css ít bị thay đổi, thì nên read-only, nó sẽ tận dụng thế mạnh của nfs cache ở phía client. Còn một số thư mục dành cho upload, thì việc tạo 1 thư mục chuyên cho upload (tạo riêng 1 mount point read-only để client tải từ web server cũng là nội dung upload đó) sẽ giúp tối ưu hóa IO hơn một chút. Nếu content upload nhiều thì tốt nhất là quá trình upload sẽ write file vào 1 temp dir (ở local storage) rồi sau khi upload xong 100% content, thì làm lệnh move sang NFS, nó sẽ nhanh hơn nhiều là open và write trực tiếp file vào nfs share. Việc sửa ứng dụng là mệt nhất. Nhưng nó sẽ mang lại hiệu quả tuyệt đối. Tóm lại tuân thủ nguyên tắc lập trình rõ ràng: file nào chỉ cần read thì open read-only trên mount point read-only. file nào cần write thì open write-only trên mount point read/write. Tránh tối đa mở file vừa read, vừa write, lẫn lộn. Làm việc với NFS thì có mấy cái chú ý vậy thôi. Mấy bài toán web cỡ lớn đòi hỏi nhiều đầu tư về kiến trúc, mô hình hoạt động và ứng dụng thay đổi nhiều, nó không phải cái app nhỏ cho vào cái máy lớn để chạy đâu.]]>
/hvaonline/posts/preList/45758/281360.html#281360 /hvaonline/posts/preList/45758/281360.html#281360 GMT
Xin giúp đỡ vấn đề về high load avg

tuanksor wrote:
- Source code đặt tại NFS (mount nfs v3)  

tuanksor wrote:
2. Mình có test qua performance giữa apache, php, local storage(1) vs apache, php, nfs storage(2) thì thấy performance (1) > (2), sử dụng strace php-cgi để count syscall khi chạy trên nfs thì thấy các syscall access, open có % lớn hơn khi chạy local storage (ở local storage thì syscall munmap lớn). Sử dụng cachefs & nhưng cũng không ăn thua. Nên có nghĩ đến việc đổi mô hình, nhưng mắc phải vấn đề sync, dữ liệu hosting rất nhiều. với lại đang là mô hình production, thay đổi thì chắc rất cực. Mình tập trung vấn đề load avg tại web server do chỉ có 1 con server ấy bị, các con khác còn lại chạy bình thường 
Có vẻ như 2 phần bôi đậm kia, kết hợp thông tin NFS v3 là vấn đề của bạn. Ứng dụng của bạn khi chạy local storage nó sử dụng IO kiểu mmap/munmap, một kiểu IO có tốc độ cao và trễ thấp. Khi mount với NFS v3, thì mmap không được hỗ trợ, phải fail-back về kiểu open/read bình thường (nên syscall 2 cái này nhiều hơn). Có vài thảo luận về vấn đề NFS liên quan đến mmap này. Kể cả khi dùng open/read thì cũng có vấn đề. Do NFS là 1 share file system nên yếu tố concurrency được đảm bảo, chính nó gây nhiều overhead xử lý các IO, nhất là trong trường hợp read+write IO. Đó chính là nguyên nhân dẫn tới IO wait cao hơn local storage. Bạn không nói rõ ngoài source code ra thì còn content nào khác (ví dụ images, css...) phải lấy ra từ disk không, ứng dụng chỉ source code/content read only hay cả read/write. Vì thế, giải pháp là 1. bạn phải từ bỏ NFS, phải dùng local storage + sync. 2. bạn phải tuning/sửa lại ứng dụng PHP hoặc cách dùng module, sao cho phân rõ kiểu IO với từng module (read hay read/write) để dùng NFS cache được, (kiểm tra lại ứng dụng mount NFS dạng read-only và tùy chọn nolock, bật cache nữa). 3. Ứng dụng phải sửa hoặc NFS mount option phải chỉnh lại để truy cập IO tối ưu cho open/read, tránh locking hoặc cache-sync giữa các node mount lên NFS server. Ref: Google 1 lúc thì ra khá nhiều thông tin liên quan đến NFS mmap. Ví dụ có 1 thảo luận: http://stackoverflow.com/questions/10367577/mmap-file-shared-via-nfs ]]>
/hvaonline/posts/preList/45758/281352.html#281352 /hvaonline/posts/preList/45758/281352.html#281352 GMT
Một hệ thống như Cloudflare

levutech wrote:

myquartz wrote:
Hay nhưng làm thành dịch vụ thì ... khó sống. Vả lại quy mô VN quá nhỏ để cần 1 cái đó 
Mình không định triển khai cái này thành một service hay tương tự thế. Chủ yếu dùng cho các khách hàng của công ty mà thôi. Cloudflare không có hạ tầng tại VN nên nhiều khách hàng dùng Cloudflare thì phải đi đường vòng, trong khi không phải ai cũng chịu bỏ tiền để dùng pro plan của Cloudflare. Hơn nữa xây dựng từng hệ thống riêng lẽ như Firewall hay IDPS thì mình thấy đơn giản, nhưng kết hợp lại với nhau thì còn nhiều cái phải bàn quá.:D 
Vậy bạn chỉ cần làm 1 Web App Firewall (hoặc gọi chính xác là HTTP Reverse Proxy), là đủ cho 1 site khách hàng. Quy mô mạng VN không cần 1 CDN cho phức tạp, trừ khi các dịch vụ của bạn là download file thì có thể xem xét đặt mirror server 2 nhà cung cấp ở 2 đầu VN thì ổn rồi (mirror đơn giản hơn CDN gấp nhiều lần), rồi link ghi: HN down tại đây, HCM down tại đây, là xong. Mình không rõ khách hàng của bạn có site quy mô thế nào, đạt peak băng thông ra sao, có HTTPS không, nhưng 1 HTTP Reverse Proxy, chỉ cần 1 server ngix khéo 1 chút nó có thể gánh được từ 1000-3000 request/s, băng thông đạt 300Mbit/s.]]>
/hvaonline/posts/preList/45735/281206.html#281206 /hvaonline/posts/preList/45735/281206.html#281206 GMT
Một hệ thống như Cloudflare

levutech wrote:
Topic này hay mà sao thấy ít bạn quan tâm đến topic nhỉ. Mình đang rất mong nhận được sự góp ý và chia sẽ ý kiến của những người có kinh nghiệm như anh conmale hoặc là quanta. Chắc các bạn cũng từng xây dựng những system như thế này rồi. :D 
Hay nhưng làm thành dịch vụ thì ... khó sống. Vả lại quy mô VN quá nhỏ để cần 1 cái đó. CloudFlare nó là cả 2 thứ kết hơp lại: CDN và Web App Firewall. Làm được như họ là khả thi nhưng giá thì khó mà rẻ hơn, quy mô nhỏ lại càng khó, đi mua cho nhanh. Hơn nữa nó không chỉ là vấn đề kỹ thuật. CloudFlare họ có contract với 1 số tier-1 ISP trên thế giới (hoặc tương tự thế) nên về mặt đường truyền mạng, họ có lợi thế cực lớn và không sợ DDoS là vì vậy. CDN thì ở VN có lẽ chỉ vài nhà dịch vụ cung cấp nội dung như game online, video clip mới cần đến, do mạng VN nhỏ, VNIX cũng khá tốt đủ băng thông liên ISP rồi. Một điểm nữa những nhà cung cấp nội dung lớn cần đến CDN thì lại trực thuộc một ISP, họ thích gia tăng giá trị mạng ISP của mình hơn là đặt CDN cho nhiều khách hàng ở ISP khác, dùng nội dung để tạo lợi thế so với ISP khác. Kinh doanh nội dung độc lập ở VN khó sống được lắm. HVA cũng có vài bài liên quan đến CDN, search google cũng nhiều và việc thiết lập nó nếu bạn nắm trong tay cả dịch vụ và CDN thì rất dễ dàng (sync content giữa các bên chẳng hạn). Còn cái Web App Firewall, HVA cũng nhiều bài viết về cái này. Đủ xài cho một dịch vụ nội bộ.]]>
/hvaonline/posts/preList/45735/281189.html#281189 /hvaonline/posts/preList/45735/281189.html#281189 GMT
Cần giúp đỡ về sắp xếp database MySQL

tmlinhkct wrote:
mình xin đính chính chút là nếu cột id đã là primary key rồi thì không cần dùng WHERE... nữa mà chiến luôn: Code:
select id, content_id, content_category_id, title, sub_title, image, idlang, show_content, dateadd  from content order by id desc limit 0,10
 
Câu lệnh này đáp ứng được tiêu chí viết gọn, đẹp nhưng đôi khi nó không chạy như thiết kế và xui xẻo mà developer thay đổi 1 chút thành "order by dateadd" (liệt kê tin từ cũ tới mới chứ không cho mới lên đầu), hoặc primary key không chỉ là id mà thêm category_id thì lúc đó sẽ rất chậm, viết xấu với mệnh đề WHERE sẽ an toàn hơn và không ảnh hưởng nhiều vì câu order by.]]>
/hvaonline/posts/preList/45564/281089.html#281089 /hvaonline/posts/preList/45564/281089.html#281089 GMT
hỏi về mạng lan, ping /hvaonline/posts/preList/45721/281070.html#281070 /hvaonline/posts/preList/45721/281070.html#281070 GMT Hỏi về SLIP và PPP trong Link layer /hvaonline/posts/preList/35089/280936.html#280936 /hvaonline/posts/preList/35089/280936.html#280936 GMT Tư vấn cấu hình Raid cho SQL /hvaonline/posts/preList/45687/280889.html#280889 /hvaonline/posts/preList/45687/280889.html#280889 GMT Cách tính mức chịu tải của server /hvaonline/posts/preList/45677/280858.html#280858 /hvaonline/posts/preList/45677/280858.html#280858 GMT Cách tính mức chịu tải của server /hvaonline/posts/preList/45677/280847.html#280847 /hvaonline/posts/preList/45677/280847.html#280847 GMT HN - Trung tâm CNTT PGBANK tuyển dụng kỹ sư quản trị hệ thống /hvaonline/posts/preList/45574/280752.html#280752 /hvaonline/posts/preList/45574/280752.html#280752 GMT Vấn đề loadavg cao trong khi CPU, I/O, RAM bình thường /hvaonline/posts/preList/45652/280741.html#280741 /hvaonline/posts/preList/45652/280741.html#280741 GMT Phân tích log trong CentOS, máy chủ lỗi phần cứng. /hvaonline/posts/preList/45618/280564.html#280564 /hvaonline/posts/preList/45618/280564.html#280564 GMT Phân tích log trong CentOS, máy chủ lỗi phần cứng. /hvaonline/posts/preList/45618/280557.html#280557 /hvaonline/posts/preList/45618/280557.html#280557 GMT Tìm nguyên nhân email gửi từ postfix bị xác nhận là spam /hvaonline/posts/preList/45608/280500.html#280500 /hvaonline/posts/preList/45608/280500.html#280500 GMT Hệ thống mạng LAN bị tấn công /hvaonline/posts/preList/45607/280492.html#280492 /hvaonline/posts/preList/45607/280492.html#280492 GMT Cần giúp đỡ về sắp xếp database MySQL

henryhuy wrote:
Xin gừi bác cấu trúc table của mình như sau : 1 id int(250) 2 content_id varchar(250) 3 content_category_id varchar(255) 4 title text 5 sub_title text 6 detail longtext 7 image varchar(250) 8 idlang varchar(250) 9 show_content int(2) 10 dateadd datetime Câu lệnh SELECT mỗi lần lấy tin mới nhất của mình thế này : "select id, content_id, content_category_id, title, sub_title, image, idlang, show_content, dateadd from content order by id desc limit 0,10" Nếu muốn tạo INDEX thì mình làm thế nào, sorry mình hỏi hơi kỹ vì chưa làm INDEX lần nào cả Mình có đọc 1 số tut trên mạng thì hướng dẫn là ALTER TABLE content ADD INDEX idx_id(id); nhưng mình không rõ là khi nào nên ALTER TABLE cả, có phải là mỗi lần select 10 tin mới ra chăng ? Cảm ơn các bác nhiều. 
Ợ. Vậy là bạn học lập trình SQL mà không học về ... index của CSDL, một thứ quan trọng sống còn của nó (mặc dù hệ thống vẫn chạy khi không có nó), có thể đây là sự thiếu sót không chỉ mỗi bạn mắc phải đâu. Cột ID của bạn có phải là primary key? nếu là primary key rồi thì không cần index nữa vì nó đã được index rồi (primary key là 1 dạng index, với thuộc tính unique). Việc tạo index chỉ 1 lần kèm với tạo bảng, và thi thoảng thì phải bảo dưỡng nó thôi (analyze table), alter table là nhóm DDL như create table... Nếu cột ID của bạn là số tăng dần, mỗi bài tin là tăng 1 đơn vị, bạn lấy 10 tin mới nhất thì sửa 1 chút thế này: select id, content_id, content_category_id, title, sub_title, image, idlang, show_content, dateadd from content where id >= (select max(id)-10 from content) order by id desc limit 0,10 Nếu lo ngại có sự delete trong content, gây lỗ thủng id, thiếu, thì max(id) - 10 thay bằng - 20, - 30... thậm chí 100 vẫn là rất tốt cho bảng. nó đảm bảo rằng dù bảng có tăng kích thước lên thì tốc độ vẫn không thay đổi nhiều.]]>
/hvaonline/posts/preList/45564/280445.html#280445 /hvaonline/posts/preList/45564/280445.html#280445 GMT
Cần giúp đỡ về sắp xếp database MySQL

henryhuy wrote:
Cảm ơn bác đã phản hồi, mình muốn hỏi thêm là nếu 1 table có 1000 record và 1 table 10000 record thì tốc độ load dữ liệu có khác nhau không nếu mình có limit và order ? 
Khác nhau 10 lần, nói chung đa số trường hợp nếu câu chỉ có limit và order thôi thì sẽ không sử dụng đến index (kể cả order trên cột đã index). MySQL luôn order trước (tức nó lấy hết 1000 hay 1 vạn, 1 triệu ra sort), rồi limit. Phép toán sort là phép toán đắt tiền nên sẽ chậm. Chỉ cần nhớ đến 1 điều này: index chỉ được đụng đến khi cột nó trong where và tên cột được index đó đứng duy nhất một mình bên vế so sánh (=, <, > hoặc between), không có hàm hoặc bất cứ công thức nào, cũng không có cột nào ở vế còn lại. Ví dụ id=xx hoặc id<=xx sẽ dùng index, nhưng left(id,5) = xx thì không (do id không đứng một mình ở vế đó). Hoặc id (là số), ta viết thế này: id >= 5 (cái này có) thì khác hoàn toàn với id - 5 >= 0 (cái này không dùng index). Thế này cũng không index: id >= max_id - 5 (trong đó 2 cột id và max_id cùng 1 bảng, nếu max_id ở bảng khác thì phải có điều kiện where với bảng đó nữa).]]>
/hvaonline/posts/preList/45564/280431.html#280431 /hvaonline/posts/preList/45564/280431.html#280431 GMT
Checklist audit về security /hvaonline/posts/preList/45584/280390.html#280390 /hvaonline/posts/preList/45584/280390.html#280390 GMT HeartBleed là cái gì?

invalid-password wrote:
Nếu bạn không phải là người nghiên cứu về các lỗ hổng mà chỉ là người quản trị, đảm bảo an toàn mạng thì bạn chỉ cần biết rằng hiện nay đang có một cái lỗ hổng gọi là HeartBleed, nó ảnh hưởng tới những cái gì-hệ thống nào, và cần làm gì (patch, update) để khắc phục nó, hết. Mình thì mình không nghiên cứu về các lỗ hổng, đọc thì nhức đầu, mà cũng không dùng làm gì cả, lại mau trôi qua và chìm vào quên lãng, nên mình không đọc :D Mình cũng làm về sờ-cu rờ-ti (security) nè, việc của mình chỉ đơn giản là cài patch, sau đó lãnh lương. Nghề bảo mật thật là đơn giản ! 
Ủng hộ bạn này. Nghề bảo mật thật ra là: 95% nhân sự chỉ cần làm đúng những quy tắc được 5% còn lại đề ra, phải làm và làm một cách nghiêm túc, dù nó lặp đi lặp lại nhàm chán và vô vị... Thời gian rảnh còn lại là để đọc báo, trăm thứ bà rằn từ chân dài, cổ dài hay chính trị, quân sự, tán tỉnh, lừa đảo cướp giết hiếp, hoặc cả viết văn hay làm thơ, kể chuyện kiếm tiền dễ thế nào qua email... Tuy vớ vẩn nhưng nó là ... công việc. Một ngày đẹp trời đọc báo CAND thấy vụ cướp giật laptop của một chân dài làm rách hết áo quần trên đường CMT8 :-D, thế là hôm sau công ty ban hành chính sách mã hóa laptop, rồi lụi cụi đi đến từng em và ... năn nỉ cho lấy laptop để làm mã hóa.]]>
/hvaonline/posts/preList/45568/280291.html#280291 /hvaonline/posts/preList/45568/280291.html#280291 GMT
cách thức quản lý bộ nhớ ram /hvaonline/posts/preList/45358/280271.html#280271 /hvaonline/posts/preList/45358/280271.html#280271 GMT Cần giúp đỡ về sắp xếp database MySQL /hvaonline/posts/preList/45564/280270.html#280270 /hvaonline/posts/preList/45564/280270.html#280270 GMT Bàn về nguồn gốc và tính hợp pháp của key Windows, MS Office giá rẻ

eyestv wrote:
Chào bác, con server kế toán cơ quan em (windows server 2003 enterprise) sau bao năm chạy chẳng vấn đề gì, một ngày đẹp trời nó bị MS phát hiện và locked. Hiện tại khởi động là nó bắt phải nhập product key. Giờ chỉ còn cách nhập key xịn vào và chờ MS confirm. Em có đề đạt nguyện vọng xin tiền mua key, nhưng sếp ở VN thì các bác biết rồi đó: "Đây là nhiệm vụ của IT các anh, tôi trả lương cho các anh là để đảm bảo hệ thống mạng chạy ổn định, có cái việc bé xíu thế này mà không giải quyết được à?" Chắc đành phải bỏ tiền túi ra thôi. Bác chủ thớt có kinh nghiệm thì tư vấn giúp em với. 
Bỏ việc đi bạn. Gặp sếp thiếu hiểu biết thế thì ko nên làm nữa và nếu lương cũng không có gì cao. Bỏ 800$-2000$ mua bản quyền Win2003 Std/Ent (mà giờ không chắc mua được) chắc là bạn sẽ không làm nổi đâu. Mua key lậu không chắc chắn đâu á. Vả lại tiên trách kỷ hậu trách nhân, ngay từ đầu các bạn IT nói cho sếp biết tổng chi phí phải trả để sở hữu phần mềm kế toán đó (ngoài phần mềm kế toàn, máy chủ thì gồm cả phí bản quyền Windows và SQL Server... - nếu sử dụng - để chạy cho PMKT đó), thì đâu đến nỗi. Mình làm thuê cho doanh nghiệp. mua key phần mềm cho doanh nghiệp, chứ có phải là mua cho cá nhân mình đâu, tiền thì doanh nghiệp phải trả chứ không phải mình. Nhiều IT Manager (và đáng buồn đa số là CIO, hoặc Chief IT rất cao, rất quan trọng) không ý thức được rủi ro này, không nói từ đầu để sếp CEO cũng hiểu rủi ro đó, nay thì sếp chửi bạn là quá đúng rồi. Nếu lúc đó nói trước, ông ấy tặc lưỡi, quyết cho dùng key lậu thì nay có làm sao ông ấy chịu, không phải bạn. Rủi ro nó không xảy đến ngay mà nhiều năm sau mới bị, khi sự nghiệp của bạn ở công ty đã ổn định và vị trí cao, thế mới đau.]]>
/hvaonline/posts/preList/45518/280230.html#280230 /hvaonline/posts/preList/45518/280230.html#280230 GMT
HVANews - Lỗi cực kỳ nghiêm trọng OpenSSL Heartbleed /hvaonline/posts/preList/45560/280229.html#280229 /hvaonline/posts/preList/45560/280229.html#280229 GMT Các bác cho em hỏi về tốc độ Switch..... /hvaonline/posts/preList/45533/280153.html#280153 /hvaonline/posts/preList/45533/280153.html#280153 GMT Có thể tracert được địa chỉ MAC không? /hvaonline/posts/preList/45498/279997.html#279997 /hvaonline/posts/preList/45498/279997.html#279997 GMT