파일시스템 탐구생활2

koseph의 이미지

이번 주말에 역시 파일시스템과 관련한 실험을 진행 했습니다.

세월이 지나면 코드도 바뀌고 코드에 따라 성능도 달라질 수 있다는 것을 이번에 느낍니다.

불행히 중간에 사고가 생기는 바람에 완벽한 실험은 다 못했습니다.

가상머신 상에서 젠투를 이용해서 작업을 했는데 시험 도중에 RAID가 깨지는 바람에 작업 로그를 제외하곤 몽땅 날아가 버렸네요.

지난번에 제가 올렸던 자료에는 디렉토리 10만개, 파일 100만개를 생성, 목록보기, 삭제하는 작업을 걸었습니다.

그래서 이번엔 약간 더(?) 현실적으로 커널 트리를 해당 파일시스템에 3번씩 복사 해보는 걸 선택했습니다.

사용한 커널은 2.6.26-gentoo-r3 #1 SMP, 실제 메모리 512MB를 할당 했습니다.
하드디스크는 가상 SCSI 디스크 8GB짜리 1개를 사용했구요.

작업 내용은 다음과 같습니다.

# cd /usr/src
# du -sk .
957873  .

/usr/src에는 리눅스 커널 2개 버전의 소스트리가 들어 있습니다. 크기가 약 935.4228515625MB 정도 됩니다.

이걸 3번 복사해 보는 것입니다.

cd /usr/src
tar -cpf - .| (cd /mnt/test/target1; tar xvpf -)
tar -cpf - .| (cd /mnt/test/target2; tar xvpf -)
tar -cpf - .| (cd /mnt/test/target3; tar xvpf -)

아주 단순하죠?

1. XFS

# mkfs.xfs -f -b size=512 -l size=32768b -d agcount=1 -n size=16k /dev/sdb1 ;\
mount -o noatime,nodiratime,logbufs=8 /dev/sdb1 /mnt/test
 
real    20m54.124s
user    0m6.140s
sys     3m14.960s

2. ReiserFS
1급 살인혐의를 받아 교도소에 간 한스 라이저의 파일시스템이죠. 저도 몰랐는데 KLDP 덕에 알게 되었네요.
인제부턴 1급 살인자 파일시스템이라고 해야 하나요? 씁쓸하군요.

# mkreiserfs /dev/sdb1 ; mount -o noatime /dev/sdb1 /mnt/test
 
real    21m4.183s
user    0m6.600s
sys     3m34.130s

3. ext3

# mke2fs -j /dev/sdb1 ; mount /dev/sdb1 /mnt/test
 
real    16m50.876s
user    0m3.810s
sys     1m24.550s

자, 위의 결과만 놓고 보니 ext3가 짱을 먹었습니다. 그동안 많이 좋아졌나 보네요.
과연 그럴까요?

위의 실험에서 XFS를 제외한 나머지 파일시스템에서는 모두 4K 블럭을 사용했습니다.
이 말은 파일시스템이 파일에 블럭을 할당할 때 4K씩 할당한다는 말이 됩니다. 4K 보다 적은 파일에 대해서도 일단은 4K를 할당하게 되는 것이죠.
이로 인해서 실제 총합이 1GB가 안되는 파일을 복사하는 경우 1GB보다 커지는 경우가 생깁니다. 더 쉽게 말하면 디스크 공간의 낭비가 생기는 것이죠.

그래서 ext3의 기본 블럭 크기를 줄여 보기로 했습니다.
소형 시스템에서는 얼마든지 이걸 적용하는 경우가 있을 수 있고 서버에서도 이런 경우를 적용해 볼 수 있을 것입니다.

# mke2fs -j -b 1024 /dev/sdb1 ; mount -o noatime /dev/sdb1 /mnt/test
 
real    26m53.852s
user    0m2.050s
sys     1m30.400s

오호라..... 1K로 블럭 사이즈를 줄였더니 시간이 10분 이상 늘어나 버리는군요.

우분투 사용자 포럼에 다음과 같은 팁이 올라와 있길래 한번 적용해 봤습니다.

# mke2fs -j -b 1024 /dev/sdb1 ; tune2fs -o journal_data_writeback /dev/sdb1 ;\
mount -o noatime,data=writeback /dev/sdb1 /mnt/test
 
real    40m44.897s
user    0m2.580s
sys     1m46.090s

