Tag: server
Intel Matrix RAID 5 – Rebuild on Reboot
by Steve O Hernandez on May.14, 2009, under Technology
So I finally figured out what was causing my RAID 5 on my Windows Server 2008 box to always rebuild on reboot. For a little background, since I am currently not offering any services to any clients that require the server to remain powered up 24 hours a day, I shut her down for about 6 to 8 hours in the evening (while I sleep, she sleeps). Every morning I start her back up, and she would rebuild the Array. BUT WHY!? It was a graceful shutdown. The logs showed nothing out of the ordinary. So I started to poke around to see what was going on.
To my amazement, the Windows Search indexer was the problem. This cranky service would not shutdown gracefully, and would actually be in the middle of a write to disk right before the system killed it. So I tried to remove the RAID from indexing… but that didn’t help. After looking I found that I had actually set the indexer to save the index on the array, which would have given the array an excuse to rebuild: indexer closed improperly and did not close the index files correctly.
My solution was to remove the array from the indexer’s allowed paths (do not index the array – I’ll wait the extra 10 seconds to find anything that I’m looking for) and I moved the index files to the system drive (yes it may cause minor performance degredation and maybe wear on the system drive, but not nearly as much as a 6 hour RAID rebuild EVERY DAY!).
I have been rebooting for the past 4 days with no issues.
Microsoft Windows Server 2008 – Disk is Read-Only / Write Protected
by Steve O Hernandez on May.13, 2009, under Technology
I recently installed a new hard drive into my server running Server 2008. Everything worked fine, until I rebooted. I tried to copy a file to the disk and recieved an error that the drive, in my case E:, was write protected. I don’t know how or why that happened, but the solution is fairly simple. The steps are as follows:
- Open a command prompt (ie. Start > Run > cmd) with administrative privledges
- Type in the command: diskpart
- Run the command: list disk
- Look for the disk number that’s having the problem. In my case I have a system drive, a RAID 5 configuration (1 logical drive) and then the new drive, so it was DISK 2. I will continue to use it in the example but note that yours may differ.
- Select the disk using the following command: sel disk 2
- Enter the following command: ATTRIBUTES DISK CLEAR READONLY
- Exit diskpart with the command: exit
Then test by copying a file or folder to the drive. It should be fairly instantaneous, but worst case you may have to reboot (I did not, however).
That’s about it. It would be interesting to know WHY this happened, but then again, does it really matter?
Good luck.
Ubuntu Mail Server – PostFix, DoveCot, RoundCube Authentication Error
by Steve O Hernandez on May.11, 2009, under Technology
I’ve been dealing with this error for the past 2 weeks, trying to authenticate to my IMAP Mail Server (dovecot) over SSL (SASL). I continuously received errors for IMAP authentication. AtMailOpen did not work (and I cannot get it to authenticate correctly). So I tried RoundCube, which looks like a good mesh of functionality and aesthetics.
RoundCube installed great – easy and straight forward. Here is the error I received:
IMAP Error: Authentication for steveoh@thelambdas.com failed (LOGIN): “a001 NO Authentication failed.”
Warning: Cannot modify header information – headers already sent in /var/www/webmail/program/include/rcmail.php on line 951
There is very little to no solutions out there. So I had to play with the configuration file and each argument, one by one (file: main.inc.php in the config directory).
Leave the username_domain field blank. My server, apparently, doesn’t require the full email address, only the user name, for authentication.
From:
$rcmail_config['username_domain'] = ‘example.com’;
To:
$rcmail_config['username_domain'] = ”;
This solved the problem, and I’m able to log in using ONLY the user name (ie. username, not username@example.com).
Good luck.
How to Fix Windows Server 2008 Boot Loader
by Steve O Hernandez on Mar.29, 2009, under Technology
If the boot loader to your Windows Server 2008 machine gets corrupted or deleted for whatever reason, it really is a painstaking process to get it fixed. The boot loader to my machine got deleted somehow while I was resizing partitions. After scouring the web, I could not find anything on rebuilding the boot loader for Windows Server 2008. All I could find were instructions to restore a Windows Vista boot loader, but luckily, the process for Server 2008 is similar.
If you are getting a “bootmgr is missing” error upon startup or something similar, repairing the boot loader will probably fix the problem.
Due to the lack of recovery tools on the Server 2008 installation CD, the boot loader must be rebuilt manually.
For this guide, I’m going to assume your installation has a drive letter of C:.
Insert the Server 2008 installation CD into your DVD-ROM. Restart your computer and boot from the CD.
Choose to repair your computer, then open the command prompt.
At the command prompt, use the following commands:
c:
cd boot
bootsect /nt60 c: /force /mbr
bootrec /rebuildbcd
After using the “bootrec /rebuldbcd” command, you will be prompted to accept a Windows installation. Accept the installation, then wait for the process to finish. Once it’s done, reboot your comptuer and you should have a boot loader ready to go.
NAS / Software and Hardware RAID Performance Benchmarking
by Steve O Hernandez on Feb.15, 2009, under Technology
I recently came across an application provided by Intel for the purpose of benchmarking NAS devices (Define: Network Attached Storage). I’ve been looking for a solution to benchmark the new RAID-5 array I created on my Windows Server 2008 server (I love the RAID’s redundancy, but the write speeds are quite low). I wanted to get a better idea of its performance, as Windows will report 250 – 150 MB READS and 20 – 50 MB WRITES, which is considerably poor considering the 4 drives are individually benchmarked at ~100 MB READS and 60 MB WRITES (They are Western Digital Caviar Blues / RE3 / RE16).
The software can be found here or from Intel here.
System Specifications:
Operating System: Microsoft Windows 2008 Enterprise Edition, SP1
CPU Type: Pentium 4 630, 3000 MHz w/ Hyperthreading
Motherboard Name: Dell Dimension 8400
Motherboard Chipset: Intel Alderwood i925XE
Motherboard Frontside Bus Speed: 800 MHz
System Memory (RAM): 4 GB, Dual Channel
System Memory Speed / Timings: DDR2-533 (266 MHz) / 4-4-4-12
Hard Drive Controller Interface: SATA I (1.5 Gbits / s) = 150 MB/s (maximum)
Hard Drives: Western Digital
- Drive #1 – WDC WD5002ABYS-01B1B (465 GB)
- Drive #2 – WDC WD5002ABYS-01B1B (465 GB)
- Drive #3 – WDC WD5000AAKS-00A7B (465 GB)
- Drive #4 – WDC WD5000AAKS-00A7B (465 GB)
- Drive #5 – WDC WD800BB-00JHC0 (74 GB) – SYSTEM
Raid Configuration: Software 4 disk RAID-5 (4 x 500GB, 1.36 TB Effective Storage Space)
System Memory Benchmark: Copy – 4790 MB/s, Read – 6266 MB/s, Write – 3341 MB/s, Latency – 92.7 ns
System Processor Benchmark: CPU ZLib – 10592 KB/s, CPU AES – 3055
Benchmarks completed using Everest Ultimate Edition v4.20.1257
All drives are SATA II (3.0 GB/s) but are running in backwards-capability mode.
The primary roles of the server is to serve files and store backups (File Server) and web and application development and website hosting (Web Server). I do not stream media, play music from the server or write extremely large amounts of data that are time sensitive. Therefore, my decision for RAID-5 was based on the space savings (n – 1) storage availability and the redundancy by means of the parity. I am willing to give up performance (write and read) for storage space and redundancy, but I want to know how much I’m actually giving up.
Tests
- HD Video Playback, 2x HD Video Playback, 3x HD Video Playback, 4x HD Video Playback
These benchmarks examine the behavior of the NAS unit while (simultaneously) playing one or more HD video files at 720p using Windows Media Player. Intel gives a percentage rate for the sequential reading of data in these tests, which lies at 99.5% for the HD Video Playback Test. With 2x HD Video Playback, it lies at 18.1%. The result is 6.6% with 3x HD Video Playback and 9.6 % with 4x HD Video Playback.
- HD Video Record
This test writes an HD Video file in 720p format to the NAS unit. This test is made of up of mostly sequentially transferred data.
- HD Video Playback & Recording
HD Video Play & Record examines the behavior of the NAS unit when simultaneously reading and writing an HD Video file in the 720p format. The sequentially-transferred data in this test is approximately 18% of the test.
- HD 2x Playback 2x Record
This benchmark is similar to the one above, but the proportion of sequential file operations is 3%.
- HD Playback With Office
This metric measures the data transfer rates when an HD Video file is read from the NAS unit while working with the Office applications. This test is made up of 608 files. The proportion of sequential file operations is 53.2%.
- HD Playback With Backup
Like the previous test, but this time an HD Video file is played while simultaneously carrying out a backup on the NAS unit.
- Content Creation
This benchmark is made up of 95% write operations to the NAS unit. This simulates the creation of files on the NAS unit such as is the case when, for example, using video editing programs.
- File Copy To NAS / File Copy From NAS
These tests determine the data transfer rate when copying files to or from the NAS unit. In both of these test processes, a 4 GB file is copied. Unlike with Backup / Restore, 64 KB is read and written.
- Directory Copy From NAS / Directory Copy To NAS
Similar to the previous test, files are copied to and from the NAS unit. A total of 126 files with a total size of approximately 188 MB are written and read across the network.
- Photo Album
This test determines how the NAS unit handles the supply of a multitude of small files—for example, viewing digital photographs stored on the NAS unit. It simulates the viewing of a total of 169 photographs with an overall size of approximately 1.2 GB.
Considerations and Assumptions
These tests were conducted on the Server, not over the network, which will probably result in very high throughput. I did this to get a feel for the actual performance, not that felt over the wire, and because I’m currently running 100 Mbps (Cat 5e) on my LAN, not gigabit. Thus, I did not want the network to be the bottleneck in these tests, as it would be saturated and skew the results.
I ran the tests 6 times, in each, manipulating the environment to establish a real world benchmark. Since this benchmark is done via an application, it will compete with other processes for resources. Additionally, it will compete with the actual Operating System who is responsible for transfering the data to the disk and calculating the parity for the raid (which is quite memory and CPU intensive). For test 6 I ran the system in Safe Mode, utilizing only necessary processes and services to run the operating system (Safe Mode without Networking). Thus, the numbers are quite high. In the others, I ran Outlook, SQL, browsed the internet and downloading files via torrents (to the actual RAID, so this will mess with the numbers as well) – not all at the same time, of course, except for test 4.
Results
| Test | 1 | 2 | 3 | 4 | 5 | 6 | Avg MB/s |
| HDVideo_1Play | 267.789 | 267.789 | 80.364 | 54.54 | 59.134 | 274.603 | 167.37 |
| HDVideo_2Play | 223.736 | 223.736 | 68.638 | 44.619 | 75.123 | 223.204 | 143.18 |
| HDVideo_4Play | 177.201 | 177.201 | 70.222 | 54.731 | 73.009 | 180.005 | 122.06 |
| HDVideo_1Record | 626.098 | 626.098 | 651.41 | 618.888 | 678.788 | 732.636 | 655.65 |
| HDVideo_1Play_1Record | 82.744 | 82.744 | 85.224 | 71.802 | 79.058 | 155.986 | 92.93 |
| ContentCreation | 6.199 | 6.199 | 5.983 | 5.628 | 6.141 | 6.022 | 6.03 |
| OfficeProductivity | 25.383 | 25.383 | 25.474 | 20.958 | 26.249 | 27.955 | 25.23 |
| FileCopyToNAS | 633.475 | 633.475 | 748.91 | 690.827 | 768.598 | 806.578 | 713.64 |
| FileCopyFromNAS | 147.096 | 147.096 | 79.675 | 57.42 | 80.561 | 151.573 | 110.57 |
| DirectoryCopyToNAS | 65.156 | 65.156 | 25.13 | 18.384 | 23.418 | 81.739 | 46.50 |
| DirectoryCopyFromNAS | 44.048 | 44.048 | 20.412 | 15.53 | 20.929 | 47.274 | 32.04 |
| PhotoAlbum | 27.748 | 27.748 | 26.411 | 19.508 | 28.171 | 29.204 | 26.47 |

