Lessons learend (from failuere) while I developing a log server for Windows

Wrote this post in Jan 2015 as a quick draft, and remained as it is still today. I thought it’s not that useful so tried to delete it, but changed mind and released here. Hope it helps.

Recently I developed a logging server based on C#/asp.net on Windows 2008 R2 server. The server primarily does receiving log files from clients and write into database and also drop files to that server. After I released it to production, I met some unexpected issues.

1. Huge(99.9%) memory consumption issue

The logging server writes huge excessive IO to the disk and it instantly caused the os SYSTEM process to consume almost all physical memories. I searched online and analyzed it through the Sysinternals’ RAMMap. It turns out the OS’s system cache takes all the memories. You can find out details from following links:

http://www.microsoft.com/en-us/download/details.aspx?id=9258 Windows Dynamic Cache Service

Sysinternals http://technet.microsoft.com/en-us/sysinternals/bb897561

KB article http://support.microsoft.com/kb/976618/

[Korean] http://snoopybox.co.kr/1635

Lesson learned: Reduce the file IO as much as you can!

 

http://blogs.msdn.com/b/ntdebugging/archive/2009/02/06/microsoft-windows-dynamic-cache-service.aspx

http://blogs.msdn.com/b/ntdebugging/archive/2007/11/27/too-much-cache.aspx

 

2. MongoDB

  • Don’t forget to use the indexing
  • You can figure it out whether it uses the index or not by using ‘Explain’

 

3. Deleting files from disk will take longer than you expect

  • My initial design approach was complete wrong and failure. The server used to drop huge number of files into the physical disk, and just deleting the very small portion of files required actually even hours.

Lesson learned: Does your server collect a number of files? Store it into the database directly.

Thanks,

Heejune

윈도우 드라이버 코드 사이닝 실용 가이드

윈도우 코드 사인은 복잡합니다. 윈도우 코드 사인이 복잡한 이유는 기술의 복잡도가 높아서라기 보단, 그것이 기반으로 하고 있는 윈도우 코드 사인의 정책이 윈도우 버전마다 다르고 복잡해서 일 것이기 때문입니다.

저 역시 커널 드라이버 사인 이슈로 다시 예전 지식을 환기시키려고 노력하다가, 인터넷에서 좋은 글을 하나 발견하게 되었고 원 저자의 허락을 맡아 번역을 하고 그 결과를 이곳에 올리게 되었습니다.

원본 글은 http://www.davidegrayson.com/signing/ 이곳에 있습니다. 포맷이 바뀌어 버리는 이슈로 인해 PDF로 결과를 업로드 합니다.

윈도우 드라이버 코드 사이닝 실용 가이드

감사합니다.

heejune