이건 성능을 개선하는 팁이 아니라 개악하는 팁이었습니다. 이 쓰레드 아래 달린 댓글을 보니 많이들 쓸 거 같던데.....

블럭 사이즈에 가장 민감한 파일시스템이 ext3라는 것을 알게 되었습니다.
사실 ext3가 좀 까다로운 것은 동일한 조건에서도 실험 결과에서 시간차가 상당히 크게 나고 심지어 성능을 올릴 수 있는 명백한 옵션을 주었는데도 시간이 더 걸리는 해괴한 결과를 보여주기도 했습니다. 현재 여기 올린 자료에는 그게 없지만요. 암튼 희안한 파일시스템입니다.

예전에 실험했던 자료가 지금 구체적으로 남아 있질 않아서 그때와 비교를 못하는 게 좀 아쉽긴 합니다만 파일시스템의 성능이 이토록 많은 차이를 보이는지....

XFS의 경우 블럭 사이즈를 변경하더라도 성능에 ext3에 비해 성능에 엄청난 차이를 가져오지 않습니다.
ReiserFS의 경우에는 작업도중 RAID가 깨져서 마저 해보질 못했군요.

4. 결론

위의 커맨드라인 아규먼트를 보시면 아시겠지만 위의 실험에 한정하여 튜닝하지 않은 XFS보다 튜닝하지 않은 ext3가 더 빠르다는 것!! 초보자에겐 반가운 소식인가요?
하지만, 실제 튜닝에서는 XFS도 작은 파일에서 reiserFS를 앞지를 수 있다는 것!!
ext3는 기본적인 튜닝에 쥐약이라는 것!!

우선 이 정도가 되겠습니다.

지난번 파일시스템 탐구생활에선 아규먼트를 전혀 공개하지 않았습니다.
이번엔 하기로 맘 먹었습니다.

어쨌든 이것 말고도 실험한 자료는 이틀간 아주 많으나 다 빼고 보기 쉽게 올려봤습니다.

물론 이 실험은 이번으로 끝이 아니며 지금 해볼 것들이 더 있습니다.

다들 도움이 되시길 바라며.....

다른 분들의 벤치마킹 자료도 올라왔음 좋겠다는 생각을 해봅니다.

특히 JFS도 벤치마킹이 필요하다고 하셨는데 직접 해서 올려 보심이........

eungkyu의 이미지

지금까지 파일시스템 테스트를 가상 하드 드라이브에서 했다는 것인가요?
그게 과연 실제 하드 디스크에서 한 것과 비슷한 결과를 낼지 의문이네요.
일단 호스트 OS 버퍼를 거쳤을텐데...

송효진의 이미지

vmware 로 실제 파티션 물리면 괜찮지 않을까요?

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

eungkyu의 이미지

실제 파티션을 물린다면 호스트 OS의 페이지 캐쉬를 사용하지는 않을 것 같습니다.
그렇지만 원글을 보면 가상 SCSI 8G 하드를 썼다고 하는 것으로 봐서 실제 파티션에 물린것 같지는 않네요.

koseph의 이미지

실제 실험 결과는 아니지만 동일한 환경에서 시험한 것이므로 참고 자료로 충분히 활용하실 수 있습니다.

물론 같을 순 없겠죠.

There's always another way, dear.

---------------------------------
There's always another way, dear.

eungkyu의 이미지

어떤 면에서 동일한 환경이라고 할 수 있는지 모르겠습니다.

I/O 요청 분포 vs. 실제 OS의 실제 디스크 퍼포먼스와
I/O 요청 분포 vs. 가상 OS의 가상 디스크 퍼포먼스가
얼마나 비슷한 것인지 확인이 된 것인가요?

underlying하고 있는 파일의 파일시스템, 단편화 정도, OS의 I/O 스케줄링, page cache 등에 따라
뭐가 어떻게 변할지 모르는 상황 같습니다만...

koseph의 이미지

아래에 실제 테스트 결과를 올려주셨네요.

동일한 가상환경에서 실험했다는 뜻입니다.
물론 실제 상황과 동일하지 않습니다.

노는 장비가 없어서 가상환경에서 실험한 것입니다.
실제 서버에서 해서 올렸으면 더 좋았겠죠.

There's always another way, dear.

---------------------------------
There's always another way, dear.

다콘의 이미지