Discussion
I attribute the absurd file copy speeds to caching and buffering at both the OS, RAID and the Drive level, as well as the writes for the video recording. All in all, I’m pleased with the benchmarks and am satisfied with the set up. One thing to note is that the tests were done from the SYSTEM drive to the RAID, and thus, the SYSTEM drive introduced an additional bottleneck as the transfers from it to the RAID were going to be quite slow (the drive is benchmarked at ~56MB READ and ~30 WRITE).
Comcast Issues
by Steve O Hernandez on Feb.02, 2009, under Personal, Technology
I hate comcast. The only reason I subscribe to their service is because 1) they are the only provider in my area (save DSL service) and 2) their bandwidth allocation isn’t bad. Unfortunately, the quality of both their customer service and service, in general, are horrible.
For the past few days I’ve been having issues surfing the web, in addition to even getting an IP address for my modem. I’m tech savvy, so I try and solve the issue myself before involving an inconvenient 3rd party (ie. Comcast Tech Support – *barf*). Unfortunately, the issue was not on my LAN (in my home). I went as far as purchasing another Wireless Router, since I thought it possible that my old D-Link Wireless Router was failing (it is more than 5 years old). To my surprise, nope, D-Link is working like a champ, it’s the Modem (or something upstream) that’s the issue. I believe my issues to be 2-fold. 1) DNS is malfunctioning upstream on Comcast’s network (which is not far fetched, read here), and 2) they sub-par DHCP Server is either malfunctioning or is not capable of handling all these requests. Sometimes I’ll pull an IP, sometimes I won’t. Weird. There’s a 3rd option, which may be a failing modem. It’s possible, especially since I’ve noticed that my modem arbitrarily decides when to assign its clients 192.168.100.100 IP address, or a 98.x.x.x or 66.x.x.x which are on Comcast’s network. Weird.
So I caved. As you know, I use the internet heavily and require a consistent connection. So last night, at 10pm, I called 954-COMCAST. Spoke with a below average IQ’d woman, who ran me through the annoying steps of reseting the modem, restarting the computer, etc etc. Great, just wasted 10 minutes there. Then she proceeds to tell me “We’ll have to schedule a technician to go out there”. “Fine”, I say. I figured, I could give the tech hell once he walked in, instead of someone on the phone (I wanted a new modem to get rid of the issue). So to my suprise this woman says “We have an opening tonight, from 8 to 11pm”, I was astonished. Though extremely late, could I actually get this issue resolved tonight?! “Sure”, I said, and then the conversation ended upbruptly. “Thank you for choosing Comcast, good bye.” *CLICK*.
So now I wait. It was 10:15pm or so, and 11pm was the cut off. It’s late, I’m tired, but I need my connection. I sit on the couch and wait…
At 1:25am my girl wakes me up and says “I don’t think he’s coming, let’s go to bed”. I was so asleep I was dreaming, and out of rage I grabbed my phone and tried to call comcast. But it sounded Chinese, I couldn’t hear or see… I gave up. I got stood up by either the Comcast Technician, the Customer dis-Service Rep, or both. This sucks.
So this morning I decide I was going to Blog this, since this is the 1000th time I’ve had an issue with Comcast (2 months ago my service was unsuable for an entire month – got that month free… ohh joy… – turns out that the exterior wires were oxidizing (rusting) and needed to be replaced…) and I don’t appreciate being stood up on prom night.
To resolve half the issues, I’ve removed Comcast’s DNS Servers with that of OpenDNS . Like magic, the internet works again (modem still goes out though).
Comcast is incompetent for their DNS server management and their customer service. You would think that if you cannot provide the service you promise, you would use that money you’ve obviously saved in infrastructure equipment and pay to train your customer service.
In conclusion, the instant another provider is available in my area, I’m jumping ship. 10 agonizing years with Comcast is enough… I’m ready for a change. Maybe Obama can do something about this. Haha.
ASP.NET ServerVariable Collection
by Steve O Hernandez on Jan.21, 2009, under Technology
Syntax
Request.ServerVariables (server_variable) |
| Parameter | Description |
|---|---|
| server_variable | Required. The name of the server variable to retrieve |
Server Variables
| Variable | Description |
|---|---|
| ALL_HTTP | Returns all HTTP headers sent by the client. Always prefixed with HTTP_ and capitalized |
| ALL_RAW | Returns all headers in raw form |
| APPL_MD_PATH | Returns the meta base path for the application for the ISAPI DLL |
| APPL_PHYSICAL_PATH | Returns the physical path corresponding to the meta base path |
| AUTH_PASSWORD | Returns the value entered in the client’s authentication dialog |
| AUTH_TYPE | The authentication method that the server uses to validate users |
| AUTH_USER | Returns the raw authenticated user name |
| CERT_COOKIE | Returns the unique ID for client certificate as a string |
| CERT_FLAGS | bit0 is set to 1 if the client certificate is present and bit1 is set to 1 if the cCertification authority of the client certificate is not valid |
| CERT_ISSUER | Returns the issuer field of the client certificate |
| CERT_KEYSIZE | Returns the number of bits in Secure Sockets Layer connection key size |
| CERT_SECRETKEYSIZE | Returns the number of bits in server certificate private key |
| CERT_SERIALNUMBER | Returns the serial number field of the client certificate |
| CERT_SERVER_ISSUER | Returns the issuer field of the server certificate |
| CERT_SERVER_SUBJECT | Returns the subject field of the server certificate |
| CERT_SUBJECT | Returns the subject field of the client certificate |
| CONTENT_LENGTH | Returns the length of the content as sent by the client |
| CONTENT_TYPE | Returns the data type of the content |
| GATEWAY_INTERFACE | Returns the revision of the CGI specification used by the server |
| HTTP_<HeaderName> | Returns the value stored in the header HeaderName |
| HTTP_ACCEPT | Returns the value of the Accept header |
| HTTP_ACCEPT_LANGUAGE | Returns a string describing the language to use for displaying content |
| HTTP_COOKIE | Returns the cookie string included with the request |
| HTTP_REFERER | Returns a string containing the URL of the page that referred the request to the current page using an <a> tag. If the page is redirected, HTTP_REFERER is empty |
| HTTP_USER_AGENT | Returns a string describing the browser that sent the request |
| HTTPS | Returns ON if the request came in through secure channel or OFF if the request came in through a non-secure channel |
| HTTPS_KEYSIZE | Returns the number of bits in Secure Sockets Layer connection key size |
| HTTPS_SECRETKEYSIZE | Returns the number of bits in server certificate private key |
| HTTPS_SERVER_ISSUER | Returns the issuer field of the server certificate |
| HTTPS_SERVER_SUBJECT | Returns the subject field of the server certificate |
| INSTANCE_ID | The ID for the IIS instance in text format |
| INSTANCE_META_PATH | The meta base path for the instance of IIS that responds to the request |
| LOCAL_ADDR | Returns the server address on which the request came in |
| LOGON_USER | Returns the Windows account that the user is logged into |
| PATH_INFO | Returns extra path information as given by the client |
| PATH_TRANSLATED | A translated version of PATH_INFO that takes the path and performs any necessary virtual-to-physical mapping |
| QUERY_STRING | Returns the query information stored in the string following the question mark (?) in the HTTP request |
| REMOTE_ADDR | Returns the IP address of the remote host making the request |
| REMOTE_HOST | Returns the name of the host making the request |
| REMOTE_USER | Returns an unmapped user-name string sent in by the user |
| REQUEST_METHOD | Returns the method used to make the request |
| SCRIPT_NAME | Returns a virtual path to the script being executed |
| SERVER_NAME | Returns the server’s host name, DNS alias, or IP address as it would appear in self-referencing URLs |
| SERVER_PORT | Returns the port number to which the request was sent |
| SERVER_PORT_SECURE | Returns a string that contains 0 or 1. If the request is being handled on the secure port, it will be 1. Otherwise, it will be 0 |
| SERVER_PROTOCOL | Returns the name and revision of the request information protocol |
| SERVER_SOFTWARE | Returns the name and version of the server software that answers the request and runs the gateway |
| URL | Returns the base portion of the URL |
ASP.NET Charting Control! :)
by Steve O Hernandez on Dec.03, 2008, under Technology
Microsoft recently released a cool new ASP.NET server control – <asp:chart /> – that can be used for free with ASP.NET 3.5 to enable rich browser-based charting scenarios.
Squeeze Your Gigabit NIC for Top Performance
by Steve O Hernandez on Nov.25, 2008, under Technology
October 24, 2007
By Charlie Schluting
Many new workstations and servers are coming with integrated gigabit (define) network cards, but quite a few people soon discover that they can’t transfer data much faster than they did with 100 Mb/s network cards. Multiple factors can affect your ability to transfer at higher speeds, and most of them revolve around operating system settings. In this article we will discuss the necessary steps to make your new gigabit-enabled server obtain close to gigabit speeds in Linux, FreeBSD, and Windows.
Hardware considerations
First and foremost we must realize that there are hardware limitations to consider. Just because someone throws a gigabit network card in a server doesn’t mean the hardware can keep up.
| |
Network cards are normally connected to the PCI (define) bus via a free PCI slot. In older workstation and non server-class motherboards the PCI slots are normally 32 bit, 33MHz. This means they can transfer at speeds of 133MB/s. Since the bus is shared between many parts of the computer, it’s realistically limited to around 80MB/s in the best case.
Gigabit network cards provide speeds of 1000Mb/s, or 125MB/s. If the PCI bus is only capable of 80MB/s this is a major limiting factor for gigabit network cards. The math works out to 640Mb/s, which is really quite a bit faster than most gigabit network card installations, but remember this is probably the best-case scenario.
If there are other hungry data-loving PCI cards in the server, you’ll likely see much less throughput. The only solution for overcoming this bottleneck is to purchase a motherboard with a 66MHz PCI slot, which can do 266MB/s. Also, the new 64 bit PCI slots are capable of 532MB/s on a 66MHz bus. These are beginning to come standard on all server-class motherboards.
Assuming we’re using decent hardware that can keep up with the data rates necessary for gigabit, there is now another obstacle — the operating system. For testing, we used two identical servers: Intel Server motherboards, Pentium 4 3.0 GHz, 1GB RAM, integrated 10/100/1000 Intel network card. One was running Gentoo Linux with a 2.6 SMP (define) kernel, and the other is FreeBSD 5.3 with an SMP kernel to take advantage of the Pentium 4′s HyperThreading capabilities. We were lucky to have a gigabit capable switch, but the same results could be accomplished by connecting both servers directly to each other.
Software Considerations
For testing speeds between two servers, we don’t want to use FTP or anything that will fetch data from disk. Memory to memory transfers are a much better test, and many tools exist to do this. For our tests, we used [ttcp](http://www.pcausa.com/Utilities/pcattcp.htm).
The first test between these two servers was not pretty. The maximum rate was around 230 Mb/s: about two times as fast as a 100Mb/s network card. This was an improvement, but far from optimal. In actuality, most people will see even worse performance out of the box. However, with a few minor setting changes, we quickly realized major speed improvements — more than a threefold improvement over the initial test.
Many people recommend setting the MTU of your network interface larger. This basically means telling the network card to send a larger Ethernet frame. While this may be useful when connecting two hosts directly together, it becomes less useful when connecting through a switch that doesn’t support larger MTUs (define). At any rate, this isn’t necessary. 900Mb/s can be attained at the normal 1500 byte MTU setting.
For attaining maximum throughput, the most important options involve TCP window sizes. The TCP window controls the flow of data, and is negotiated during the start of a TCP connection. Using too small of a size will result in slowness, since TCP can only use the smaller of the two end system’s capabilities. It is quite a bit more complex than this, but here’s the information you really need to know:
Configuring Linux and FreeBSD
For both Linux and FreeBSD we’re using the sysctl utility. For all of the following options, entering the command ‘sysctl variable=number’ should do the trick. To view the current settings use: ‘sysctl <variable name>’
- Maximum window size:
- FreeBSD:
kern.ipc.maxsockbuf=262144 - Linux:
net.core.wmem_max=8388608
- FreeBSD:
- Default window size:
- FreeBSD, sending and receiving:
net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=65536 - Linux, sending and receiving:
net.core.wmem_default = 65536
net.core.rmem_default = 65536
- FreeBSD, sending and receiving:
- RFC 1323:
This enables the useful window scaling options defined in rfc1323, which allows the windows to dynamically get larger than we specified above.- FreeBSD:
net.inet.tcp.rfc1323=1 - Linux:
net.ipv4.tcp_window_scaling=1
- FreeBSD:
- Buffers:
When sending large amounts of data, we can run the operating system out of buffers. This option should be enabled before attempting to use the above settings. To increase the amount of “mbufs” available:- FreeBSD:
kern.ipc.nmbclusters=32768 - Linux:
net.ipv4.tcp_mem= 98304 131072 196608
- FreeBSD:
These quick changes will skyrocket TCP performance. Afterwards we were able to run ttcp and attain around 895 Mb/s every time – quite an impressive data rate. There are other options available for adjusting the UDP datagram sizes as well, but we’re mainly focusing on TCP here.
Windows XP/2000 Server/Server 2003
The magical location for TCP settings in the registry editor is HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
We need to add a registry DWORD named TcpWindowSize, and enter a sufficiently large size. 131400 (make sure you click on ‘decimal’) should be enough. Tcp1323Opts should be set to 3. This enables both rfc1323 scaling and timestamps.
And, similarly to Unix, we want to increase the TCP buffer sizes:
ForwardBufferMemory 80000 NumForwardPackets 60000
One last important note for Windows XP users: If you’ve installed Service Pack 2, then there is another likely culprit for poor network performance. Explained in [knowledge base article 842264(http://support.microsoft.com/?kbid=842264), Microsoft says that disabling Internet Connection Sharing after an SP2 install should fix performance issues.
The above tweaks should enable your sufficiently fast server to attain much faster data rates over TCP. If your specific application makes significant use of UDP, then it will be worth looking into similar options relating to UDP datagram sizes. Remember, we obtained close to 900Mb/s with a very fast Pentium 4 machine, server-class motherboard, and quality Intel network card. Results may vary wildly, but adjusting the above settings are a necessary step toward realizing your server’s capabilities.
DOCman 1.4 RC3: Invalid Token on Delete
by Steve O Hernandez on Aug.08, 2008, under Technology
To get around this issue and delete the document, you must first Un-Publish the document, and then you can Delete the document, without an issue.
BUT, this will not delete the File. For clarification, the file is the actual physical file that sites on the server, the document is the listing with a title, description, permissions and associated file.
You then must delete the file from the back-end. This functionality is intentional, as you can link multiple documents to a single file.