리눅스 쉡스크립트를 작성 도움 부탁해요.

coollemon의 이미지

안녕하세요.
쉡스크립트를 작성해서 cron에 넣으려고 합니다.

실행파일이 cpu 90%를 넘어가면
cron으로 자동으로 해당실행파일을 죽이고 apache를 리스타트를 해주려고 합니다.

정보는 다음과 같해요

조건(IF)
1. cpu 사용률이 90%이상되는 실행파일이 있는지 체크(ps -aux 이용 등)
2. 접속자수가 500명 이상인가 체크 (netstat -anp | grep :80 | grep ESTAB | wc -l)

조건만족시 해결(THAN)
1. 해당실행파일을 프로세서를 kill 한다.
2. 아파치를 리스트한다

if [조건]; then
apache 재시작
fi

내용이어려운것 같아요
고수님
작성도움부탁드립니다...
감사합니다.

익명 사용자의 이미지

제일 관건은 CPU 90% 넘었을 때 스크립트가 수행이 되느냐 안 되느냐(교착상태) 겠군요.

ydhoney의 이미지

1. 전체 cpu 사용량을 기준으로 해야지 특정 프로세스의 cpu 사용량을 기준으로 하면 골때리는 문제가 생깁니다. (해보시면 "아 그렇구나" 아시겠지만..)

2. 그냥 ps결과에서 cpu 사용량 기준으로 정렬한 후 Top 1을 kill하시는게 좋을듯 합니다.

3. 그냥 apache restart를 한다면 굳이 프로세스 kill할 필요가 있는지는 테스트해보아야 할 것 같습니다. 대처 시나리오를 조심해서 테스트해보세요.

4. 한 80이면 안될까요? 90까지 올라가는건 위험할것 같기도 하고 그렇습니다. 아무리 네할렘 이후의 아키텍쳐가 좋다한들 그래도 x86인데;;

coollemon의 이미지

네 구지 kill 하지 않고 리스타트 하는 방식이 좋은것 같습니다.

cinsk의 이미지

그런데, 정확히 어떤 프로세스를 죽이기 원하는 건지 불확실하네요. CPU 사용량이 많으면, 프로세스에 상관없이 죽이는 것인가요?

coollemon의 이미지

네 그렇습니다. 보통 전체 cpu율 사용율이 90%넘어가면 한 비정상적인 프로세서가 다 잡아먹더라구요
그래서 그때는 리스타를 해줄려고 합니다

ydhoney의 이미지

프로세스 하나가 cpu를 많이 잡아먹는다면 서비스 로직을 다시한번 살펴보시고 문제를 일으키는 페이지를 찾아서 수정하시는것이 좋을 듯 합니다.

웹서비스 데몬단에서 조치하는건 당장의 응급조치로는 맞는 말이지만 근본적인 해결책이라고 보기는 어려워 보이네요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.