시스템 정보, 프로세스 정보에 관한 함수가?

la9527의 이미지

시스템 사용율이나, 프로세스 사용율, 메모리 사용율을 프로그래밍하고 싶은데..

/proc 디렉토리의 파일들을 읽어들이지 않고 다른 시스템 함수가 있을 듯 한데..
어떤 것이 있는지. 또, 어떤 함수들이 있는지 알고 싶습니다.

ps 소스라도 뒤져야 되낭. ㅎㅎ ^^;;

낙엽의 이미지

시스템 정보라면 kstat 을 이용하면 될듯 싶구요.. 프로세스는 글쎄요.. proc 을 이용하는 방법 말고 또 있나요?

발견하시면 꼭 리플 달아주시길 ^^;

la9527의 이미지

결국 ps 소스를 들여다 봤습니다. ^^;;

보니깐. 역시 /proc을 뒤지더군여..
그걸 이용해서 사용하는데.. 여기서 궁금증 하나가 생겼습니다..

/proc에서 읽어다 쓰면 리소스를 잡아 먹거나 그러진 않을까요?

제가 생각하기엔 시스템 자체적으로 사용하기 땜에 그렇진 않을 듯 싶은데..

결국 특별한 함수는 존재하지 않는 듯 싶더군여..
libprocps.so 를 사용해서 읽어들이는 방법이
지금 보기엔 가장 좋을 듯 싶더라구여..

제 생각이 맞는지 리플좀. ^^;;

sangwoo의 이미지

리눅스에서는 /proc을 뒤지고.. FreeBSD나 AIX같은 녀석들은 kvm_* 계열의
함수를 쓰는걸로 알고 있습니다.

----
Let's shut up and code.

운형의 이미지

proc을 뒤지는거 생각보다 부하가 적습니다.
머 아시느 이야기겠지만. proc이란 디렉토리가 실제 파일 시스템이 아니고, 요청시 커널에서 뿌려주는 것이기 때문입니다.
cpu, memory, disk i/o 등등은 함수를 통해 구할 수 있습니다.

sysinfo, intro등의 함수를 찾아보세요.

Do you think that's the air you are breathing now?

chanseongjeon@kldp.org의 이미지

[간단한 질문자 소개]

안녕하세요? 저는 대학을 2008년 2월에 졸업하게 될 학생이며, 모 기업의 인턴사원입니다.

워낙 실력이 모자란지라..(제 자신이 냉정하게 생각해 보아도..) 선배님의 지시사항에 따라서 하나 하나..

작은 것 부터 배워 가고 있습니다. 감사합니다.

[프로그램 작성 환경]

운영체제 : 솔라리스

데이터베이스 : 오라클

[질문]

"kstat" 구조체에 대하여 알고 싶습니다.

질문을 하게된 동기는 선배님이 내 주신 과제를 수행하던 중 어려운 부분이 나와 일주일 간의 시간을 투자 했으나,

과제의 진전이 없어, 염치 불구하고 여러 선배님들의 가르침을 얻고자 질문을 드렸습니다.

리눅스에는 proc 디렉토리 밑에 cpuinfo등의 파일이 있어 그것을 참조하면 시스템의 정보(변수에 넣을수 있는 값)을 얻을수

있는 것으로 알고 있습니다.

그런데 솔라리스의 procㅇ디렉토리에는 프로세스 아이디로 된 디렉토리만 존제 할뿐 다른 것을 찾지 못하였습니다.

구글과, 네이버 등의 검색엔진을 이용하여 "kstat" 라는 것을 이용하여 시스템의 정보를 획득하면 된다는 실마리를 찾았습니다.

그런데..맨 페이지를 보고 공부를 해 보아도 이해가 잘 가지 않고 .. 전체적인 큰 테두리를 설명한 부분이 없는 것 같습니다.

맨 페이지에 있는 소스코드 가져다 쓰면서도 지금 뭘 하고 있는 것인지 확신이 없어 과제의 진도가 나가지 않습니다.

제가 알고 자 하는 것은 ..

cpu의 점유율,cpu갯수,1분동안 최대 cpu점유율,최소 cpu점유율,평균 cpu점유율
메모리사이즈,메모리사용율,1분동안 최대 사용율,1분동안 메모리 최소 사용율
현제 마운트 되어 있는 목록,디스크사이즈,디스크사용크기,디스크남은 사용율

등을 알아야 하는데..

"kstat" 를 이용하여 값들을 얻어 왔지만.. 이해가 가지 않는 부분이 많아.. 프로그램 작성에 어려움이 있습니다.

"kstat" 에 대하여 정보를 주시면 너무나 감사하겠습니다.

지금 까지 읽어 주셔서 감사합니다.

thav의 이미지

이런 우연이 있을까요..
제가 지금 해야할 과제와 100% 같습니다.
혹시 해결하셨다면, 힌트라두 주셨으면 합니다.^^
kstat 함수 쪽으로 분석하고 있는데..
워낙 아는 내공이 없는지라...
그럼 수고하세요.~^^

ssehoony의 이미지

솔라리스 역시 리눅스 처럼 /proc 밑에 여러가지 정보들이 있습니다.
리눅스의 경우 /proc 바로 하단에 /proc/[pid] 로 되어 있지만
솔라리스는 아마 /proc/pid/[pid] 로 구성되어 있는 것으로 기억합니다.

리눅스의 /proc은 기본적으로 text format 이기 때문에 그냥 cat 등으로 읽을 수도 있고,
string 파싱을 해서 처리하면 됩니다.

하지만, 솔라리스의 경우는 /proc 밑의 프로세스 정보가 binary 형태로 되어 있으서 cat 등으로 읽을 수 없습니다.
대신 솔라리스의 어딘가에 찾아보면 /proc 밑에 저장하는 binary 구조가 기록된 c header 파일이 있습니다.
(아쉽게도 솔라리스 환경에서 개발하는 것을 손 땐지 좀 오래 돼서 헤더 파일명이 기억이 안나네요 ㅎㅎ;;)
그것을 찾아 보면 되는데요. (솔라리스 개발 문서를 뒤져보면 나와있겠죠?)

monovision의 이미지

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.