서버 교체 후 남는놈이 있어서 테스트해봤습니다.
매 1회 테스트마다 재부팅 했습니다.

OS: CentOS 5.2 (64bit)
KERNEL: 2.6.18-92.1.18.el5.centos.plus
CPU: Intel Xeon Dual-Core 3060 2.4GHz
HDD: SAMSUNG SP2504C

커널 소스 3개로 테스트 해봤습니다.

# cd /usr/src
# du -sk .
1003336 .

1. XFS

# mkfs.xfs -f -b size=512 -l size=32768b -d agcount=1 -n size=16k /dev/sdb1
# mount -o noatime,nodiratime,logbufs=8 /dev/sdb1 /mnt/test
 
real    8m37.428s
user    0m3.380s
sys     0m49.275s

# mkfs.xfs -f -b size=1024 -l size=32768b -d agcount=1 -n size=16k /dev/sdb1
# mount -o noatime,nodiratime,logbufs=8 /dev/sdb1 /mnt/test
 
real    8m40.896s
user    0m3.217s
sys     0m44.940s

# mkfs.xfs -f -b size=4096 -l size=32768b -d agcount=1 -n size=16k /dev/sdb1
# mount -o noatime,nodiratime,logbufs=8 /dev/sdb1 /mnt/test
 
real    13m2.739s
user    0m3.386s
sys     0m41.288s

# mkfs.xfs -f /dev/sdb1
# mount -o noatime /dev/sdb1 /mnt/test
 
real    13m54.471s
user    0m3.214s
sys     0m42.556s

# mkfs.xfs -f /dev/sdb1
# mount -o noatime,nodiratime,logbufs=8 /dev/sdb1 /mnt/test
 
real    14m12.088s
user    0m3.295s
sys     0m42.981s

# mkfs.xfs -f -b size=1024 /dev/sdb1
# mount -o noatime /dev/sdb1 /mnt/test
 
real    15m1.260s
user    0m3.331s
sys     0m47.081s

# mkfs.xfs -f -d agcount=4 -l size=32m /dev/sdb1
# mount -o noatime,nodiratime,osyncisdsync /dev/sdb1 /mnt/test
real    13m44.845s
user    0m3.272s
sys     0m43.514s

2. ReiserFS

# mkreiserfs /dev/sdb2
# mount -o noatime /dev/sdb2 /mnt/test
 
real    3m44.071s
user    0m3.336s
sys     0m47.878s

# mkreiserfs -b 1024  /dev/sdb2
# mount -o noatime /dev/sdb2 /mnt/test
 
real    3m38.818s
user    0m3.298s
sys     0m45.527s

3. EXT3

# mke2fs -j /dev/sdb3
# mount -o noatime /dev/sdb3 /mnt/test
 
real    3m42.319s
user    0m3.304s
sys     0m37.051s

# mke2fs -j -b 1024 /dev/sdb3
# mount -o noatime /dev/sdb3 /mnt/test
 
real    5m3.214s
user    0m3.360s
sys     0m45.352s

# mke2fs -j -b 1024 /dev/sdb3
# tune2fs -o journal_data_writeback /dev/sdb3
# mount -o noatime,data=writeback /dev/sdb3 /mnt/test
 
real    4m34.217s
user    0m3.330s
sys     0m44.470s

# mke2fs -j -b 1024 /dev/sdb3
# tune2fs -o journal_data /dev/sdb3
# mount -o noatime,data=journal /dev/sdb3 /mnt/test
 
real    4m54.360s
user    0m3.339s
sys     0m49.251s

4. JFS

# mkfs.jfs /dev/sdb1
# mount -o noatime /dev/sdb1 /mnt/test
 
real    4m34.611s
user    0m3.365s
sys     0m37.531s

5. 결론
실제 서버에서 테스트 해보니 XFS가 작은 파일에서는 상당히 느리네요.
EXT3 writeback의 경우 성능 향상이 있었습니다. 하지만 갑작스런 정전에
데이터가 날라갈 위험이 있습니다. journal data mode도 작은 파일에서는
성능 향상이 있네요. 작은 파일의 경우 데이터도 저널에 기록되면서
fsync() 시간이 단축되기 때문인거 같습니다.

오늘 16BAY (1TB SATA HDD x 16) 백업용 스토리지 서버가 들어오는데 레이드 환경에서
테스트 해봐야겠습니다.

