banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận việc định hướng Sinh viên sắp ra trường, muốn theo Sysadmin, cần chuẩn bị những gì?  XML
  [Question]   Sinh viên sắp ra trường, muốn theo Sysadmin, cần chuẩn bị những gì? 03/06/2013 11:03:27 (+0700) | #1 | 276286
fcbacktrack
Member

[Minus]    0    [Plus]
Joined: 29/06/2012 23:30:57
Messages: 38
Offline
[Profile] [PM]
Hi all
Những tiêu chí nào để cho sinh viên đi theo lĩnh vực đó, nếu chỉ có sử dụng Linux, và cài đặt cấu hình DHCP, DNS, LAMP, file Log, BIND,.... thì chắc không đáp ứng các yêu cầu doanh nghiệp, các Anh làm trong lĩnh vực đó có thể nói rõ hơn một tý khồn
Chẳng hạn như cài LAMP cài thông qua repo hay cài từ source..
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 03/06/2013 21:25:40 (+0700) | #2 | 276300
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Việc làm cho sinh viên mới ra trường khi làm lĩnh vực Sysadmin 

Tiêu đề đặt chưa sát lắm, dễ làm người khác hiểu nhầm là: bạn đang muốn giới thiệu chỗ làm sysadmin cho các bạn sinh viên mới ra trường.

fcbacktrack wrote:

Những tiêu chí nào để cho sinh viên đi theo lĩnh vực đó, nếu chỉ có sử dụng Linux,
 

Quan trọng là bạn dùng Linux ở mức độ nào: end user hay sysadmin?

fcbacktrack wrote:

và cài đặt cấu hình DHCP, DNS, LAMP, file Log, BIND,.... thì chắc không đáp ứng các yêu cầu doanh nghiệp,
 

Đúng rồi. Bây giờ trên mạng có rất nhiều hướng dẫn cài đặt các dịch vụ đó. Quan trọng là bạn hiểu sâu đến đâu để có thể tuning cho nó chạy tốt hơn.

fcbacktrack wrote:

Chẳng hạn như cài LAMP cài thông qua repo hay cài từ source.. 

Không quan trọng lắm. Đôi khi cần cài từ source, rồi build thành rpm, và đưa lên local repo để còn cài cho nhiều máy khác.

Mình thử đưa ra một câu hỏi để bạn trả lời nhé:

Khi mình chạy `ps -ef | grep [h]ttpd` thì được kết quả là:
Code:
apache   25125 31006  0 21:54 ?        00:00:00 /usr/sbin/httpd
apache   26869 31006  0 22:04 ?        00:00:00 /usr/sbin/httpd
apache   27349 31006  0 22:07 ?        00:00:00 /usr/sbin/httpd
apache   27696 31006  0 22:09 ?        00:00:00 /usr/sbin/httpd
apache   28534 31006  0 22:14 ?        00:00:00 /usr/sbin/httpd
root     31006     1  0 16:16 ?        00:00:00 /usr/sbin/httpd
apache   31011 31006  0 16:16 ?        00:00:00 /usr/sbin/httpd

Như bạn nhìn thấy: ở đây có nhiều processes, cái thì owned bởi `root`, cái lại owned bởi `apache`? Tại sao lại thế nhỉ? Tác dụng của việc này là gì?

PS: 2 dấu ngoặc vuông bao quanh chữ "h" chỗ lệnh `grep` để làm gì nhỉ smilie?
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 03/06/2013 22:05:42 (+0700) | #3 | 276302
phuongnvt
Member

[Minus]    0    [Plus]
Joined: 09/02/2011 03:35:39
Messages: 332
Offline
[Profile] [PM]
Mục tiêu mà câu hỏi của Quanta đưa ra đang hướng tới điều gì nhỉ? smilie
Nhiều người nhận được lời khuyên, song chỉ có những người khôn mới sử dụng lời khuyên đó


