리눅스에서 조각모음이 없는이유는?

vj1974의 이미지

윈도우 보면 일주일만 지나도 엄청나게 많은 붉은 점을 볼수 있는데.. 리눅스계열이나 유닉스 기반은 전혀 조각모음 얘기는 없군요..
FS 차이로 필요가 없다는데... FAT 나 NTFS는 32K 등등 할당하고 저장을 하는데.. 리눅스계열을 그런게 없는건지..
아니면 조각모음을 해도 성능차이가 없는건가요?

A문자를 넣으면 32K가 할당되있으면 나머지 메모리는 저장안한다고 들은거 같은데.. 그럼 리눅스계열은 남은 부분까지 다 쓰는건지.

또 파일을 지우도 보면 하드가 정렬되지 않고 여기저기 쓰지 않는 부분이 나오는데..(특히 작은파일이 많다면..) 리눅스계열은 그런현상이 없는건가요?(아니면 그냥 무시하고 쓰는건지;;?)

윈도우에서 서버를 돌리다 보면 문서수가 굉장히 많을경우.. 한달정도 지나면 지우고 쓰고 반복하고를 많이해서인지.. 조각이 심각하게 나는데....;;

--
설마 파일 지우고 쓸때마다 조각모음을 동시에 실시간으로 처리하는건가요-_-?(그럼 느리지 않을런지..)

warpdory의 이미지

실제로 예전에 ext2 용 조각모음 프로그램도 있었습니다... 만..
쓰는 사람 본 적 없습니다

조각모음이 필요한 파일 시스템은 도스/윈도즈에서 쓰는 fat 씨리즈나 ntfs 씨리즈 정도입니다. - 희한한 건 ntfs 는 os/2 의 파일 시스템인 hpfs 를 좀 발전시킨 거라고 광고하는데, 조각모음문제나 보안 문제는 fat 에서 따온 것 같습니다.

ntfs 에서는 fat 보다는 훨씬 덜 ... 파일이 조각납니다. 실제로 조각모음 프로그램은 조각모음 보다는 파일 재배치(보통 앞쪽으로 파일들을 끌어오죠.) 가 우선입니다.

udanax 님께서 써주신 url 에 잘 나와 있네요.
저 url 에 나와 있듯이... 유닉스 쪽에서도 조각모음(?)을 해야할 필요성이 있을 수 있습니다. 예를 들어서 파티션에 남아 있는 빈공간이 별로 없는데, 거기에 파일을 저장하면 아무래도 여기저기 흩어져서 저장되기 때문에 효율이 떨어지겠지요. 그런 경우는 보통 다른 파티션을 하나 마련해서 쭉 복사했다가 원래 파티션에 있는 파일들을 지우고 다시 저쪽으로 복사했던 파일들을 다시 원래의 파티션으로 복사해오는 방법을 씁니다. 사실, 이게 조각모음보다 효율도 훨씬 더 좋더군요. 속도도 빠르고...


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

voljin의 이미지

데스크탑 용도로 매일 이용한다면 ext2,3도 defrag이 필요합니다.

대부분의 리눅스 질답에 보면 필요없다는 말이 정설처럼 굳어져있는데, 사실 이건 정적인 서버 환경에나 쓰이던 시절 이야기고...요즘은 시대가 많이 달라졌죠.

개인 개발자의 경우에는 아직 이런 미신에 벗어나지 못해 쓸만한 수준의 프로그램이 아직 없는 듯 하고...O&O에서 시험적으로 베타판을 공개한 defrag util이 있습니다.

http://www.oo-software.com/en/products/oodlinux/index.html

마운트 되지 않은 파티션만 가능하므로 시스템 파티션을 정리하고 싶으시다면 live cd 같은걸로 부팅해서 돌리면 됩니다.

FAT 경우에는 좀 심하지만 ext2,3이 hfs+나 ntfs에 비해 특별히 단편화가 덜되는건 아닙니다. 단지 ext 계열이 "단편화가 덜 되는 환경"에 사용되고 있었다고 말하는 편이 맞습니다.

다크슈테펜의 이미지

적어도 공유 프로그램 당나귀 등등을 많이 돌리신다면 리눅스나 윈도우즈나 단편화가 심해지는 것은 마찬가지 입니다.

인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com

지리즈의 이미지

개인적인 생각에 한가지는
유닉스의 강력한 마운트 기능에 기인하는 것 같습니다.