koseph의 이미지

JFS까지 하셨군요. 지극 정성이십니다. 수고 많이 하셨네요. ^^

특히 XFS에서 다양한 파라미터로 자료 상세히 올려 주신 것 아주 감사드립니다.

언급하신 것처럼 XFS는 작은 파일에는 약합니다. 요거이 흠이죠.

성능차이가 존재하긴 하지만 패턴은 비슷하게 나왔군요.

16BAY 레이드에서의 결과도 무지 기대됩니다.

There's always another way, dear.

---------------------------------
There's always another way, dear.

jick의 이미지

보는 사람에 따라서는 최종 결과를 "ext3는 이미 거의 완벽한 튜닝을 거친 상태이기 때문에 그냥 가져다 써도 남들 튜닝한 것만큼 빠르다"로 해석할 수도 있습니다. 뭐, 쓰신 말씀도 틀렸다고 할 수는 없겠지만요...

디폴트 파라미터를 바꾼 다음에 성능이 느려졌으면 그게 튜닝에 쥐약인지 튜닝을 잘못한 건지는 좀 의문이 남네요.

송효진의 이미지

노트북을 새로 설치해야 할 일이 곧 생깁니다.
아무래도 xfs 를 버리지는 못하겠는데,
man mkfs.xfs 해서 보는 내용들이 너무 어렵습니다.
튜닝값들에 대해 좀 더 자세히 설명된 페이지가 있으면 알려주세요.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

koseph의 이미지

좀 귀찮으시더라도 SGI의 무료 훈련 교재를 한번 읽어 보시는 것이 도움이 많이 되실 듯 합니다.

http://oss.sgi.com/projects/xfs/training/

AG의 개념이라든가.... 설명이 아주 자세하진 않지만 도표가 잘 되어 있어서 맨 페이지와 결합해서 보시면 도움이 되실 겁니다.
---------------------------------
There's always another way, dear.

---------------------------------
There's always another way, dear.

송효진의 이미지

감사합니다.
pdf 문서가 아주 많네요.
교재라고 불릴만큼 방대한것 같군요.ㄷㄷㄷ

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

송효진의 이미지

xfs 에서 젠투 stage3 압축 푸는데 걸리는시간이 3분을 넘기네요.
무슨수를 써도 3분 이하로 줄지를 않습니다.

reiserfs 로 하니까 32초 걸리고,
ext3 로 하니까 26초 걸리네요-_-;;;

다들 분발하고 있는 모양입니다.
ext3 로 돌아가겠습니다.

xfs 안녕 ㅠㅠ

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

koseph의 이미지

# uname -a
Linux central 2.6.27-gentoo-r4 #1 SMP Fri Dec 5 13:25:26 KST 2008 i686 Intel(R) Celeron(R) CPU 2.40GHz GenuineIntel GNU/Linux

# ls -al /home/files/stage3-i686-2008.0.tar.bz2

-rw-r--r-- 1 root root 117571798 Jul 1 2008 /home/files/stage3-i686-2008.0.tar.bz2

# mkfs.xfs -f -b size=512 -l size=32768b -d agcount=2 -n size=16k /dev/sda1 \
&& mount -o noatime,nodiratime,logbufs=8 /dev/sda1 /mnt/test/ \
&& time tar xjpf /home/files/stage3-i686-2008.0.tar.bz2

real 2m56.792s
user 1m18.180s
sys 0m19.150s

# mkfs.xfs -f -b size=512 -l size=32m -d agcount=2 -n size=16k /dev/sda1 \
&& mount -o noatime,nodiratime,logbufs=8 /dev/sda1 /mnt/test/ \
&& time tar xjpf /home/files/stage3-i686-2008.0.tar.bz2

real 4m21.090s
user 1m18.110s
sys 0m25.430s

# mkfs.ext3 /dev/sda1 && mount -o noatime,nodiratime /dev/sda1 \
&& mount -o noatime,nodiratime /dev/sda1 /mnt/test/ \
&& time tar xjpf /home/files/stage3-i686-2008.0.tar.bz2

real 1m32.941s
user 1m18.730s
sys 0m12.720s

XFS의 경우 3분을 넘기는 경우도 있었지만 저는 3분 안쪽으로 끝나던데요. 아슬아슬하게.....

