Ich habe ein furchtbar schnelles und schmutziges Caching-System für eine Videosuch-Website geschrieben, das die Suchergebnisse in einem versteckten "/ cache /" -Verzeichnis zwischenspeichert.
In den ersten Monaten lief alles reibungslos, bis ich sehr beliebte Suchergebnisse bemerkte, in denen keine Videos angezeigt wurden.
Ich habe in den Cache-Ordner geschaut, und tatsächlich war er voller Kreide mit ungefähr 30.000 zwischengespeicherten Dateien, von denen viele jetzt ohne Inhalt erstellt werden ... selbst für sehr beliebte Suchbegriffe.
Ich habe ungefähr 10.000 Cache-Dateien gelöscht (die älter als 1 Monat waren oder in Bezug auf die Ergebnisse leer) und jetzt scheint alles wieder reibungslos zu funktionieren.
Natürlich muss ich in naher Zukunft ein richtiges MySQL-Cache-System schreiben, aber könnte diese große Anzahl von Dateien in einem Verzeichnis dazu führen, dass CentOS überhaupt Schluckauf bekommt?
Vielleicht ist es einfach zu viel, eine zwischengespeicherte Datei zu ziehen und zu entpacken?
Ich habe einen Mechanismus, der mich warnt, wenn ein Download nicht reibungslos verläuft. Der Bing-Server blockiert mich nicht, mir werden tatsächlich Ergebnisse zugestellt, ich kann sie (gelegentlich) einfach nicht zwischenspeichern, wenn die Anzahl der Dateien im Cache-Ordner "zu groß" wird.
Alle Ideen / Kommentare sind willkommen!
quelle
Ich habe das Gegenteil bei FC7 und Ubuntu gesehen, wo Verzeichnisse über 100K-Dateien problemlos verarbeiten. Stattdessen tritt ein Problem auf, wenn die Anzahl der Unterverzeichnisse 32 KB oder mehr beträgt - jedoch nicht nur die Anzahl der Dateien.
Da Sie sagen, dass diese Lösung "furchtbar schnell und schmutzig" war, liegt das Problem vielleicht nicht in CentOS, sondern in Ihrem Code? Oder sogar in der Sprache, die Sie verwenden? Ist es möglich, dass Ihr Code versucht, alle diese Dateien gleichzeitig offen zu halten, sodass ihm die Dateihandles oder eine solche Ressource ausgehen?
quelle
Die eigentliche Antwort hat mit Bing's Shoddy API zu tun - siehe diesen Thread im offiziellen Bing API 2.0-Forum: http://www.bing.com/community/Developer/f/12254/t/662869.aspx
Grundsätzlich verbergen sie Ergebnisse für zufällige Suchanfragen nach dem Zufallsprinzip und zwingen Sie, ihre Server doppelt so hart zu treffen, um die Informationen von ihnen zu erhalten. Da eine Antwort "keine Ergebnisse" häufig tatsächlich Ergebnisse liefert, müssen Sie sie erneut überprüfen.
Vielen Dank für Ihren Beitrag!
quelle