Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
My goal is to maintain a web file server separately from my main ASP.NET application server for better scalability. The web file server will store a lot of files downloaded by users.
So the question is: Is it worth to adopt FreeBSD + Apache + ZFS, or will good old IIS be сonvenient enough?
I understand you will serve only static files. In this case, lightweight HTTP servers will give you a higher performance for a given machine. The following are well known:
Lighttpd
Thttpd
Nginx
Many more are listed on Wikipedia. There's a more recent article on IBM DeveloperWorks.
It all depends on your skill level and how much load you are getting on your servers.
If you have spare (physical) resources and have the technical skills and experience to maintain production machines running different operating systems, I'd recommend going running lighttpd on either Linux or FreeBSD. A light OS install with a static file optimized server will perform faster than Apache or IIS on a heavy OS.
However, unless you are extremely comfortable with these solutions, just stick to IIS on Windows. Move the static files to their own machine if you have sufficient load. If you aren't currently thinking about multiple ASP.Net frontends, there's probably no need to spin off the static files yet unless we're talking multiple gigabytes of files.
If you're serving files over the Internet, you might also consider Amazon's S3 service. I've found the rates and reliability to be better than anything I could do (or find) on my own.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 2 years ago.
Improve this question
I'm running minecraft server(modded) using 4Ram with 32G.
It's stable when 1~2people, but when people join server, tps become low.
I think it is not a problem with rams. But packets are too many transfered client and server.
How can I increase tps?
The primary causes of TPS drops are a result of what you have going on in your world.
When adding mods or plugins, you should be thinking about the long-term effects of your choices.
For each modded block you add that provides some type of function, the server has to allocate resources to ensure that function is carried out. Now on its own that one block is of little consequence. But if that block forms an array as is typically done with solar panels, then the server will need to dedicate more resources to carry out that arrays functions. When we break it down we can get an idea of how much is really going on in the background.
Minecraft does not have any built-in methods for checking the RAM usage, but you can check the RAM usage by installing the Essentials plugin and using the command “/memory”. You can take a look at this link for more information. Also this command can help you to determine the Current TPS.
Additionally, you will find some good recommendations the last link that may help you to resolve your problem:
Reduce view distance
Your Minecraft server will run at view distance of 10 by default. We recommend changing your view distance to 6, this will not make any noticeable difference to players, but this can hugely help your server performance. You can learn how to access your server settings here.
Setup automated restarts
Setting up automatic restarts can help your server run smoother by freeing up your server RAM usage. It can also reclaim RAM that gets used by plugins and mods that have small memory leaks. You can view a tutorial on how to setup automated restarts here.
Run the latest version
We recommend using the latest version of Minecraft, plugins, and mods on your server. Most newer versions of software will include bug fixes and performance improvements that will make your server run faster and more stable.
Remove unnecessary mods and plugins
Having unused plugins and mods on the server will use up server resources even if the plugins and mods are not being used. It is a good idea to remove any unnecessary mods and plugins from the server. If you think you may use some plugins in the future and are not using right now, you can disable plugins by renaming the plugin .jar file to end with “.disable.” E.g Essentials.jar.disable. You can remove “.disable” from the plugin name to enable the plugin again.
I also found this documentation that explains, How to optimize the server's performance? That may help you to troubleshoot your issue.
On the other hand, I recommend you to review the following guides on asking questions: How do I ask a good question? and How to create a Minimal, Complete, and Verifiable example in order to provide a better context on what you are doing and what you want to achieve.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I was thinking on some social media applications like facebook or linkedin. I read lots of articles on websites like http://highscalability.com/ and didn't find the correct answer.
Because, the biggest apps of now, use their custom systems. They use custom file systems or customized db-engines or customized web servers. They don't use the original iis, apache, mssql, mysql, windows or linux. They use lots of programming language for different problems. It's OK for them because of their load. They have to calculate every bit or something. They started on some small enviroments and they encountered problems and saw bottlenecks. So they founded new solutions.
Now, we can find some articles about their current systems. But we have no answer about what is the best start.
I need to learn the answer of "What kind of architecture is a correct start?"
I have some ideas on it but we need to be sure about it.
We think,
Use mysql for relational database. And a caching mechanism like memcached over mysql. And a rest api for business layer. We think using python for codding of rest api. And all systems run on a suitable linux distro. After all of these enviroments is ok, we can use any language or system for UIs. It can be a PHP site for web or a native application for IOS or Android.
We need your advice. Thank you so much.
(I am a good reader but it's my first question. I hope there's no problem.)
Following a similar question last year I compiled the techniques and technologies used by some of the larger social networking sites.
The following architecture concepts are prevalent among such sites:
Scalability
Caching (heavily, across multiple tiers and layers)
Data Sharding (preferrably by data-locality criteria)
In-Memory DBs for often referenced data
Efficient wire-level protocols (as opposed to what an enterprise typically considers state of the art)
asynchronous processing
Flexibility
service oriented architecture as a baseline principle
decoupled and layered components
asynchronous processing
Reliability
asynchronous processing
replication
cell architecture (independently operated subsets, e.g. by geographical criteria)
NB: If you start a new site, you are unlikely to have the kind of scaling or reliability requirements that these extremely large sites face. Hence the best advice is to start small but keep it flexible. One approach is to use an application framework that starts out simple but has flexibility to scale later, e.g. Django.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I know this topic was widely discussed all over the Internet, but as an amateur in these matters I dare to ask my question.
I am looking for a flexible solution to host my webapplications. Flexible means that it would be sufficient for any kind of project - small website and Reddit-scale giant.
So far, I was thinking this way: I start with shared hosting, then my website get more and more popular so I buy a VPS, then dedicated server, then people finally notice how amazing my idea is and I have to build my own datacenter.
Currently, I am in the stage when I am moving my webapps from several shared hostings to VPS and it got me thinking - is there a better, more comfortable solution? I do not want to move to another hosting, constantly upgrade my hosting plan and still be worrying about performance.
But there is a service like Amazon AWS (and some others), which promise to provide me with comfortable solution to the problem. They say I will be charged only for what I have used and, by enabling auto-scaling, my apps will be growing with (almost) no limits. But most importantly, I would not have to worry about building my own infrastructure etc.
Of course, service like this still requires management, but as far as I am concerned it would be a task to rather small team or even one person. (Right?)
Reddit is a great example of what I am talking about. One of the most popular website on the Internet is 100% hosted by AWS.
So my question is: Is service like AWS the dream platform for entrepreneurs who are willing to create "something big"? Is it the most flexible and the most comfortable solution there is? What are disadvantages I do not see?
In my experience a dedicated server gives you a lot of wiggle room, I use it for big webapps that do a lot of data crunching, but also small websites.
If you have a decent multi cpu server with a lot of RAM and large high speed sata 3 SSD's and fiberoptic network for top speed, your server will be blazing away.
If you use a linux based server it will become easy to cluster them.
Then when you need even more speed you can just put the SQL server in an own dedicated server and you will have doubled your speed instantly.
SQL servers cluster easily among multiple computers so there will be room to grow, and linux servers also cluster easily(at least for people who know what they are doing).
I totally recommend having your own dedicated service where you decide how it grows, then to be stuk on someone elses turf and to get pinched in speed when a high paying customer needs premium speed.
Just my 2 cents
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
I got application server running in Windows – IIS6.0 with Zend Server to execute PHP. I am looking for lightweight static content only web server on this same machine which will relive IIS form handling static content and increase performance.
It need to be only static content web server – maximum small and maximum effective – lighttpd seems too big because allow to FastCGI.
I am looking for: Windows, static content only, fast, and lightweight.
I am using Windows Server 2003.
You can use Python as a quick way to host static content. On Windows, there are many options for running Python, I've personally used CygWin and ActivePython.
To use Python as a simple HTTP server just change your working directory to the folder with your static content and type python -m SimpleHTTPServer 8000, everything in the directory will be available at http:/localhost:8000/
Python 3
To do this with Python, 3.4.1 (and probably other versions of Python 3), use the http.server module:
python -m http.server <PORT>
# or possibly:
python3 -m http.server <PORT>
# example:
python -m http.server 8080
On Windows:
py -m http.server <PORT>
Have a look at mongoose:
single executable
very small memory footprint
allows multiple worker threads
easy to install as service
configurable with a configuration
file if required
The smallest one I know is lighttpd.
Security, speed, compliance, and flexibility -- all of these describe lighttpd (pron. lighty) which is rapidly redefining efficiency of a webserver; as it is designed and optimized for high performance environments. With a small memory footprint compared to other web-servers, effective management of the cpu-load, and advanced feature set (FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting and many more) lighttpd is the perfect solution for every server that is suffering load problems. And best of all it's Open Source licensed under the revised BSD license.
Main site: http://www.lighttpd.net/
Edit: removed Windows version link, now a spam/malware plugin site.
Consider thttpd. It can run under windows.
Quoting wikipedia:
"it is uniquely suited to service high
volume requests for static data"
A version of thttpd-2.25b compiled under cygwin with cygwin dll's is available. It is single threaded and particularly good for servicing images.
Have a look at Cassini. This is basically what Visual Studio uses for its built-in debug web server. I've used it with Umbraco and it seems quite good.
I played a bit with Rupy. It's a pretty neat, open source (GPL) Java application and weighs less than 60KB. Give it a try!
You can try running a simple web server based on Twisted
nginx or G-WAN
http://nbonvin.wordpress.com/2011/03/24/serving-small-static-files-which-server-to-use/
Apologies if the question appears ambiguous, I have little experience in this area and was after some informed opinions.
I am deploying a test scenario of a server/client network and need to make some choices for Server.
The client will be a Windows system as it meets the requirements for the client, the server choice has more room for selection.
From my experience with Linux in general and the appealing nature of open source for low cost, security etc and the availability and performance of database and web server programs I have been considering CentOS as a server choice.
How well does this operate with Windows clients?
Am I being too selective and creating unnecessary complication by setting out not to use a Windows Server OS?
Well, yes, very ambiguous!
Essentially, your client / server network will be dependent on one thing - clients are Windows, do you want to authenticate using Active Directory? Yes? Then you'll need Windows servers too.
It really depends on what your test scenario is aimed at testing and without significantly more detailed information as to what your end goal is, we'll be at a loss to help you.
This question would actually be better placed on the Server Fault site, unless your ultimate goal is an environment in which to test application development.