그리고, ext3의 경우엔 별다른 옵션을 주지 않았는데도 1.5분이 살짝 넘는군요. ext3의 경우 26초까지 줄이셨다구요?

그렇게까지나 차이가 날 거 같진 않은데.....

혹시 몰라서 테스트 한 자료 남깁니다. 참고 하시라구요.

---------------------------------
There's always another way, dear.

---------------------------------
There's always another way, dear.

송효진의 이미지

음...fsck 속도 때문에 서버에서는 xfs 를 계속 써야 겠습니다.
ext3 fsck 속도 장난 아니네요.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

다콘의 이미지

전에 백업서버 구매한 후 테스트 했었는데 귀찮아서 포스팅 안하다가 까먹고 있었네요. :)

1TB HDD 16개인데 1개는 hotspare로 두고 15개를 raid5로 잡았습니다.

CLI> disk info
  # Ch# ModelName                       Capacity  Usage
===============================================================================
  1  1  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
  2  2  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
  3  3  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
  4  4  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
  5  5  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
  6  6  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
  7  7  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
  8  8  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
  9  9  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
 10 10  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
 11 11  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
 12 12  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
 13 13  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
 14 14  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
 15 15  Hitachi HDT721010SLA360         1000.2GB  Raid Set # 00
 16 16  Hitachi HDT721010SLA360         1000.2GB  HotSpare
===============================================================================
GuiErrMsg<0x00>: Success.
 
CLI> rsf info
 #  Name             Disks TotalCap  FreeCap DiskChannels       State
===============================================================================
 1  Raid Set # 00       15 15000.0GB    0.0GB 123456789ABCDEF    Normal
===============================================================================
GuiErrMsg<0x00>: Success.
 
CLI> vsf info vol=1
Volume Set Information
===========================================
Volume Set Name : ARC-1160-VOL#00
Raid Set Name   : Raid Set # 00
Volume Capacity : 14000.0GB
SCSI Ch/Id/Lun  : 00/00/00
Raid Level      : Raid5
Stripe Size     : 64K
Member Disks    : 15
Cache Mode      : Write Back
Tagged Queuing  : Enabled
Volume State    : Normal
===========================================
GuiErrMsg<0x00>: Success.

EXT3

# time mkfs.ext3 -F -E stride=16 -m 0 -O dir_index,filetype,has_journal,sparse_super /dev/sdb1
 
real    37m12.712s
user    0m4.168s
sys     12m8.834s

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1              13T  148M   13T   1% /backup
 
# df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sdb1            13457336372    151296 13457185076   1% /backup
 
# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sdb1            1708998656      11 1708998645    1% /backup

커널 소스를 압축 푼다음 복사해서 9.8GB(약 77만개 파일) 채웠습니다.
그 상태로 fsck를 해봤습니다.

# time fsck.ext3 -f /dev/sdb1
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 776327/1708998656 files (0.0% non-contiguous), 56180380/3417968503 blocks
 
real    88m29.353s
user    2m27.413s
sys     14m29.252s

삭제는

# time rm -rf test
 
real    2m54.685s
user    0m0.432s
sys     0m12.735s

XFS

# time mkfs.xfs -f -d su=64k,sw=14 -l version=2,su=64k /dev/sdb1
real    0m0.632s
user    0m0.002s
sys     0m0.013s

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1              13T  1.1M   13T   1% /backup
 
# df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sdb1            13671742848      1056 13671741792   1% /backup
 
# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sdb1            13671873920       3 13671873917    1% /backup

마찬가지로 커널 소스로 9.8GB(약 77만개 파일)채웠습니다.

# time xfs_repair /dev/sdb1
real    0m28.949s
user    0m18.589s
sys     0m2.236s

삭제

# time rm -rf test
 
real    1m3.850s
user    0m0.602s
sys     0m39.296s

koseph의 이미지

사실 상당히 기다렸던 글입니다. ^^

수고 많으셨습니다.

역시 스토리지 크기가 커지니까 차이가 현격하게 나는군요.

다른 분들에게도 많은 참고와 도움이 되었으면 합니다.

사족이라면, 여기선 시험 하시느라 언급을 하시지 않으셨지만....

xfs_repair의 경우 필히 해당 파티션을 umount 하신 후에 작업하셔야 합니다.

이 정도는 알고들 계시겠죠.
---------------------------------
There's always another way, dear.

---------------------------------
There's always another way, dear.

댓글 달기

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