[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 15:42:20 (+0700) | #4 | 276396
[Avatar]
McSteven
Member

[Minus]    0    [Plus]
Joined: 12/10/2010 08:12:13
Messages: 15
Offline
[Profile] [PM]
Với câu hỏi Quanta mình xin được trả lời nếu có sai xót thì cũng xem như bài học cho mình. Vì hiều biết của mình về Linux còn rất yếu.
Có nhiều process nhưng cái thì chạy bởi owner Root vì Apache là 1 daemon process nên cần phải chạy với quyền root.
Còn lại chạy với user Apache để đảm bảo rằng sẽ không xảy ra leo thang lên quyền root với cái process khác nhằm đảm bảo security.
Còn dầu ngoặc vuông thì đảm bảo chắc chằn rằng chỉ tìm những kí tự đầu luôn là "h".
Khả nằng mình trả lời chỉ tới đó.Nếu có sai xót mong mọi người góp ý.
Profanity is the one language that all programmers understand.
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 16:44:23 (+0700) | #5 | 276399
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

McSteven wrote:

Có nhiều process nhưng cái thì chạy bởi owner Root vì Apache là 1 daemon process nên cần phải chạy với quyền root. 

Chưa đúng. Bạn có thể login vào user thường, chạy cái gì đó với `nohup` rồi thêm "&" ở cuối thì nó cũng thành daemon mà, có cần `root` đâu.

McSteven wrote:

Còn lại chạy với user Apache để đảm bảo rằng sẽ không xảy ra leo thang lên quyền root với cái process khác nhằm đảm bảo security.
 

Các processes owned bởi `apache` có liên quan thế nào với process owned bởi `root`? Tại sao lại có nhiều processes owned bởi `apache` thế; mục đích của chúng là gì?

McSteven wrote:

Còn dấu ngoặc vuông thì đảm bảo chắc chằn rằng chỉ tìm những kí tự đầu luôn là "h".
 

Không đúng. Ý bạn là ký tự đầu của cái gì?
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 18:47:46 (+0700) | #6 | 276401
BlueMM
Member

[Minus]    0    [Plus]
Joined: 14/02/2012 05:11:33
Messages: 28
Offline
[Profile] [PM]
Em đang là sv Đh năm 3, vừa học môn hệ điều hành mã nguồn mở xong, em xin được trả lời câu hỏi của bác Quanta.

[] tức là phép OR, nhưng chỉ có 1 kí tự thì không có ý nghĩa, phải từ 2 kí tự trở lên chẳng hạn như [Hh]ttpd tức là tìm với "Http" hoặc "http" .
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 19:20:36 (+0700) | #7 | 276402
[Avatar]
McSteven
Member

[Minus]    0    [Plus]
Joined: 12/10/2010 08:12:13
Messages: 15
Offline
[Profile] [PM]
Cảm ơn Quanta chỉ dẫn cho mình hiều thêm vài thứ!
Sau khi được dẫn dắt 1 chút thì mình cũng tìm kiếm được ít thông tin về vì sao có các Process owned chạy dưới quyền root:
Vì chỉ có root mới có đủ quyền chạy Apache với những port thấp hơn 1024 ( 80 port : http và 443 port : https).

Các process owned bởi Apache được sinh ra bởi process owned root dùng đề phục vụ cho các request đền server.

Mình nghĩ kí tự đầu của httpd .
Profanity is the one language that all programmers understand.
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 19:36:18 (+0700) | #8 | 276403
destiny90
Member

[Minus]    0    [Plus]
Joined: 07/06/2011 00:19:31
Messages: 14
Offline
[Profile] [PM]
Em cũng đang mày mò tìm hiểu Apache, các anh cho phép em tham gia với nha.

Về phần 1 process có owner là root và 1 số process có owner khác root, em đọc tài liệu của Apache thì thấy họ giải thích là :

Trong quá trình khởi động Apache sẽ bind vào port 80 (http) hoặc port 443 (https), port này được quy định bởi Listen Directive trong tập tin httpd.conf.
Do các port này là privileged port (các port <1024)nên Apache main process cần được chạy với quyền root để có thể bind.
Sau khi Apache khởi động , main process sẽ tạo ra 1 số child process và các child process này sẽ lắng nghe trên cổng 80 hoặc 443.
Main process vẫn tiếp tục chạy với quyền root, quản lý các child process. Các child process chạy với quyền hạn thấp hơn, owner của các child process này được quy định bởi User Directive trong tập tin httpd.conf.

Em trả lời có gì sai sót thì các anh góp ý giúp em.

[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 20:20:01 (+0700) | #9 | 276404
bino1810
Member

[Minus]    0    [Plus]
Joined: 10/02/2012 10:38:28
Messages: 61
Location: /home/cuonglm
Offline
[Profile] [PM]
[] tức là phép OR, nhưng chỉ có 1 kí tự thì không có ý nghĩa, phải từ 2 kí tự trở lên chẳng hạn như [Hh]ttpd tức là tìm với "Http" hoặc "http"  


Sao lại không có ý nghĩa? [h]ttp sẽ tìm chính xác chuỗi http.

Bạn thử gõ:

ps -ef | grep -v [h]ttp 


xem kết quả thế nào. Từ đó sẽ hiểu tại sao anh quanta lại hỏi
2 dấu ngoặc vuông bao quanh chữ "h" chỗ lệnh `grep` để làm gì nhỉ? 
There is more than one way to do it!
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 20:26:35 (+0700) | #10 | 276406
destiny90
Member

[Minus]    0    [Plus]
Joined: 07/06/2011 00:19:31
Messages: 14
Offline
[Profile] [PM]
Em thấy là khi gõ lệnh mà dùng [h]ttpd thì kết quả hiển thị không có dòng :

PID ..... tty grep --color=auto httpd

chỉ hiển thị các dòng có liên quan đến main process và child process thôi. Lý do là sao vậy anh ?
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 20:35:27 (+0700) | #11 | 276408
bino1810
Member

[Minus]    0    [Plus]
Joined: 10/02/2012 10:38:28
Messages: 61
Location: /home/cuonglm
Offline
[Profile] [PM]
Bạn chạy lệnh ở trên của tớ, để ý kỹ xem ouput có gì đặc biệt, chú ý dòng có chữ grep.
There is more than one way to do it!
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 20:55:49 (+0700) | #12 | 276411
destiny90
Member

[Minus]    0    [Plus]
Joined: 07/06/2011 00:19:31
Messages: 14
Offline
[Profile] [PM]
Ý của bino là khi dùng -v thì kết quả trả về là các dòng không thoả điều kiện trong pattern ( cụ thể là dòng có chứa httpd) ?
Không biết trên máy bino khi gõ grep httpd với [h]ttpd có khác biệt gì k? Trên máy tui gõ thì nó bỏ dòng như post trên tui nói đó.
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 21:02:51 (+0700) | #13 | 276412
destiny90
Member

[Minus]    0    [Plus]
Joined: 07/06/2011 00:19:31
Messages: 14
Offline
[Profile] [PM]
Mình tìm ra rồi smilie

Why do people use strange regular expressions on ps output?

ps -ef | grep '[c]ron'

If the pattern had been written without the square brackets, it would have matched not only the ps output line for cron, but also the ps output line for grep. Note that on some platforms, ps limits the output to the width of the screen; grep does not have any limit on the length of a line except the available memory.

Trích từ :
http://www.gnu.org/savannah-checkouts/gnu/grep/manual/grep.html#Matching-Control - Mục số 4 (Usage) -Phần số 7
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 22:38:23 (+0700) | #14 | 276416
fcbacktrack
Member

[Minus]    0    [Plus]
Joined: 29/06/2012 23:30:57
Messages: 38
Offline
[Profile] [PM]
Theo mặc định, các process thuộc Apache chạy với chủ quyền của người dùng nobody (ngoại trừ process chính phải chạy với chủ quyền root) và GID thuộc nhóm nogroup. Ðiều này có thể dẫn đến những đe dọa bảo mật nghiêm trọng. Trong trường hợp đột nhập thành công, tin tặc có thể lấy được quyền truy dụng đến những process khác chạy cùng UID/GID. Bởi thế, giải pháp tối ưu là cho Apache chạy bằng UID/GID từ nhóm riêng biệt, chuyên chú đến software ấy thôi.Ref ->/hvaonline/posts/list/3372.html
Tài khoản nobody
Tài khoản người dùng nobody được sử dụng để chạy các dịch vụ trên hệ thống. Tài khoản này không có thư mục home hoặc môi trường làm việc shell. Nếu tài khoản này bị lỗi, các dịch vụ đang chạy sử dụng tài khoản này sẽ bị ảnh hưởng nhưng hệ thống vẫn được bảo mật.
Không biết trong trường hợp của anh quanta tài khoản apache phải là nobody, còn process chính chạy quyền root có tác dụng gì
không


Ðối với những ai quen dùng *nix hẳn không lạ gì với khái niệm UID/GID thuộc chế độ "file permission". Tuy nhiên, chi tiết này nên mở rộng một tí cho những bạn đọc chưa quen thuộc với UID/GID. Phần tạo nhóm (group) và người dùng (user) riêng cho Apache ở trên có hai chi tiết cần chú ý là:
-d /dev/null: không cho phép user Apache có thư mục $HOME nhưng những user bình thường khác
-s /sbin/nologin: không cho user Apache dùng bất cứ một shell nào cả. Có một số trường hợp dùng -s /bin/true thay vì nologin ở trên, true là một lệnh không thực thi gì cả và hoàn toàn vô hại.

Lý do không cho phép user Apache có thư mục $HOME và không được cấp một "shell" nào cả vì nếu account Apache này bị nhân nhượng, tin tặc cũng không có cơ hội tiếp cận với system ở mức độ cần thiết cho thủ thuật gia tăng chủ quyền. Trên môi trường *nix nói chung, "shell" là giao diện giữa người dùng và hệ thống, không có shell thì không có cơ hội tiếp cận xa hơn. Nếu phần thiết lập trên cung cấp user Apache một $HOME và cho phép dùng một shell nào đó thì đã không mang giá trị gì trên quan điểm "kiện toàn".
Theo mặc định hệ thống ubuntu khi cài apache liệu có thoả các lý do trên hay ta phải cài
-d /dev/null: không cho phép user Apache có thư mục $HOME nhưng những user bình thường khác
-s /sbin/nologin: không cho user Apache dùng bất cứ một shell nào cả.
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 22:43:51 (+0700) | #15 | 276417
fcbacktrack
Member

[Minus]    0    [Plus]
Joined: 29/06/2012 23:30:57
Messages: 38
Offline
[Profile] [PM]
sory all, chứa đọc kỹ các câu trả lời của you nên hỏi nhằm
Vì chỉ có root mới có đủ quyền chạy Apache với những port thấp hơn 1024 ( 80 port : http và 443 port : https).

Các process owned bởi Apache được sinh ra bởi process owned root dùng đề phục vụ cho các request đền server.
đá hiểu tại sao có nhiều tiến trình apache
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 23:34:37 (+0700) | #16 | 276419
bino1810
Member

[Minus]    0    [Plus]
Joined: 10/02/2012 10:38:28
Messages: 61
Location: /home/cuonglm
Offline
[Profile] [PM]

destiny90 wrote:
Mình tìm ra rồi smilie

Why do people use strange regular expressions on ps output?

ps -ef | grep '[c]ron'

If the pattern had been written without the square brackets, it would have matched not only the ps output line for cron, but also the ps output line for grep. Note that on some platforms, ps limits the output to the width of the screen; grep does not have any limit on the length of a line except the available memory.

Trích từ :
http://www.gnu.org/savannah-checkouts/gnu/grep/manual/grep.html#Matching-Control - Mục số 4 (Usage) -Phần số 7 


Hình như bồ vẫn chưa thực sự hiểu, vẫn chưa giải thích được tại sao khi dùng [h]ttp thì không match với "ps output line for grep".

Bồ thử post dòng ouput của lệnh grep khi bồ chạy ps -ef | grep -v [h]ttp xem.
There is more than one way to do it!
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 07/06/2013 23:45:07 (+0700) | #17 | 276420
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

McSteven wrote:

Các process owned bởi Apache được sinh ra bởi process owned root dùng đề phục vụ cho các request đền server.
 

- Số lượng child processes này có cố định không? Khi một request đi đến server, Apache sẽ tạo ra một process mới để xử lý hay là thế nào?
- Multi-Processing Module là gì? Có những loại chính nào? Ưu, nhược điểm của từng loại?

destiny90 wrote:
Mình tìm ra rồi smilie

Why do people use strange regular expressions on ps output?

ps -ef | grep '[c]ron'

If the pattern had been written without the square brackets, it would have matched not only the ps output line for cron, but also the ps output line for grep. Note that on some platforms, ps limits the output to the width of the screen; grep does not have any limit on the length of a line except the available memory.

Trích từ :
http://www.gnu.org/savannah-checkouts/gnu/grep/manual/grep.html#Matching-Control - Mục số 4 (Usage) -Phần số 7 

Câu hỏi đặt ra là: tại sao `ps -ef | grep [h]ttpd` lại không trả về chính bản thân `grep` process; có gì bí hiểm xung quanh dấu ngoặc vuông này nhỉ?
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 08/06/2013 00:23:12 (+0700) | #18 | 276423
consoko
Member

[Minus]    0    [Plus]
Joined: 11/10/2008 00:48:33
Messages: 26
Offline
[Profile] [PM]

quanta wrote:

Câu hỏi đặt ra là: tại sao `ps -ef | grep [h]ttpd` lại không trả về chính bản thân `grep` process; có gì bí hiểm xung quanh dấu ngoặc vuông này nhỉ?  


The advantage of the brackets now is that the string "firefox" no longer appears in the grep command. Hence, grep itself won't show up in the grep result.

http://askubuntu.com/questions/153419/how-does-this-tricky-bracket-expression-in-grep-work

@@@quanta tiếp tục đặt những câu hỏi đi, qua những câu hỏi của bạn mình cũng phát hiện thêm nhiều điều lý thú. Thanks. smilie
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 08/06/2013 06:30:22 (+0700) | #19 | 276425
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

consoko wrote:

The advantage of the brackets now is that the string "firefox" no longer appears in the grep command. Hence, grep itself won't show up in the grep result.

http://askubuntu.com/questions/153419/how-does-this-tricky-bracket-expression-in-grep-work
 

Có thể tóm tắt lại theo ý hiểu của bạn được không? Regular Expression này sẽ được thằng nào xử lý nhỉ: `bash` hay `grep`?

consoko wrote:

@quanta tiếp tục đặt những câu hỏi đi, qua những câu hỏi của bạn mình cũng phát hiện thêm nhiều điều lý thú. 

Câu hỏi chính vẫn còn nằm ở bên trên mà:
- Khi một request đi đến server, Apache sẽ tạo ra một process mới để xử lý hay là thế nào?
- Multi-Processing Module là gì? Có những loại chính nào? Ưu, nhược điểm của từng loại?  
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Sinh viên sắp ra trường, muốn theo Sysadmin, cần chuẩn bị những gì? 08/06/2013 09:37:32 (+0700) | #20 | 276429
destiny90
Member

[Minus]    0    [Plus]
Joined: 07/06/2011 00:19:31
Messages: 14
Offline
[Profile] [PM]
Cho em hỏi là câu trả lời có liên quan đến pipeline không ?
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 08/06/2013 09:55:27 (+0700) | #21 | 276430
[Avatar]
McSteven
Member

[Minus]    0    [Plus]
Joined: 12/10/2010 08:12:13
Messages: 15
Offline
[Profile] [PM]

Quanta wrote:


- Khi một request đi đến server, Apache sẽ tạo ra một process mới để xử lý hay là thế nào?
- Multi-Processing Module là gì? Có những loại chính nào? Ưu, nhược điểm của từng loại?  
 


Theo mình nghĩ thì số lượng child process này sẽ có số lượng giới hạn.
- Khi một request đi đền sever , Apache sẽ không tạo ra 1 process mới để xử lý mà dùng multithread đề xử lý các request này! Mỗi process sẽ chứa 1 lượng multithread cố định.Nều mỗi thread này được giải phóng thì nó sẽ được tái sử dụng cho các request khác đ. Nếu số lượng process vượt quá giới hạn của child process thì nó sẽ chết đi và root process sẽ sinh ra 1 child process khác để phục vụ tuỳ vào lưu lượng số request.
- Multi-Processing Module là 1 module dùng để thực hiện multithread trên Apache ( Mình chỉ có thề nói tới đó còn thiều thì hay sai xót thì Quanta bổ sung ) .
-Có 3 loại chính : Event, Prefok, Worker.
Còn về ưu nhược điểm thì mình chưa nghiên cứu kĩ lằm. Có thề Quanta trợ giúp câu hỏi này nhé!




Profanity is the one language that all programmers understand.
[Up] [Print Copy]
  [Question]   Sinh viên sắp ra trường, muốn theo Sysadmin, cần chuẩn bị những gì? 08/06/2013 09:56:27 (+0700) | #22 | 276431
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

destiny90 wrote:
Cho em hỏi là câu trả lời có liên quan đến pipeline không? 

Không. Mấu chốt vấn đề chỉ loanh quanh ở: bash, grep, regex thôi.

McSteven wrote:

Theo mình nghĩ thì số lượng child process này sẽ có số lượng giới hạn.
 

Nó phụ thuộc vào cái gì? Khi lượng concurrent connections lớn lên thì chuyện gì xảy ra?

McSteven wrote:

- Khi một request đi đền sever , Apache sẽ không tạo ra 1 process mới để xử lý mà dùng multithread đề xử lý các request này! Mỗi process sẽ chứa 1 lượng multithread cố định. Nêu mỗi thread này được giải phóng thì nó sẽ được tái sử dụng cho các request khác đ. Nếu số lượng process vượt quá giới hạn của child process thì nó sẽ chết đi và root process sẽ sinh ra 1 child process khác để phục vụ tuỳ vào lưu lượng số request.
 

Cái bạn đang nói chỉ đúng cho MPM Worker thôi đấy nhé.

McSteven wrote:

- Multi-Processing Module là 1 module dùng để thực hiện multithread trên Apache
 

Và chỉ multi-threaded thôi à?

McSteven wrote:

-Có 3 loại chính : Event, Prefok, Worker.
Còn về ưu nhược điểm thì mình chưa nghiên cứu kĩ lằm.
 

Vậy bạn thử tìm hiểu xem smilie.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Sinh viên sắp ra trường, muốn theo Sysadmin, cần chuẩn bị những gì? 08/06/2013 10:45:58 (+0700) | #23 | 276433
destiny90
Member

[Minus]    0    [Plus]
Joined: 07/06/2011 00:19:31
Messages: 14
Offline
[Profile] [PM]
Khi sử dụng grep [h]ttpd thì grep sẽ tìm các dòng có chứa chính xác chữ httpd.
Trong process list thì grep [h]ttpd sẽ có dạng như sau:

Code:
UID ....... grep color=auto [h]ttpd


do đó sẽ loại trừ dòng này trong output.
[Up] [Print Copy]
  [Question]   Sinh viên sắp ra trường, muốn theo Sysadmin, cần chuẩn bị những gì? 08/06/2013 10:56:57 (+0700) | #24 | 276434
fcbacktrack
Member

[Minus]    0    [Plus]
Joined: 29/06/2012 23:30:57
Messages: 38
Offline
[Profile] [PM]
qua những thảo luận trên đây em thấy việc cấu hình cài đặt có thể dễ dàng, nhưng để hiểu bản chất nó như thế nào để tối ưu hoá chắc cần phải học nhiều, cũng giống như học đại học học để đối phó thì rất dễ nhưng học để hiểu bản chất cực kỳ khó, các anh em co thể cho lời khuyên không
[Up] [Print Copy]
  [Question]   Sinh viên sắp ra trường, muốn theo Sysadmin, cần chuẩn bị những gì? 08/06/2013 12:00:58 (+0700) | #25 | 276436
[Avatar]
McSteven
Member

[Minus]    0    [Plus]
Joined: 12/10/2010 08:12:13
Messages: 15
Offline
[Profile] [PM]

quanta wrote:

Và chỉ multi-threaded thôi à?
 

Có sự hiều sai lầm của mình ở đây : nó phục vụ cả non-thread(MPM Prefok)và multithread (Event,Worker)
- Apache MPM Prefork:
Ưu điểm : khả năng xử lí các request nhanh chóng vì mỗi process sẽ phục vụ mỗi request.Nó không bị ảnh hưởng bời các process khác.
Nhược điểm : Tốn tài nguyên của server vì mồi process chỉ phục vụ 1 request làm hao tốn rất nhiều nhiều tài nguyên đề duy trì các process này.
- Apache MPM Worker:
Ưu điểm : phục vụ nhiều request vì mỗi process chứa các thread bênh trong.Do đó số lượng của process có giới hạn và sử dụng ít tài nguyên hơn.Việc điều chỉnh số lượng thread / process phụ thuộc vào file httpd.conf.
Nhược điểm : thì mình không biết, có thể có vài vần đề nếu sử dụng với PHP, tốn nhiều thread hơn so với MPM event
- Apache MPM Event:
Ưu điểm: Hình như cái event này dùng cho Apache 2.4 trở lên.Gần giống với MPM Worker nhưng có 1 khác biệt lớn ở đây . Với MPM Event sẽ giải phóng thread ngay sau khi các yêu cầu được đáp ứng song không phụ thuộc vào kết nối http. giúp làm giảm số thread per process . Còn MPM Worker sẽ giữ các request này dù các request này có xử lí hay không.Hỗ trợ nều chỉ số KeepAlive khá lâu.
Nhược điểm: không biết!
Còn thiều gì mong Quanta góp ý thêm cho.

Profanity is the one language that all programmers understand.
[Up] [Print Copy]
  [Question]   Sinh viên sắp ra trường, muốn theo Sysadmin, cần chuẩn bị những gì? 08/06/2013 12:14:52 (+0700) | #26 | 276439
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

McSteven wrote:

Có sự hiều sai lầm của mình ở đây: nó phục vụ cả non-thread(MPM Prefok) và multithread (Event, Worker)

- Apache MPM Prefork:
Ưu điểm : khả năng xử lí các request nhanh chóng vì mỗi process sẽ phục vụ mỗi request. Nó không bị ảnh hưởng bời các process khác.

Nhược điểm : Tốn tài nguyên của server vì mồi process chỉ phục vụ 1 request làm hao tốn rất nhiều nhiều tài nguyên đề duy trì các process này.

- Apache MPM Worker:
Ưu điểm : phục vụ nhiều request vì mỗi process chứa các thread bên trong. Do đó số lượng của process có giới hạn và sử dụng ít tài nguyên hơn. Việc điều chỉnh số lượng thread / process phụ thuộc vào file httpd.conf.

Nhược điểm : thì mình không biết, có thể có vài vần đề nếu sử dụng với PHP, tốn nhiều thread hơn so với MPM event

- Apache MPM Event:
Ưu điểm: Hình như cái event này dùng cho Apache 2.4 trở lên. Gần giống với MPM Worker nhưng có 1 khác biệt lớn ở đây . Với MPM Event sẽ giải phóng thread ngay sau khi các yêu cầu được đáp ứng song không phụ thuộc vào kết nối http. giúp làm giảm số thread per process . Còn MPM Worker sẽ giữ các request này dù các request này có xử lí hay không.

Nhược điểm: không biết!
 

- Với cùng một lượng requests, tại sao MPM worker lại thường cần dùng ít tài nguyên (RAM) hơn so với prefork?

- Nếu cho bạn setup Apache từ đầu (ví dụ chạy PHP đi), căn cứ vào đâu để bạn quyết định sẽ chọn MPM nào? Tại sao?

---
Góp ý: khi viết nên cách đoạn ra cho dễ đọc. Trước dấu câu (chấm, phảy, hỏi chấm, ...) thì không có khoảng trắng đâu, sau đó thì nhớ nhấn Space một phát rồi mới viết tiếp.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Sinh viên sắp ra trường, muốn theo Sysadmin, cần chuẩn bị những gì? 08/06/2013 13:05:15 (+0700) | #27 | 276441
[Avatar]
McSteven
Member

[Minus]    0    [Plus]
Joined: 12/10/2010 08:12:13
Messages: 15
Offline
[Profile] [PM]

quanta wrote:

- Với cùng một lượng requests, tại sao MPM worker lại thường cần dùng ít tài nguyên (RAM) hơn so với prefork?

- Nếu cho bạn setup Apache từ đầu (ví dụ chạy PHP đi), căn cứ vào đâu để bạn quyết định sẽ chọn MPM nào? Tại sao?
 


Với cùng lượng request thì MPM worker ít tốn Ram hơn bởi vì nó sử dụng multithread trên process và chia sẽ không gian địa chỉ bộ nhớ cho nhau làm giảm hao tốn. Cái này thì có thề phụ thuộc vào OS Kernel.

Nều cho mình setup Apache từ đầu thì mình sẽ dùng MPM Worker hoặc MPM Event ! Còn tại sao thì chưa biết!

Profanity is the one language that all programmers understand.
[Up] [Print Copy]
  [Question]   Sinh viên sắp ra trường, muốn theo Sysadmin, cần chuẩn bị những gì? 08/06/2013 14:30:11 (+0700) | #28 | 276442
destiny90
Member

[Minus]    0    [Plus]
Joined: 07/06/2011 00:19:31
Messages: 14
Offline
[Profile] [PM]
Em có đọc 1 số bài viết từ diễn dàn và 1 số trang khác thì thấy có nhiều tranh cãi là PHP gặp phải vấn đề về thread safe khi sử dụng multithread.

Em cũng chưa hiểu lắm về khái niệm này. Lỗi (nếu có) xảy ra có phải là do xung đột trong quá trình sử dụng tài nguyên giữa các thread không anh?
[Up] [Print Copy]
  [Question]   Việc làm cho sinh viê mới ra trường khi làm lĩnh vực Sysadmin 08/06/2013 14:54:37 (+0700) | #29 | 276443
consoko
Member

[Minus]    0    [Plus]
Joined: 11/10/2008 00:48:33
Messages: 26
Offline
[Profile] [PM]

quanta wrote:

consoko wrote:

The advantage of the brackets now is that the string "firefox" no longer appears in the grep command. Hence, grep itself won't show up in the grep result.

http://askubuntu.com/questions/153419/how-does-this-tricky-bracket-expression-in-grep-work
 

Có thể tóm tắt lại theo ý hiểu của bạn được không? Regular Expression này sẽ được thằng nào xử lý nhỉ: `bash` hay `grep`?

consoko wrote:

@quanta tiếp tục đặt những câu hỏi đi, qua những câu hỏi của bạn mình cũng phát hiện thêm nhiều điều lý thú. 

Câu hỏi chính vẫn còn nằm ở bên trên mà:
- Khi một request đi đến server, Apache sẽ tạo ra một process mới để xử lý hay là thế nào?
- Multi-Processing Module là gì? Có những loại chính nào? Ưu, nhược điểm của từng loại?  
 


- Regular Expression được xử lý bởi bash. Vì mình chú ý, khi viết regular expression sai cú pháp thì bash sẽ show lỗi ra bash: can not interpreter (đại loại như vậy) smilie

- Khi request đến server web. Nếu vẫn còn dư process trống thì apache sẽ sử dụng những process này để phục vụ request. Nếu hết thì nó sẽ fork 1 process mới để xử lý. (còn cơ chế limit và spare process thế nào. mọi người đọc tài liệu về mpm module nhé).

- Còn về mpm thì apache có 3 modules, nhưng mình chỉ bàn tới 2 modules chính là prefork and worker.
+ Prefork sử dụng process để xử lý request, sử dụng memory riêng cho từng process. Do đó nó sẽ chậm hơn và tốn nhiều tài nguyên hơn so với thread do cơ chế fork process. Nhưng stable hơn vì sử dụng memory riêng nên 1 process bị chết sẽ ko ảnh hưởng tới những process khác.
+ Worker sử dụng thread để xử lý process. Các thead do 1 process sinh ra sẽ sử dụng chung memory với nhau. Nếu 1 một thread bị chết sẽ ảnh hưởng đến toàn bộ thread trong một process. Đây là lý do không thể sử dụng PHP + worker + mod_php. Cũng do những đặc điểm trên nên thread sẽ nhanh hơn và chạy ít tốn tài nguyên hơn.
[Up] [Print Copy]
  [Question]   Sinh viên sắp ra trường, muốn theo Sysadmin, cần chuẩn bị những gì? 09/06/2013 11:45:30 (+0700) | #30 | 276448
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

destiny90 wrote:

Em cũng chưa hiểu lắm về khái niệm này. Lỗi (nếu có) xảy ra có phải là do xung đột trong quá trình sử dụng tài nguyên giữa các thread không anh? 

http://en.wikipedia.org/wiki/Thread_safety

consoko wrote:

- Regular Expression được xử lý bởi bash. Vì mình chú ý, khi viết regular expression sai cú pháp thì bash sẽ show lỗi ra bash: can not interpreter (đại loại như vậy) smilie
 

Không đúng. Nếu thế thì `ps -ef | grep [h]ttpd` cũng vẫn sẽ có `grep` process trong kết quả thôi. `grep` mới là thằng "translate" regex này thành `grep httpd`, còn bash vẫn giữ nguyên process đó (`grep [h]ttpd`). Do vậy, trong kết quả mới không có `grep` process, bởi vì làm gì có chữ "httpd" nào trong chuỗi `grep [h]ttpd`.

destiny90 wrote:
Em có đọc 1 số bài viết từ diễn dàn và 1 số trang khác thì thấy có nhiều tranh cãi là PHP gặp phải vấn đề về thread safe khi sử dụng multithread.
 

consoko wrote:

+ Worker sử dụng thread để xử lý request. Các thead do 1 process sinh ra sẽ sử dụng chung memory với nhau. Nếu 1 một thread bị chết sẽ ảnh hưởng đến toàn bộ thread trong một process. Đây là lý do không thể sử dụng PHP + worker + mod_php. 

Nếu mình chạy qua FastCGI + php-fpm thì sao nhỉ?
Let's build on a great foundation!
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|