why ps is wrong?

오늘 kldp 에 ps로 메모리를 확인하려고 하는데 잘 안된다는 질문 내용을 봤다.

https://kldp.org/node/152025

답글을 작성하다가 재미있는 내용을 알게 되어 이곳에도 같이 담아둔다.

 

질문 내용

프로그램 안에서 10 바이트씩 malloc 으로 메모리를 할당했습니다.
그리고 ps -eo user,size,cmd 명령으로 메모리 증가량으로 확인하려고 했지만 전혀 메모리 증가가 안되네요.

왜 그런거죠?

답변

두 가지 이유가 있습니다.

1. 확인하고자 하시는 메모리 증가량이 너무 작습니다.

man ps 에서 size 항목을 찾아봤는데 따로 단위는 안나오네요.
하지만 테스트 해보니 단위가 1K 였습니다.
프로그램을 수정해서 한번에 1M 씩 증가하도록 해봤는데, 증가량이 확인되네요.
할당하는 메모리 크기를 1M 단위로 하신다면 쉽게 증가 내역을 확인하실 수 있습니다.

2. ps 명령은 정확한 메모리 량을 확인하기에는 부족한 유틸리티 입니다.
출처 : http://stackoverflow.com/questions/131303/how-to-measure-actual-memory-u…

ps 명령은 사실 어플리케이션에서 사용하는 정확한 메모리 양을 나타내지 않습니다. 단지 예약된 메모리 양을 나타낼 뿐입니다.
달리 말하면 때에 따라(커널 레벨에서 사용되는 페이지가 공유 되거나 할 경우)변동될 소지가 있다는 것입니다. (예를 들면 여러개의 쓰레드나 동적 라이브러리를 사용하는 경우가 있습니다.)

그리고 만약 정확한 메모리 크기를 확인하고자 하신다면 다른 프로그램을 사용하셔야 합니다. valgrind 가 대표적이죠. 주로 메모리 누수 탐지에 사용되지만 메모리 사용량을 확인할 수도 있습니다.

————————————————————————————

실제로 위에 인용한 스택 오버플로우의 내용 말고도 ps 는 메모리 사용량을 확인하는데 부족하다는 내용의 많은 양의 문서를 확인할 수 있었다.

정확한 메모리 사용량을 확인하고자 한다면, 다음의 링크에 소개된 프로그램을 이용하자.

http://www.binarytides.com/linux-command-check-memory-usage/

Why text messages are limited to 160 characters?

출처 : http://latimesblogs.latimes.com/technology/2009/05/invented-text-messaging.html

단순 문자 메시지 전송 서비스(SMS)의 경우, 한번에 최대 160 바이트까지 전송이 가능하다. 영문 기준 160 자, 한글 기준 40 자 이다.

왜 이런 제한이 생겼을 까?

그 이유는 독일의 Friedhelm Hillebrand 사람 때문이라고 한다.

Friedhelm Hillebrand 는 타자기를 사용하면서 자신의 문장에 들어가는 글자 수를 세기 시작했다. 그리고 나중에는 “160자(물음표, 마침표 등 모든 기호를 포함)면 대부분의 생각과 의견을 나타낼 수 있다”라는 결론을 도출했다.

이는 Hillebrand의 매직 넘버라고 불리었으며 훗날의 SMS 문자 메시지의 길이를 정하는데 영향을 미치게 된다. 더 가깝게는 초기 트위터의 140자 제한까지 영향을 미치게 되었다.(140 메시지 + 20 아이디 표시).

참고로 이 이론이 나온때는 1985년 이었다.

160자로 대부분의 생각과 대화를 표현할 수 있다는 생각은 그 당시에는 합당했을 것이다.

단순한 메시지나 대화를 나타내기에는 적당할 것이다.

하지만 여러가지 인용과 링크 정보, 다른 사람들의 생각등.. 대화와 의견을 표출하는 방법이 옛날과는 많이 달라졌다는 것이 문제일 것이다.

즉…. 160자는… 짧다…!

Check out system model code

갑자기 노트북 제품 코드를 콘솔로 확인할 수 있지 않을까 싶었다.

찾아보니 dmidecode 라는 명령어가 있었다.

 

내 이동 전용 노트북(한성 컴퓨터 ForceRecon U13s) 은 중국산 저가 노트북에 상표만 붙여서 파는 것으로 알고 있었다. 하지만 실제로 원 모델이 어떤 노트북인지는 확인하지 못했었는데, 이번에 dmidecode 명령으로 알게 되었다.

System Information
Manufacturer: Notebook
Product Name: W310CZ/CZ-T
Version: Not Applicable
Serial Number: Not Applicable
UUID: EFF59000-7695-0000-0000-000000000000
Wake-up Type: Power Switch
SKU Number: Not Applicable
Family: Not Applicable

아래의 링크에 명령어 내용을 정리해 두었다.

http://wiki.pchero21.com/wiki/Dmidecode

Avast infection blocked

얼마전, 내 홈페이지와 wiki 사이트 등에 접속이 막힌다는 이야기를 들었다.

정확히는 Avast 에서 블럭 처리한다는 이야기였다.
때문에… Avast 에 메일을 보냈다. 정상적인 홈페이지니 false positive 오류인 것 같다고..

그랬더니, 오늘 답장을 받았다.

Hello,

Any domain hosted on afraid.org can be used by other persons for dns hosting without your control.
It happened for your domain, it was misused for malicious purposes – in that case, when nobody has control on subdomains of domain (DNS hijacking), we block the whole domain in order to protect our users.
For you, the solution is most probably only changing the dns hosting and letting us know later.

Best regards,
Valerij Medviď
Virus analyst

내용인즉, 내가 사용하고 있는 DNS 서비스(afraid.org) 를 사용하게 되면 DNS higacking 의 위험성이 있기 때문에 내 도메인 전체를 블럭처리를 한 것이란다..
afraid.org 란, DNS 서비스를 무료로 이용하는 대신의 자신의 도메인의 2차 도메인부터를 무료로 개방하는 오픈 도메인 사이트이다.

…. 무료이고 사용도 깔끔해서 이용했던 건데.. 이런 문제가 생긴것이다.. 에효.

DNS 하이잭은 또 뭐람? 공부할꺼리가 생겨버렸네..