전에는 /var / /usr /tmp /home 이렇게 파티션을 나누어 썼었는데
(저 같은 경우는 서버 설치시에는 여전히 이렇게 사용합니다.
/var/www , /var/ftp /var/lib/mysql ... 추가해서,)
이렇게 파티션을 잘게 썰어 놓으면,
단편화가 일어나도, 파티션 내에 거리가 적음으로,
단편화로인한 속도 저하가 많이 내려 가죠...
swap이 별도 파티션에 있다는 것도 단편화 문제에서
더 강한 면모를 가지는 것도 있을 겁니다.

반면 저렇게 잘게 썰어 놓으면, 확실히 용량 사용에 탄력이 없습니다.
요즘은 통으로 / /boot 정도로만 사용하는데, 이러면,
역시 단편화에 문제점이 보일 수 있다고 생각할 수 있습니다.

다른 한가지는 효율적인 캐쉬 운영입니다.
사실상, 리눅스는 놀고 있는 메모리를 거의 캐쉬로 활용할 수 있는
유연성을 발휘하는데, 이런 면에서 제한적인 메모리 공간을 이미
캐쉬로 할당하는 M$의 몇몇 운영체제 보다는 탄력적이죠.

There is no spoon. Neo from the Matrix 1999.

웃는 남자의 이미지

저는 디스크를 /boot , / 로만 파티션을 나누어서 Gentoo 를 사용하고 있습니다.
위에 voljin 님의 글을 읽어보니 생각나는 것인데...
젠투에서 portage tree 를 업데이트하는 명령인 emerge --sync 를 실행하면 다수의 작은 크기의 파일들이 갱신됩니다.

대개 젠투사용자들은 포테이지갱신을 자주하게 되는 편인데, 그럼 타배포판에 비해
젠투가 상대적으로 디스크 단편화도가 높을 지도 모른다는 생각이 드는군요. :shock:

----------------------------------------
Nothing left after Nirvana.

sio4의 이미지

voljin wrote:
데스크탑 용도로 매일 이용한다면 ext2,3도 defrag이 필요합니다.

대부분의 리눅스 질답에 보면 필요없다는 말이 정설처럼 굳어져있는데, 사실 이건 정적인 서버 환경에나 쓰이던 시절 이야기고...요즘은 시대가 많이 달라졌죠.

개인 개발자의 경우에는 아직 이런 미신에 벗어나지 못해 쓸만한 수준의 프로그램이 아직 없는 듯 하고...O&O에서 시험적으로 베타판을 공개한 defrag util이 있습니다.

http://www.oo-software.com/en/products/oodlinux/index.html

마운트 되지 않은 파티션만 가능하므로 시스템 파티션을 정리하고 싶으시다면 live cd 같은걸로 부팅해서 돌리면 됩니다.

FAT 경우에는 좀 심하지만 ext2,3이 hfs+나 ntfs에 비해 특별히 단편화가 덜되는건 아닙니다. 단지 ext 계열이 "단편화가 덜 되는 환경"에 사용되고 있었다고 말하는 편이 맞습니다.

기억에 의존하는 이야기여서... 정확하지는 않습니다만,

ext2가 단편화에 강하다는 것은 "정적인, 쉽사리 단편화를 일으키지 않는 환경"에서 쓰였었기 때문이 아니라 "데이터 배치를 단편화가 생기지 않도록" 하고 있기 때문입니다.

예를 들자면, 4인실을 8개 확보하고 있는 호텔에 갑 5명, 을 3명, 병 7명의 손님이 들어오게 되어 갑에게 1,2호실을, 을에게 3호실을, 병에게 4,5호실을 내어줬습니다. 다음날 을 일행이 퇴실하여 3호실이 비어있는 상황에서 정 5명이 들어온다면 3,6호실을 내어주는 대신 6,7호실을 내어줌으로써 단편화를 막을 수 있습니다. 물론 방이 6개 밖에 없었다면 얘기는 좀 다릅니다. :-)

NTFS에서 어떻게 파일 배치를 하는지는 잘 모르겠습니다만, 가물가물한 기억속의 fat는 확실히 "빈방부터 배정하기"를 사용했었던 것 같습니다. NTFS를 사용하는 WinXP 에서도 상당히 많은 파일이 찢어져 있음을 확인할 수 있는 반면, 제가 개발용으로 사용하는 데스크탑을 보니 작업공간에 5.5%의 찢긴 파일이 만들어져 있네요.

windows의 조각모음 도구가 자신의 능력을 과시하기위하여 거짓을 고하고 있거나, linux의 fsck 가 ext2/3의 우수성을 과시하기 위하여 속임수를 쓰고 있는게 아니라면, 확실히 리눅스/ext2 의 경우가 파일 단편화에는 강한것 같습니다. :-)

--
"The love you take is equal to the love you make." The End, by Beatles

댓글 달기

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